@blaze-cms/react-page-builder 0.123.0-alpha.9 → 0.123.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 (75) hide show
  1. package/CHANGELOG.md +99 -801
  2. package/lib/components/Card/Card.js +20 -6
  3. package/lib/components/Card/Card.js.map +1 -1
  4. package/lib/components/Card/CardContainer.js +20 -4
  5. package/lib/components/Card/CardContainer.js.map +1 -1
  6. package/lib/components/CarouselWrapper.js +12 -5
  7. package/lib/components/CarouselWrapper.js.map +1 -1
  8. package/lib/components/DataSummary/helpers/get-link-based-on-value.js +4 -0
  9. package/lib/components/DataSummary/helpers/get-link-based-on-value.js.map +1 -1
  10. package/lib/components/List/components/Cards/CardsRenderItem.js +23 -4
  11. package/lib/components/List/components/Cards/CardsRenderItem.js.map +1 -1
  12. package/lib/components/Menu/Menu.js +4 -3
  13. package/lib/components/Menu/Menu.js.map +1 -1
  14. package/lib/components/SearchContent/index.js +29 -23
  15. package/lib/components/SearchContent/index.js.map +1 -1
  16. package/lib/components/SearchFilter/SearchFilter/FiltersList.js +16 -11
  17. package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  18. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +15 -50
  19. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  20. package/lib/components/SearchFilter/components/Select.js +22 -10
  21. package/lib/components/SearchFilter/components/Select.js.map +1 -1
  22. package/lib/components/index.js +5 -0
  23. package/lib/components/index.js.map +1 -1
  24. package/lib/constants/index.js +5 -2
  25. package/lib/constants/index.js.map +1 -1
  26. package/lib-es/components/Card/Card.js +18 -4
  27. package/lib-es/components/Card/Card.js.map +1 -1
  28. package/lib-es/components/Card/CardContainer.js +21 -5
  29. package/lib-es/components/Card/CardContainer.js.map +1 -1
  30. package/lib-es/components/CarouselWrapper.js +12 -5
  31. package/lib-es/components/CarouselWrapper.js.map +1 -1
  32. package/lib-es/components/DataSummary/helpers/get-link-based-on-value.js +5 -1
  33. package/lib-es/components/DataSummary/helpers/get-link-based-on-value.js.map +1 -1
  34. package/lib-es/components/List/components/Cards/CardsRenderItem.js +23 -4
  35. package/lib-es/components/List/components/Cards/CardsRenderItem.js.map +1 -1
  36. package/lib-es/components/Menu/Menu.js +4 -3
  37. package/lib-es/components/Menu/Menu.js.map +1 -1
  38. package/lib-es/components/SearchContent/index.js +26 -22
  39. package/lib-es/components/SearchContent/index.js.map +1 -1
  40. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js +20 -16
  41. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  42. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +10 -40
  43. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  44. package/lib-es/components/SearchFilter/components/Select.js +22 -6
  45. package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
  46. package/lib-es/components/index.js +4 -1
  47. package/lib-es/components/index.js.map +1 -1
  48. package/lib-es/constants/index.js +3 -1
  49. package/lib-es/constants/index.js.map +1 -1
  50. package/package.json +3 -3
  51. package/src/components/Card/Card.js +28 -3
  52. package/src/components/Card/CardContainer.js +18 -2
  53. package/src/components/CarouselWrapper.js +8 -5
  54. package/src/components/DataSummary/helpers/get-link-based-on-value.js +9 -1
  55. package/src/components/List/components/Cards/CardsRenderItem.js +22 -3
  56. package/src/components/Menu/Menu.js +4 -3
  57. package/src/components/SearchContent/index.js +24 -18
  58. package/src/components/SearchFilter/SearchFilter/FiltersList.js +5 -2
  59. package/src/components/SearchFilter/SearchFilter/SearchFilter.js +113 -148
  60. package/src/components/SearchFilter/components/Select.js +29 -6
  61. package/src/components/index.js +2 -1
  62. package/src/constants/index.js +3 -1
  63. package/tests/unit/src/components/Card/__snapshots__/Card.test.js.snap +10 -10
  64. package/tests/unit/src/components/Card/__snapshots__/CardContainer.test.js.snap +8 -8
  65. package/tests/unit/src/components/Card/__snapshots__/CardRender.test.js.snap +2 -2
  66. package/tests/unit/src/components/Card/mockData.js +2 -0
  67. package/tests/unit/src/components/DataSummary/helpers/get-link-based-on-value.test.js +29 -0
  68. package/tests/unit/src/components/List/components/Cards/__snapshots__/CardsRender.test.js.snap +12 -12
  69. package/tests/unit/src/components/Menu/Menu.test.js +3 -1
  70. package/tests/unit/src/components/Menu/__snapshots__/Menu.test.js.snap +3 -0
  71. package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +64 -86
  72. package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/SearchFilter.test.js.snap +133 -61
  73. package/tests/unit/src/components/SearchFilter/components/Select.test.js +58 -4
  74. package/tests/unit/src/components/SearchFilter/components/__snapshots__/Select.test.js.snap +28 -5
  75. package/tests/unit/src/components/__snapshots__/index.test.js.snap +4 -0
@@ -35,7 +35,9 @@ require("core-js/modules/es.array.map.js");
35
35
 
36
36
  require("core-js/modules/es.function.name.js");
37
37
 
38
- require("core-js/modules/es.string.match.js");
38
+ require("core-js/modules/es.array.includes.js");
39
+
40
+ require("core-js/modules/es.string.includes.js");
39
41
 
40
42
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
41
43
 
@@ -59,6 +61,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
59
61
 
60
62
  var SearchContent = function SearchContent(_ref) {
61
63
  var entity = _ref.entity,
64
+ searchInputAlignment = _ref.searchInputAlignment,
62
65
  searchInputWrapperMobile = _ref.searchInputWrapperMobile,
63
66
  searchInputWrapperDesktop = _ref.searchInputWrapperDesktop,
64
67
  isMobile = _ref.isMobile;
@@ -113,13 +116,19 @@ var SearchContent = function SearchContent(_ref) {
113
116
  data = _useQuery.data;
114
117
 
115
118
  if (loading) return null;
116
- if (error) return "Error! ".concat(error);
119
+ if (error) return null;
117
120
 
118
121
  var handleClick = function handleClick(e, url) {
119
122
  e.preventDefault();
120
123
  router.push(url);
121
124
  };
122
125
 
126
+ var handleKeyPress = function handleKeyPress(e) {
127
+ if (e.key === 'Enter' && e.target.value !== '') {
128
+ router.push("/search?search_term=".concat(e.target.value));
129
+ }
130
+ };
131
+
123
132
  var renderResults = function renderResults() {
124
133
  // eslint-disable-next-line no-undef
125
134
  var _data$searchPublished = data === null || data === void 0 ? void 0 : data.searchPublishedContent,
@@ -130,7 +139,7 @@ var SearchContent = function SearchContent(_ref) {
130
139
  var name = _ref2.name,
131
140
  url = _ref2.url;
132
141
 
133
- if (name.match(searchTerm)) {
142
+ if (name.includes(searchTerm)) {
134
143
  return /*#__PURE__*/_react["default"].createElement(_BlazeLink["default"], {
135
144
  href: url,
136
145
  onClick: function onClick(e) {
@@ -150,21 +159,19 @@ var SearchContent = function SearchContent(_ref) {
150
159
  return collapsed ? /*#__PURE__*/_react["default"].createElement("div", {
151
160
  className: isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop
152
161
  }, /*#__PURE__*/_react["default"].createElement("div", {
153
- className: "w-11 mx-auto"
162
+ className: "search-content--collapse__wrapper"
154
163
  }, /*#__PURE__*/_react["default"].createElement("label", {
155
- className: "relative block"
164
+ className: "search-content--collapse__label"
156
165
  }, /*#__PURE__*/_react["default"].createElement("span", {
157
- className: "absolute inset-y-0 right-3 flex items-center pl-2 cursor-pointer"
166
+ className: "search-content--collapse__icon_wrapper"
158
167
  }, /*#__PURE__*/_react["default"].createElement("svg", {
159
- className: "h-5 w-5 fill-slate-300",
168
+ className: "search-content--collapse__icon",
160
169
  viewBox: "0 0 20 20"
161
170
  }, /*#__PURE__*/_react["default"].createElement("path", {
162
171
  fillRule: "evenodd",
163
172
  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
173
  clipRule: "evenodd"
165
- }))), /*#__PURE__*/_react["default"].createElement("span", {
166
- className: "sr-only"
167
- }, "Search"), /*#__PURE__*/_react["default"].createElement("input", {
174
+ }))), /*#__PURE__*/_react["default"].createElement("input", {
168
175
  onFocus: function onFocus() {
169
176
  return setCollapsed(false);
170
177
  },
@@ -174,45 +181,44 @@ var SearchContent = function SearchContent(_ref) {
174
181
  type: "text",
175
182
  name: "search",
176
183
  value: "",
177
- className: "disabled:bg-white block bg-white w-full rounded-none border-white py-2 pl-5 pr-3 placeholder:italic placeholder:text-gray-400 focus:outline-none sm:text-sm"
184
+ className: "search-content--collapse__input"
178
185
  })))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
179
186
  className: "".concat(isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop)
180
187
  }, /*#__PURE__*/_react["default"].createElement("div", {
181
- className: "w-96 mx-auto rounded-3xl"
188
+ className: "search-content--expanded__wrapper"
182
189
  }, /*#__PURE__*/_react["default"].createElement("label", {
183
- className: "relative block"
190
+ className: "search-content--expanded__label"
184
191
  }, /*#__PURE__*/_react["default"].createElement("span", {
185
- className: "absolute inset-y-0 right-3 flex items-center pl-2"
192
+ className: "search-content--expanded__icon_wrapper"
186
193
  }, /*#__PURE__*/_react["default"].createElement("svg", {
187
- className: "h-5 w-5 fill-slate-300",
194
+ className: "search-content--expanded__icon",
188
195
  viewBox: "0 0 20 20"
189
196
  }, /*#__PURE__*/_react["default"].createElement("path", {
190
197
  fillRule: "evenodd",
191
198
  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",
192
199
  clipRule: "evenodd"
193
- }))), /*#__PURE__*/_react["default"].createElement("span", {
194
- className: "sr-only"
195
- }, "Search"), /*#__PURE__*/_react["default"].createElement("input", {
200
+ }))), /*#__PURE__*/_react["default"].createElement("input", {
196
201
  type: "text",
197
202
  name: "search",
198
203
  onChange: function onChange(e) {
199
204
  return setSearchTerm(e.target.value);
200
205
  },
201
- className: "block w-full rounded-full rounded-white py-2 pl-3 pr-3 placeholder:italic placeholder:text-slate-400 focus:outline-none sm:text-sm",
206
+ onKeyPress: handleKeyPress,
207
+ className: "search-content--expanded__input",
202
208
  placeholder: "Search for anything...",
203
209
  onBlur: function onBlur() {
204
210
  if (!searchTerm || searchTerm === '') setCollapsed(true);
205
211
  }
206
212
  }))), data && searchResultsMessage !== '' && /*#__PURE__*/_react["default"].createElement("div", {
207
- className: "bg-white ml-1 mr-1 rounded rounded-lg absolute top-16 flex flex-col z-50 border-2 border-gray-50 w-96"
213
+ className: "search-content--results__wrapper"
208
214
  }, /*#__PURE__*/_react["default"].createElement("div", {
209
- className: "px-2"
215
+ className: "search-content--results__wrapper--message"
210
216
  }, /*#__PURE__*/_react["default"].createElement("div", {
211
217
  className: "text-sm pt-2"
212
218
  }, searchResultsMessage), /*#__PURE__*/_react["default"].createElement("div", {
213
- className: "text-left px-4 py-2"
219
+ className: "search-content--results__message"
214
220
  }, /*#__PURE__*/_react["default"].createElement("div", {
215
- className: "text-bold"
221
+ className: "search-content--results__content"
216
222
  }, renderResults()))))));
217
223
  };
218
224
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["SearchContent","entity","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","split","a","b","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","gql","variables","offset","limit","loading","error","data","handleClick","e","url","preventDefault","push","renderResults","searchPublishedContent","results","map","name","searchResultsMessage","target","value","propTypes","searchInputAlignment","PropTypes","string","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile\n}) => {\n const [collapsed, setCollapsed] = useState(true);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\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 const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return `Error! ${error}`;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.match(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n const searchResultsMessage = searchTerm ? `Search results for: ${searchTerm}` : '';\n\n return collapsed ? (\n <div className={isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}>\n <div className=\"w-11 mx-auto\">\n <label className=\"relative block\">\n <span className=\"absolute inset-y-0 right-3 flex items-center pl-2 cursor-pointer\">\n <svg className=\"h-5 w-5 fill-slate-300\" 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 <span className=\"sr-only\">Search</span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"disabled:bg-white block bg-white w-full rounded-none border-white py-2 pl-5 pr-3 placeholder:italic placeholder:text-gray-400 focus:outline-none sm:text-sm\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`${isMobile ? searchInputWrapperMobile : searchInputWrapperDesktop}`}>\n <div className=\"w-96 mx-auto rounded-3xl\">\n <label className=\"relative block\">\n <span className=\"absolute inset-y-0 right-3 flex items-center pl-2\">\n <svg className=\"h-5 w-5 fill-slate-300\" 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 <span className=\"sr-only\">Search</span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n className=\"block w-full rounded-full rounded-white py-2 pl-3 pr-3 placeholder:italic placeholder:text-slate-400 focus:outline-none sm:text-sm\"\n placeholder=\"Search for anything...\"\n onBlur={() => {\n if (!searchTerm || searchTerm === '') setCollapsed(true);\n }}\n />\n </label>\n </div>\n {data &&\n searchResultsMessage !== '' && (\n <div className=\"bg-white ml-1 mr-1 rounded rounded-lg absolute top-16 flex flex-col z-50 border-2 border-gray-50 w-96\">\n <div className=\"px-2\">\n <div className=\"text-sm pt-2\">{searchResultsMessage}</div>\n\n <div className=\"text-left px-4 py-2\">\n <div className=\"text-bold\">{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 isMobile: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n isMobile: false\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["SearchContent","entity","searchInputAlignment","searchInputWrapperMobile","searchInputWrapperDesktop","isMobile","collapsed","setCollapsed","searchTerm","setSearchTerm","router","capitalize","s","charAt","toUpperCase","slice","split","a","b","entityName","rawQueryStringified","JSON","stringify","size","query","bool","should","match","docType","minimum_should_match","gql","variables","offset","limit","loading","error","data","handleClick","e","url","preventDefault","push","handleKeyPress","key","target","value","renderResults","searchPublishedContent","results","map","name","includes","searchResultsMessage","propTypes","PropTypes","string","isRequired","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\nimport BlazeLink from '../BlazeLink';\n\nconst SearchContent = ({\n entity,\n searchInputAlignment,\n searchInputWrapperMobile,\n searchInputWrapperDesktop,\n isMobile\n}) => {\n const [collapsed, setCollapsed] = useState(true);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n const capitalize = s => {\n if (typeof s !== 'string') return '';\n return s.charAt(0).toUpperCase() + s.slice(1);\n };\n\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 const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return null;\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 const { results } = data?.searchPublishedContent;\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.includes(searchTerm)) {\n return (\n <BlazeLink href={url} onClick={e => handleClick(e, url)}>\n {name}\n </BlazeLink>\n );\n }\n\n return null;\n });\n }\n\n return [];\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=\"Search for anything...\"\n onBlur={() => {\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 isMobile: PropTypes.bool,\n entity: PropTypes.string.isRequired\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n searchInputWrapperMobile: '',\n searchInputWrapperDesktop: '',\n isMobile: false\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
@@ -23,6 +23,10 @@ Object.defineProperty(exports, "__esModule", {
23
23
  });
24
24
  exports["default"] = void 0;
25
25
 
26
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
27
+
28
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
29
+
26
30
  require("core-js/modules/es.array.map.js");
27
31
 
28
32
  require("core-js/modules/es.array.join.js");
@@ -39,6 +43,8 @@ var _components = require("../components");
39
43
 
40
44
  var _constants = require("../constants");
41
45
 
46
+ var _excluded = ["type", "label", "propsToDisplay", "elementTitle"];
47
+
42
48
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
49
 
44
50
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -59,8 +65,8 @@ var FiltersList = function FiltersList(_ref) {
59
65
  var type = _ref2.type,
60
66
  label = _ref2.label,
61
67
  propsToDisplay = _ref2.propsToDisplay,
62
- rangeInterval = _ref2.rangeInterval,
63
- elementTitle = _ref2.elementTitle;
68
+ elementTitle = _ref2.elementTitle,
69
+ otherProps = (0, _objectWithoutProperties2["default"])(_ref2, _excluded);
64
70
  if (!propsToDisplay && !propsToDisplay.length) return null;
65
71
  var dynamicKey = [itemId, index].join('-');
66
72
  var isDataAvailable = !!data && Object.keys(data).length;
@@ -74,19 +80,19 @@ var FiltersList = function FiltersList(_ref) {
74
80
  return /*#__PURE__*/_react["default"].createElement("div", {
75
81
  key: dynamicKey,
76
82
  className: "filter__section filter__section--search-refine filter__section--search"
77
- }, /*#__PURE__*/_react["default"].createElement(_components.TextSearch, {
83
+ }, /*#__PURE__*/_react["default"].createElement(_components.TextSearch, (0, _extends2["default"])({}, otherProps, {
78
84
  label: label,
79
85
  elementTitle: elementTitle,
80
86
  searchValue: filterValues[_constants.SEARCH_TERM],
81
87
  updateFilterValues: updateFilterValues,
82
88
  filterValues: filterValues
83
- }));
89
+ })));
84
90
 
85
91
  case _constants.CHECKBOX:
86
92
  return !!shouldDisplayFilter && /*#__PURE__*/_react["default"].createElement("div", {
87
93
  key: dynamicKey,
88
94
  className: "filter__section filter__section--search-refine filter__section--checkboxes"
89
- }, /*#__PURE__*/_react["default"].createElement(_components.Checkbox, {
95
+ }, /*#__PURE__*/_react["default"].createElement(_components.Checkbox, (0, _extends2["default"])({}, otherProps, {
90
96
  data: data,
91
97
  prop: propsToDisplay[0],
92
98
  label: label,
@@ -95,13 +101,13 @@ var FiltersList = function FiltersList(_ref) {
95
101
  filterValues: filterValues,
96
102
  updateFilterValues: updateFilterValues,
97
103
  shouldSearch: shouldSearch
98
- }));
104
+ })));
99
105
 
100
106
  case _constants.SELECT:
101
107
  return !!shouldDisplayFilter && /*#__PURE__*/_react["default"].createElement("div", {
102
108
  key: dynamicKey,
103
109
  className: "filter__section filter__section--search-refine filter__section--selects"
104
- }, /*#__PURE__*/_react["default"].createElement(_components.SelectFilter, {
110
+ }, /*#__PURE__*/_react["default"].createElement(_components.SelectFilter, (0, _extends2["default"])({}, otherProps, {
105
111
  data: data,
106
112
  prop: propsToDisplay[0],
107
113
  label: label,
@@ -110,23 +116,22 @@ var FiltersList = function FiltersList(_ref) {
110
116
  filterValues: filterValues,
111
117
  updateFilterValues: updateFilterValues,
112
118
  shouldSearch: shouldSearch
113
- }));
119
+ })));
114
120
 
115
121
  case _constants.RANGE:
116
122
  return !!areAggregationsAvailable && /*#__PURE__*/_react["default"].createElement("div", {
117
123
  key: dynamicKey,
118
124
  className: "range-slider__wrapper"
119
- }, /*#__PURE__*/_react["default"].createElement(_components.Range, {
125
+ }, /*#__PURE__*/_react["default"].createElement(_components.Range, (0, _extends2["default"])({}, otherProps, {
120
126
  dataAggregations: dataAggregations,
121
127
  propsToDisplay: propsToDisplay,
122
- rangeInterval: rangeInterval,
123
128
  label: label,
124
129
  elementTitle: elementTitle,
125
130
  entity: entity,
126
131
  filterValues: filterValues,
127
132
  updateFilterValues: updateFilterValues,
128
133
  shouldSearch: shouldSearch
129
- }));
134
+ })));
130
135
 
131
136
  default:
132
137
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/FiltersList.js"],"names":["FiltersList","data","filters","hasUrl","entity","filterValues","updateFilterValues","shouldSearch","MainContext","itemId","map","index","type","label","propsToDisplay","rangeInterval","elementTitle","length","dynamicKey","join","isDataAvailable","Object","keys","dataAggregations","areAggregationsAvailable","results","shouldDisplayFilter","buckets","TEXT_SEARCH","SEARCH_TERM","CHECKBOX","SELECT","RANGE","propTypes","PropTypes","bool","isRequired","string","object","func","array","defaultProps"],"mappings":"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","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, rangeInterval, elementTitle }, 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 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 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 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 dataAggregations={dataAggregations}\n propsToDisplay={propsToDisplay}\n rangeInterval={rangeInterval}\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"],"file":"FiltersList.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/FiltersList.js"],"names":["FiltersList","data","filters","hasUrl","entity","filterValues","updateFilterValues","shouldSearch","MainContext","itemId","map","index","type","label","propsToDisplay","elementTitle","otherProps","length","dynamicKey","join","isDataAvailable","Object","keys","dataAggregations","areAggregationsAvailable","results","shouldDisplayFilter","buckets","TEXT_SEARCH","SEARCH_TERM","CHECKBOX","SELECT","RANGE","propTypes","PropTypes","bool","isRequired","string","object","func","array","defaultProps"],"mappings":"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","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"],"file":"FiltersList.js"}
@@ -117,23 +117,13 @@ var SearchFilter = function SearchFilter(_ref) {
117
117
 
118
118
  var _useState = (0, _react.useState)(true),
119
119
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
120
- isDesktop = _useState2[0],
121
- setIsDesktop = _useState2[1];
120
+ moreFiltersMobileCollapsed = _useState2[0],
121
+ setMoreFiltersMobileCollapsed = _useState2[1];
122
122
 
123
- var _useState3 = (0, _react.useState)(null),
123
+ var _useState3 = (0, _react.useState)(true),
124
124
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
125
- pageWidth = _useState4[0],
126
- setPageWidth = _useState4[1];
127
-
128
- var _useState5 = (0, _react.useState)(true),
129
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
130
- moreFiltersMobileCollapsed = _useState6[0],
131
- setMoreFiltersMobileCollapsed = _useState6[1];
132
-
133
- var _useState7 = (0, _react.useState)(true),
134
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
135
- moreFiltersDesktopCollapsed = _useState8[0],
136
- setMoreFiltersDesktopCollapsed = _useState8[1];
125
+ moreFiltersDesktopCollapsed = _useState4[0],
126
+ setMoreFiltersDesktopCollapsed = _useState4[1];
137
127
 
138
128
  var _useReducer = (0, _react.useReducer)(reducer, initialFilterValues),
139
129
  _useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2),
@@ -144,24 +134,6 @@ var SearchFilter = function SearchFilter(_ref) {
144
134
  var newQuery = (0, _helpers.buildQuery)(newValues, filters);
145
135
  handleSearch(newQuery);
146
136
  }, 200);
147
- (0, _react.useEffect)(function () {
148
- if (window && !pageWidth) {
149
- setPageWidth(window.innerWidth);
150
- setIsDesktop((0, _helpers.isDeviceDesktop)());
151
- }
152
-
153
- var handleResize = function handleResize(_ref2) {
154
- var innerWidth = _ref2.target.innerWidth;
155
- setIsDesktop((0, _helpers.isDeviceDesktop)());
156
- setPageWidth(innerWidth);
157
- if (isDesktop) setDisplaySearchFilter(false);
158
- };
159
-
160
- window.addEventListener('resize', handleResize);
161
- return function () {
162
- window.removeEventListener('resize', handleResize);
163
- };
164
- }, [isDesktop, pageWidth, setDisplaySearchFilter]);
165
137
  (0, _react.useEffect)(function () {
166
138
  if (filterValues.shouldSearch) {
167
139
  handleSubmit(filterValues);
@@ -170,16 +142,9 @@ var SearchFilter = function SearchFilter(_ref) {
170
142
  });
171
143
  }
172
144
  }, [filterValues, handleSubmit]);
173
- var isDesktopFormDisplayed = true;
174
- var isMobileFormDisplayed = false;
175
-
176
- if (!isDesktop && isCollapsedOnResponsive) {
177
- isMobileFormDisplayed = displaySearchFilter;
178
- isDesktopFormDisplayed = false;
179
- }
180
-
181
- var formClass = (0, _classnames["default"])({
182
- 'filter__form filter__form--mobile': isMobileFormDisplayed
145
+ var formClass = (0, _classnames["default"])('filter__form filter__form--initial', {
146
+ 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,
147
+ 'filter__form--collapsible': isCollapsedOnResponsive
183
148
  });
184
149
 
185
150
  var _getResponsiveFilterC = (0, _helpers.getResponsiveFilterClassnames)(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed),
@@ -208,7 +173,7 @@ var SearchFilter = function SearchFilter(_ref) {
208
173
 
209
174
  var shouldGroup = !!(groupAfterDesktop || groupAfterMobile);
210
175
  var shouldSearch = !hasUrl;
211
- return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isDesktopFormDisplayed || isMobileFormDisplayed ? /*#__PURE__*/_react["default"].createElement("form", {
176
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("form", {
212
177
  ref: searchFilterRef,
213
178
  className: formClass,
214
179
  "data-testid": formId,
@@ -218,13 +183,13 @@ var SearchFilter = function SearchFilter(_ref) {
218
183
  var newQuery = (0, _helpers.buildQuery)(filterValues, filters);
219
184
  handleSearch(newQuery);
220
185
  }
221
- }, isMobileFormDisplayed && /*#__PURE__*/_react["default"].createElement(_CloseMobileForm["default"], {
186
+ }, displaySearchFilter && /*#__PURE__*/_react["default"].createElement(_CloseMobileForm["default"], {
222
187
  handleClose: function handleClose() {
223
188
  return setDisplaySearchFilter(false);
224
189
  }
225
190
  }), /*#__PURE__*/_react["default"].createElement("div", {
226
191
  className: "filter filter--search-refine"
227
- }, isDesktopFormDisplayed && /*#__PURE__*/_react["default"].createElement(_ResetDesktopForm["default"], {
192
+ }, /*#__PURE__*/_react["default"].createElement(_ResetDesktopForm["default"], {
228
193
  handleReset: handleReset
229
194
  }), /*#__PURE__*/_react["default"].createElement("div", {
230
195
  className: "filter__wrapper filter__wrapper--search-refine"
@@ -294,13 +259,13 @@ var SearchFilter = function SearchFilter(_ref) {
294
259
  }), /*#__PURE__*/_react["default"].createElement("button", {
295
260
  className: "button button--full-width",
296
261
  type: "submit"
297
- }, _constants.SEARCH)))), /*#__PURE__*/_react["default"].createElement("br", null), isDesktopFormDisplayed && /*#__PURE__*/_react["default"].createElement("button", {
262
+ }, _constants.SEARCH)))), /*#__PURE__*/_react["default"].createElement("br", null), !displaySearchFilter && /*#__PURE__*/_react["default"].createElement("button", {
298
263
  className: "button button--full-width",
299
264
  type: "submit"
300
- }, _constants.SEARCH))), isMobileFormDisplayed && /*#__PURE__*/_react["default"].createElement(_MobileFormToolbar["default"], {
265
+ }, _constants.SEARCH))), displaySearchFilter && /*#__PURE__*/_react["default"].createElement(_MobileFormToolbar["default"], {
301
266
  formId: formId,
302
267
  handleReset: handleReset
303
- })) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isCollapsedOnResponsive && /*#__PURE__*/_react["default"].createElement("div", {
268
+ })), isCollapsedOnResponsive && !displaySearchFilter && /*#__PURE__*/_react["default"].createElement("div", {
304
269
  className: "filter__refine filter__refine--mobile-close",
305
270
  "data-testid": "refine-mobile"
306
271
  }, /*#__PURE__*/_react["default"].createElement("div", {
@@ -308,7 +273,7 @@ var SearchFilter = function SearchFilter(_ref) {
308
273
  onClick: function onClick() {
309
274
  return setDisplaySearchFilter(true);
310
275
  }
311
- }, _constants.REFINE))));
276
+ }, _constants.REFINE)));
312
277
  };
313
278
 
314
279
  SearchFilter.propTypes = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","initialFilterValues","groupAfterDesktop","groupAfterMobile","isDesktop","setIsDesktop","pageWidth","setPageWidth","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","filterValues","dispatch","handleSubmit","newQuery","window","innerWidth","handleResize","target","addEventListener","removeEventListener","isDesktopFormDisplayed","isMobileFormDisplayed","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","shouldGroup","e","preventDefault","slice","MORE_FILTERS_CLASSES","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","SEARCH","MOBILE_BUTTONS","REFINE","propTypes","PropTypes","object","isRequired","array","bool","string","func","number"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport {\n isDeviceDesktop,\n buildQuery,\n getInitialFilterValues,\n getResponsiveFilterClassnames\n} from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n initialFilterValues,\n groupAfterDesktop,\n groupAfterMobile\n}) => {\n const [isDesktop, setIsDesktop] = useState(true);\n const [pageWidth, setPageWidth] = useState(null);\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);\n\n const handleSubmit = debounce(newValues => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n }, 200);\n\n useEffect(\n () => {\n if (window && !pageWidth) {\n setPageWidth(window.innerWidth);\n setIsDesktop(isDeviceDesktop());\n }\n\n const handleResize = ({ target: { innerWidth } }) => {\n setIsDesktop(isDeviceDesktop());\n setPageWidth(innerWidth);\n if (isDesktop) setDisplaySearchFilter(false);\n };\n\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n },\n [isDesktop, pageWidth, setDisplaySearchFilter]\n );\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n dispatch({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit]\n );\n\n let isDesktopFormDisplayed = true;\n let isMobileFormDisplayed = false;\n\n if (!isDesktop && isCollapsedOnResponsive) {\n isMobileFormDisplayed = displaySearchFilter;\n isDesktopFormDisplayed = false;\n }\n\n const formClass = classnames({\n 'filter__form filter__form--mobile': isMobileFormDisplayed\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(data, filters, {});\n\n dispatch({ newValues, type: 'reset' });\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n dispatch({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n const shouldSearch = !hasUrl;\n\n return (\n <>\n {isDesktopFormDisplayed || isMobileFormDisplayed ? (\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n const newQuery = buildQuery(filterValues, filters);\n handleSearch(newQuery);\n }}>\n {isMobileFormDisplayed && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n {isDesktopFormDisplayed && <ResetDesktopForm handleReset={handleReset} />}\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!shouldGroup && (\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {shouldGroup && (\n <>\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters.slice(0, groupAfterMobile)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterMobile && (\n <button\n className={moreFiltersMobileTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>\n Filters\n </button>\n )}\n\n <div className={moreFiltersMobileWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>\n <FiltersList\n shouldSearch={shouldSearch && isDeviceDesktop()}\n data={data}\n filters={filters.slice(\n groupAfterMobile,\n groupAfterDesktop ? groupAfterDesktop - 1 : 0\n )}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterDesktop && (\n <button\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n More filters\n </button>\n )}\n\n <div className={moreFiltersDesktopWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>\n <FiltersList\n shouldSearch={false}\n data={data}\n filters={filters.slice(groupAfterDesktop)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </div>\n\n <div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {isDesktopFormDisplayed && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {isMobileFormDisplayed && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n ) : (\n <>\n {isCollapsedOnResponsive && (\n <div\n className=\"filter__refine filter__refine--mobile-close\"\n data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfterDesktop: PropTypes.number.isRequired,\n groupAfterMobile: PropTypes.number.isRequired,\n initialFilterValues: PropTypes.object.isRequired\n};\n\nexport default SearchFilter;\n"],"file":"SearchFilter.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","initialFilterValues","groupAfterDesktop","groupAfterMobile","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","filterValues","dispatch","handleSubmit","newQuery","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","shouldGroup","e","preventDefault","slice","MORE_FILTERS_CLASSES","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","SEARCH","MOBILE_BUTTONS","REFINE","propTypes","PropTypes","object","isRequired","array","bool","string","func","number"],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useReducer } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport {\n isDeviceDesktop,\n buildQuery,\n getInitialFilterValues,\n getResponsiveFilterClassnames\n} from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst reducer = (state, action) => {\n const { newValues, type, shouldSearch = true } = action;\n\n switch (type) {\n case 'update':\n return { ...state, ...newValues, shouldSearch };\n case 'resetSearch':\n return { ...state, shouldSearch: false };\n case 'reset':\n return { ...newValues, shouldSearch };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilter = ({\n searchFilterRef,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n initialFilterValues,\n groupAfterDesktop,\n groupAfterMobile\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n const [filterValues, dispatch] = useReducer(reducer, initialFilterValues);\n\n const handleSubmit = debounce(newValues => {\n const newQuery = buildQuery(newValues, filters);\n handleSearch(newQuery);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n dispatch({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit]\n );\n\n const formClass = classnames('filter__form filter__form--initial', {\n 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,\n 'filter__form--collapsible': isCollapsedOnResponsive\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n const newValues = getInitialFilterValues(data, filters, {});\n\n dispatch({ newValues, type: 'reset' });\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n dispatch({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n const shouldSearch = !hasUrl;\n\n return (\n <>\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n const newQuery = buildQuery(filterValues, filters);\n handleSearch(newQuery);\n }}>\n {displaySearchFilter && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!shouldGroup && (\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {shouldGroup && (\n <>\n <FiltersList\n shouldSearch={shouldSearch}\n data={data}\n filters={filters.slice(0, groupAfterMobile)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterMobile && (\n <button\n className={moreFiltersMobileTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>\n Filters\n </button>\n )}\n\n <div className={moreFiltersMobileWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>\n <FiltersList\n shouldSearch={shouldSearch && isDeviceDesktop()}\n data={data}\n filters={filters.slice(\n groupAfterMobile,\n groupAfterDesktop ? groupAfterDesktop - 1 : 0\n )}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterDesktop && (\n <button\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n More filters\n </button>\n )}\n\n <div className={moreFiltersDesktopWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>\n <FiltersList\n shouldSearch={false}\n data={data}\n filters={filters.slice(groupAfterDesktop)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </div>\n\n <div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n <br />\n\n {!displaySearchFilter && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {displaySearchFilter && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n\n {isCollapsedOnResponsive &&\n !displaySearchFilter && (\n <div className=\"filter__refine filter__refine--mobile-close\" data-testid=\"refine-mobile\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {REFINE}\n </div>\n </div>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfterDesktop: PropTypes.number.isRequired,\n groupAfterMobile: PropTypes.number.isRequired,\n initialFilterValues: PropTypes.object.isRequired\n};\n\nexport default SearchFilter;\n"],"file":"SearchFilter.js"}
@@ -11,8 +11,6 @@ exports["default"] = void 0;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
14
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
14
  require("core-js/modules/es.array.sort.js");
17
15
 
18
16
  require("core-js/modules/es.array.filter.js");
@@ -21,8 +19,6 @@ require("core-js/modules/es.object.to-string.js");
21
19
 
22
20
  require("core-js/modules/es.array.map.js");
23
21
 
24
- require("core-js/modules/es.array.concat.js");
25
-
26
22
  var _react = _interopRequireDefault(require("react"));
27
23
 
28
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -39,20 +35,34 @@ var SelectFilter = function SelectFilter(_ref) {
39
35
  prop = _ref.prop,
40
36
  updateFilterValues = _ref.updateFilterValues,
41
37
  filterValues = _ref.filterValues,
42
- shouldSearch = _ref.shouldSearch;
38
+ shouldSearch = _ref.shouldSearch,
39
+ displayLabelAsPlaceholder = _ref.displayLabelAsPlaceholder;
43
40
  var filterValue = filterValues[prop] || '';
44
41
  var options = data[prop].buckets.map(function (bucket) {
45
42
  return bucket.key;
46
43
  }).filter(Boolean).sort();
47
- var optionsJoined = [_constants.DEFAULT_OPTION].concat((0, _toConsumableArray2["default"])(options));
44
+ var optionsJoined = options;
45
+ var labelText = label || prop;
46
+ var labelToUse = labelText;
47
+ var defaultTextValue = _constants.DEFAULT_OPTION;
48
+
49
+ if (displayLabelAsPlaceholder) {
50
+ defaultTextValue = labelToUse;
51
+ labelToUse = null;
52
+ }
53
+
48
54
  return /*#__PURE__*/_react["default"].createElement(_select["default"], {
49
- label: "".concat(label || prop),
55
+ label: labelToUse,
50
56
  value: filterValue,
51
57
  id: prop,
58
+ "data-testid": "filter-".concat(prop),
52
59
  options: optionsJoined,
60
+ defaultTextValue: defaultTextValue,
53
61
  onChange: function onChange(_ref2) {
54
62
  var value = _ref2.value;
55
- updateFilterValues((0, _defineProperty2["default"])({}, prop, value), shouldSearch);
63
+ var valueToUse = value;
64
+ if (value === defaultTextValue) valueToUse = '';
65
+ updateFilterValues((0, _defineProperty2["default"])({}, prop, valueToUse), shouldSearch);
56
66
  }
57
67
  });
58
68
  };
@@ -63,11 +73,13 @@ SelectFilter.propTypes = {
63
73
  filterValues: _propTypes["default"].object.isRequired,
64
74
  updateFilterValues: _propTypes["default"].func.isRequired,
65
75
  shouldSearch: _propTypes["default"].bool,
66
- label: _propTypes["default"].string
76
+ label: _propTypes["default"].string,
77
+ displayLabelAsPlaceholder: _propTypes["default"].bool
67
78
  };
68
79
  SelectFilter.defaultProps = {
69
80
  shouldSearch: false,
70
- label: ''
81
+ label: '',
82
+ displayLabelAsPlaceholder: false
71
83
  };
72
84
 
73
85
  var _default = (0, _HOC.withTitle)(SelectFilter);