@blaze-cms/react-page-builder 0.113.0 → 0.114.0-alpha.2

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 (112) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/README.md +5 -8
  3. package/lib/components/Card/CardRender.js +61 -17
  4. package/lib/components/Card/CardRender.js.map +1 -1
  5. package/lib/components/Card/helpers/filter-query-setup.js.map +1 -1
  6. package/lib/components/DataSummary/helpers/build-loop-props-content.js +1 -1
  7. package/lib/components/DataSummary/helpers/build-loop-props-content.js.map +1 -1
  8. package/lib/components/List/ListBuilder.js +11 -6
  9. package/lib/components/List/ListBuilder.js.map +1 -1
  10. package/lib/components/List/ListFactory.js +20 -7
  11. package/lib/components/List/ListFactory.js.map +1 -1
  12. package/lib/components/List/helpers/get-sort-props.js +46 -0
  13. package/lib/components/List/helpers/get-sort-props.js.map +1 -0
  14. package/lib/components/List/helpers/index.js +8 -0
  15. package/lib/components/List/helpers/index.js.map +1 -1
  16. package/lib/components/SearchFilter/SearchFilter/FiltersList.js +11 -5
  17. package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  18. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +57 -20
  19. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  20. package/lib/components/SearchFilter/SearchFilterContainer.js +8 -4
  21. package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  22. package/lib/components/SearchFilter/components/Checkbox.js +5 -2
  23. package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
  24. package/lib/components/SearchFilter/components/Range.js +7 -3
  25. package/lib/components/SearchFilter/components/Range.js.map +1 -1
  26. package/lib/components/SearchFilter/components/Select.js +5 -2
  27. package/lib/components/SearchFilter/components/Select.js.map +1 -1
  28. package/lib/components/SearchFilter/constants.js +13 -1
  29. package/lib/components/SearchFilter/constants.js.map +1 -1
  30. package/lib/components/SearchFilter/helpers/build-query.js +6 -5
  31. package/lib/components/SearchFilter/helpers/build-query.js.map +1 -1
  32. package/lib/components/SearchFilter/helpers/get-range-value.js +6 -4
  33. package/lib/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  34. package/lib/components/SearchFilter/helpers/get-responsive-filter-classnames.js +29 -0
  35. package/lib/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -0
  36. package/lib/components/SearchFilter/helpers/index.js +8 -0
  37. package/lib/components/SearchFilter/helpers/index.js.map +1 -1
  38. package/lib/components/SearchFilter/helpers/is-device-desktop.js +1 -1
  39. package/lib/components/SearchFilter/helpers/is-device-desktop.js.map +1 -1
  40. package/lib/helpers/get-generic-render-variables.js +32 -22
  41. package/lib/helpers/get-generic-render-variables.js.map +1 -1
  42. package/lib-es/components/Card/CardRender.js +32 -5
  43. package/lib-es/components/Card/CardRender.js.map +1 -1
  44. package/lib-es/components/Card/helpers/filter-query-setup.js.map +1 -1
  45. package/lib-es/components/DataSummary/helpers/build-loop-props-content.js +1 -1
  46. package/lib-es/components/DataSummary/helpers/build-loop-props-content.js.map +1 -1
  47. package/lib-es/components/List/ListBuilder.js +11 -6
  48. package/lib-es/components/List/ListBuilder.js.map +1 -1
  49. package/lib-es/components/List/ListFactory.js +20 -8
  50. package/lib-es/components/List/ListFactory.js.map +1 -1
  51. package/lib-es/components/List/helpers/get-sort-props.js +26 -0
  52. package/lib-es/components/List/helpers/get-sort-props.js.map +1 -0
  53. package/lib-es/components/List/helpers/index.js +1 -0
  54. package/lib-es/components/List/helpers/index.js.map +1 -1
  55. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js +11 -5
  56. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  57. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +51 -21
  58. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  59. package/lib-es/components/SearchFilter/SearchFilterContainer.js +8 -4
  60. package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  61. package/lib-es/components/SearchFilter/components/Checkbox.js +5 -2
  62. package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
  63. package/lib-es/components/SearchFilter/components/Range.js +7 -3
  64. package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
  65. package/lib-es/components/SearchFilter/components/Select.js +5 -2
  66. package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
  67. package/lib-es/components/SearchFilter/constants.js +12 -1
  68. package/lib-es/components/SearchFilter/constants.js.map +1 -1
  69. package/lib-es/components/SearchFilter/helpers/build-query.js +5 -4
  70. package/lib-es/components/SearchFilter/helpers/build-query.js.map +1 -1
  71. package/lib-es/components/SearchFilter/helpers/get-range-value.js +1 -1
  72. package/lib-es/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  73. package/lib-es/components/SearchFilter/helpers/get-responsive-filter-classnames.js +20 -0
  74. package/lib-es/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -0
  75. package/lib-es/components/SearchFilter/helpers/index.js +2 -1
  76. package/lib-es/components/SearchFilter/helpers/index.js.map +1 -1
  77. package/lib-es/components/SearchFilter/helpers/is-device-desktop.js +1 -1
  78. package/lib-es/components/SearchFilter/helpers/is-device-desktop.js.map +1 -1
  79. package/lib-es/helpers/get-generic-render-variables.js +22 -15
  80. package/lib-es/helpers/get-generic-render-variables.js.map +1 -1
  81. package/package.json +2 -2
  82. package/src/components/Card/CardRender.js +24 -6
  83. package/src/components/Card/helpers/filter-query-setup.js +1 -0
  84. package/src/components/DataSummary/helpers/build-loop-props-content.js +1 -6
  85. package/src/components/List/ListBuilder.js +11 -6
  86. package/src/components/List/ListFactory.js +18 -8
  87. package/src/components/List/helpers/get-sort-props.js +17 -0
  88. package/src/components/List/helpers/index.js +1 -0
  89. package/src/components/SearchFilter/SearchFilter/FiltersList.js +15 -2
  90. package/src/components/SearchFilter/SearchFilter/SearchFilter.js +75 -25
  91. package/src/components/SearchFilter/SearchFilterContainer.js +8 -4
  92. package/src/components/SearchFilter/components/Checkbox.js +4 -2
  93. package/src/components/SearchFilter/components/Range.js +7 -3
  94. package/src/components/SearchFilter/components/Select.js +4 -2
  95. package/src/components/SearchFilter/constants.js +14 -1
  96. package/src/components/SearchFilter/helpers/build-query.js +5 -4
  97. package/src/components/SearchFilter/helpers/get-range-value.js +3 -1
  98. package/src/components/SearchFilter/helpers/get-responsive-filter-classnames.js +22 -0
  99. package/src/components/SearchFilter/helpers/index.js +2 -0
  100. package/src/components/SearchFilter/helpers/is-device-desktop.js +2 -1
  101. package/src/helpers/get-generic-render-variables.js +22 -12
  102. package/tests/unit/src/components/DataSummary/helpers/build-loop-props-content.test.js +24 -0
  103. package/tests/unit/src/components/List/helpers/get-sort-props.test.js +58 -0
  104. package/tests/unit/src/components/SearchFilter/SearchFilter/SearchFilter.test.js +29 -3
  105. package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/SearchFilter.test.js.snap +304 -6
  106. package/tests/unit/src/helpers/build-raw-query.test.js +2 -1
  107. package/tests/unit/src/helpers/get-generic-render-variables.test.js +5 -11
  108. package/lib/helpers/check-sort-by.js +0 -16
  109. package/lib/helpers/check-sort-by.js.map +0 -1
  110. package/lib-es/helpers/check-sort-by.js +0 -4
  111. package/lib-es/helpers/check-sort-by.js.map +0 -1
  112. package/src/helpers/check-sort-by.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"names":["React","useState","useEffect","useReducer","PropTypes","classnames","debounce","FiltersList","isDeviceDesktop","buildQuery","getInitialFilterValues","CloseMobileForm","ResetDesktopForm","MobileFormToolbar","SEARCH","REFINE","reducer","state","action","newValues","type","shouldSearch","Error","SearchFilter","searchFilterRef","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","initialFilterValues","groupAfter","isDesktop","setIsDesktop","pageWidth","setPageWidth","moreFiltersCollapsed","setMoreFiltersCollapsed","filterValues","dispatch","handleSubmit","newQuery","window","innerWidth","handleResize","target","addEventListener","removeEventListener","isDesktopFormDisplayed","isMobileFormDisplayed","formClass","moreFiltersWrapperClass","moreFiltersTogglerClass","formId","handleReset","updateFilterValues","e","preventDefault","slice","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 { isDeviceDesktop, buildQuery, getInitialFilterValues } from '../helpers';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE } 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 groupAfter\n}) => {\n const [isDesktop, setIsDesktop] = useState(true);\n const [pageWidth, setPageWidth] = useState(null);\n const [moreFiltersCollapsed, setMoreFiltersCollapsed] = 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 moreFiltersWrapperClass = classnames('filter__more-filters-wrapper', {\n 'filter__more-filters-wrapper--open': !moreFiltersCollapsed\n });\n\n const moreFiltersTogglerClass = classnames('filter__more-filters-toggler', {\n 'filter__more-filters-toggler--open': !moreFiltersCollapsed\n });\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, shouldSearch) => {\n dispatch({ newValues, shouldSearch, type: 'update' });\n };\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 {!groupAfter && (\n <FiltersList\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {!!groupAfter && (\n <>\n <FiltersList\n data={data}\n filters={filters.slice(0, groupAfter)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n <button\n className={moreFiltersTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersCollapsed(!moreFiltersCollapsed)}>\n More filters\n </button>\n\n <div className={moreFiltersWrapperClass}>\n <div className=\"filter__more-filters-content\">\n <FiltersList\n data={data}\n filters={filters.slice(groupAfter)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className=\"filter__more-filters-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 groupAfter: 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":["React","useState","useEffect","useReducer","PropTypes","classnames","debounce","FiltersList","isDeviceDesktop","buildQuery","getInitialFilterValues","getResponsiveFilterClassnames","CloseMobileForm","ResetDesktopForm","MobileFormToolbar","SEARCH","REFINE","MORE_FILTERS_CLASSES","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","shouldGroup","e","preventDefault","slice","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","MOBILE_BUTTONS","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, shouldSearch) => {\n dispatch({ newValues, shouldSearch, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\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\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\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={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"}
@@ -17,7 +17,8 @@ const SearchFilterContainer = ({
17
17
  filters,
18
18
  name,
19
19
  isCollapsedOnResponsive,
20
- groupAfter
20
+ groupAfterMobile,
21
+ groupAfterDesktop
21
22
  }) => {
22
23
  const router = useRouter();
23
24
  const searchFilterRef = useRef(null);
@@ -127,7 +128,8 @@ const SearchFilterContainer = ({
127
128
  isCollapsedOnResponsive: isCollapsedOnResponsive,
128
129
  displaySearchFilter: displaySearchFilter,
129
130
  setDisplaySearchFilter: setDisplaySearchFilter,
130
- groupAfter: groupAfter
131
+ groupAfterMobile: groupAfterMobile,
132
+ groupAfterDesktop: groupAfterDesktop
131
133
  });
132
134
  };
133
135
 
@@ -137,14 +139,16 @@ SearchFilterContainer.propTypes = {
137
139
  filters: PropTypes.array,
138
140
  name: PropTypes.string.isRequired,
139
141
  isCollapsedOnResponsive: PropTypes.bool,
140
- groupAfter: PropTypes.number
142
+ groupAfterMobile: PropTypes.number,
143
+ groupAfterDesktop: PropTypes.number
141
144
  };
142
145
  SearchFilterContainer.defaultProps = {
143
146
  url: null,
144
147
  filters: [],
145
148
  entity: '',
146
149
  isCollapsedOnResponsive: true,
147
- groupAfter: 0
150
+ groupAfterMobile: 0,
151
+ groupAfterDesktop: 0
148
152
  };
149
153
  export default withTitle(SearchFilterContainer);
150
154
  //# sourceMappingURL=SearchFilterContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"names":["React","useState","useRef","useRouter","useQuery","PropTypes","parseUrl","stringify","SearchFilter","withTitle","getSearchPublishedContent","buildNewQuery","buildRawQueryStringified","getInitialFilterValues","decodeValue","getEntityData","RAW_RESULTS","RANGE","CHECKBOX_SELECT","SCROLL_OFFSET","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfter","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","currentUrl","query","sort","sortby","asPath","sortValues","baseQuery","action","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","includes","push","docType","data","error","loading","variables","limit","skip","message","length","searchPublishedContent","rawResults","aggregations","filterData","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","list","document","getElementsByClassName","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","getBoundingClientRect","propTypes","string","array","isRequired","bool","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n decodeValue\n} from './helpers';\n\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfter\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(decodeValue(router.asPath));\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (loading) return null;\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData = {} } = {} } = {} } =\n data || {};\n\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfter={groupAfter}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfter: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfter: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"file":"SearchFilterContainer.js"}
1
+ {"version":3,"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"names":["React","useState","useRef","useRouter","useQuery","PropTypes","parseUrl","stringify","SearchFilter","withTitle","getSearchPublishedContent","buildNewQuery","buildRawQueryStringified","getInitialFilterValues","decodeValue","getEntityData","RAW_RESULTS","RANGE","CHECKBOX_SELECT","SCROLL_OFFSET","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","router","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","hasUrl","currentUrl","query","sort","sortby","asPath","sortValues","baseQuery","action","rawQueryStringified","checkboxSelectValues","rangeValues","forEach","type","propsToDisplay","includes","push","docType","data","error","loading","variables","limit","skip","message","length","searchPublishedContent","rawResults","aggregations","filterData","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","list","document","getElementsByClassName","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","getBoundingClientRect","propTypes","string","array","isRequired","bool","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState, useRef } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\nimport { parseUrl, stringify } from 'query-string';\nimport SearchFilter from './SearchFilter';\nimport { withTitle } from '../../HOC';\nimport { getSearchPublishedContent } from '../../application/query';\nimport {\n buildNewQuery,\n buildRawQueryStringified,\n getInitialFilterValues,\n decodeValue\n} from './helpers';\n\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } from '../../constants';\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop\n}) => {\n const router = useRouter();\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(decodeValue(router.asPath));\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\n\n let rawQueryStringified = '';\n\n const checkboxSelectValues = [];\n const rangeValues = [];\n\n filters.forEach(({ type, propsToDisplay }) => {\n if (CHECKBOX_SELECT.includes(type)) {\n checkboxSelectValues.push(propsToDisplay[0]);\n } else if (type === RANGE) {\n rangeValues.push(...propsToDisplay);\n }\n });\n\n const { docType } = getEntityData(entity);\n\n rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType);\n\n const { data, error, loading } = useQuery(action, {\n variables: { rawQueryStringified, limit: 0 }, // we only want aggs so limit=0 for no search results\n skip: !rawQueryStringified\n });\n\n if (loading) return null;\n if (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData = {} } = {} } = {} } =\n data || {};\n\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n\n return (\n <SearchFilter\n key={key}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n initialFilterValues={initialFilterValues}\n name={name}\n isCollapsedOnResponsive={isCollapsedOnResponsive}\n displaySearchFilter={displaySearchFilter}\n setDisplaySearchFilter={setDisplaySearchFilter}\n groupAfterMobile={groupAfterMobile}\n groupAfterDesktop={groupAfterDesktop}\n />\n );\n};\n\nSearchFilterContainer.propTypes = {\n entity: PropTypes.string,\n url: PropTypes.string,\n filters: PropTypes.array,\n name: PropTypes.string.isRequired,\n isCollapsedOnResponsive: PropTypes.bool,\n groupAfterMobile: PropTypes.number,\n groupAfterDesktop: PropTypes.number\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"file":"SearchFilterContainer.js"}
@@ -19,7 +19,8 @@ const Checkbox = ({
19
19
  prop,
20
20
  updateFilterValues,
21
21
  filterValues,
22
- label
22
+ label,
23
+ shouldSearch
23
24
  }) => {
24
25
  const [checkboxLimit, setCheckboxLimit] = useState(null);
25
26
 
@@ -73,7 +74,7 @@ const Checkbox = ({
73
74
  }) => value);
74
75
  updateFilterValues({
75
76
  [prop]: newCheckboxValues
76
- }, true);
77
+ }, shouldSearch);
77
78
  }
78
79
  }), data[prop].buckets.length > LIMIT_MIN && /*#__PURE__*/React.createElement("div", {
79
80
  role: "button",
@@ -89,9 +90,11 @@ Checkbox.propTypes = {
89
90
  prop: PropTypes.string.isRequired,
90
91
  filterValues: PropTypes.object.isRequired,
91
92
  updateFilterValues: PropTypes.func.isRequired,
93
+ shouldSearch: PropTypes.bool,
92
94
  label: PropTypes.string
93
95
  };
94
96
  Checkbox.defaultProps = {
97
+ shouldSearch: false,
95
98
  label: ''
96
99
  };
97
100
  export default withTitle(Checkbox);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/components/Checkbox.js"],"names":["React","useState","PropTypes","upperFirst","Checkboxes","withTitle","decodeValue","LIMIT_MIN","LIMIT_MAX","MORE","LESS","DOWN","UP","getButtonInfo","isMore","icon","text","Checkbox","data","prop","updateFilterValues","filterValues","label","checkboxLimit","setCheckboxLimit","handleCheckboxOptions","checkboxQueryParams","map","val","multiple","sortedValues","buckets","key","filter","Boolean","sort","forEach","value","i","push","name","checked","includes","id","shouldDisplayMore","eData","newCheckboxValues","length","propTypes","object","isRequired","string","func","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport upperFirst from 'lodash.upperfirst';\nimport { Checkboxes } from '@blaze-react/checkboxes';\nimport { withTitle } from '../../../HOC';\nimport { decodeValue } from '../helpers';\nimport { LIMIT_MIN, LIMIT_MAX, MORE, LESS, DOWN, UP } from '../constants';\n\nconst getButtonInfo = isMore => (isMore ? { icon: DOWN, text: MORE } : { icon: UP, text: LESS });\n\nconst Checkbox = ({ data, prop, updateFilterValues, filterValues, label }) => {\n const [checkboxLimit, setCheckboxLimit] = useState(null);\n\n const handleCheckboxOptions = () => {\n if (checkboxLimit[prop] === LIMIT_MIN) {\n setCheckboxLimit({ [prop]: LIMIT_MAX });\n } else {\n setCheckboxLimit({ [prop]: LIMIT_MIN });\n }\n };\n\n if (!checkboxLimit) {\n setCheckboxLimit({ [prop]: LIMIT_MIN });\n }\n\n if (!checkboxLimit) return null;\n\n let checkboxQueryParams = [];\n\n if (filterValues && filterValues[prop]) {\n checkboxQueryParams =\n typeof filterValues[prop] === 'string'\n ? [decodeValue(filterValues[prop])]\n : filterValues[prop].map(val => decodeValue(val));\n }\n const multiple = [];\n\n const sortedValues = data[prop].buckets\n .map(({ key }) => key)\n .filter(Boolean)\n .sort();\n\n sortedValues.forEach(\n (value, i) =>\n i < checkboxLimit[prop] &&\n multiple.push({\n label: upperFirst(value),\n value,\n name: prop,\n checked: checkboxQueryParams.includes(value),\n id: value\n })\n );\n\n const shouldDisplayMore = !checkboxLimit || checkboxLimit[prop] === LIMIT_MIN;\n\n return (\n <>\n {label ? <p>{label}</p> : ''}\n <Checkboxes\n className=\"form-checkbox\"\n options={multiple}\n onChange={({ data: eData }) => {\n const newCheckboxValues = eData\n .filter(({ checked }) => checked)\n .map(({ value }) => value);\n updateFilterValues({ [prop]: newCheckboxValues }, true);\n }}\n />\n {data[prop].buckets.length > LIMIT_MIN && (\n <div role=\"button\" className=\"see-more\" onClick={handleCheckboxOptions}>\n <i className={`fas fa-chevron-${getButtonInfo(shouldDisplayMore).icon}`} />\n {` See ${getButtonInfo(shouldDisplayMore).text}`}\n </div>\n )}\n </>\n );\n};\n\nCheckbox.propTypes = {\n data: PropTypes.object.isRequired,\n prop: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n label: PropTypes.string\n};\n\nCheckbox.defaultProps = {\n label: ''\n};\n\nexport default withTitle(Checkbox);\n"],"file":"Checkbox.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/components/Checkbox.js"],"names":["React","useState","PropTypes","upperFirst","Checkboxes","withTitle","decodeValue","LIMIT_MIN","LIMIT_MAX","MORE","LESS","DOWN","UP","getButtonInfo","isMore","icon","text","Checkbox","data","prop","updateFilterValues","filterValues","label","shouldSearch","checkboxLimit","setCheckboxLimit","handleCheckboxOptions","checkboxQueryParams","map","val","multiple","sortedValues","buckets","key","filter","Boolean","sort","forEach","value","i","push","name","checked","includes","id","shouldDisplayMore","eData","newCheckboxValues","length","propTypes","object","isRequired","string","func","bool","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport upperFirst from 'lodash.upperfirst';\nimport { Checkboxes } from '@blaze-react/checkboxes';\nimport { withTitle } from '../../../HOC';\nimport { decodeValue } from '../helpers';\nimport { LIMIT_MIN, LIMIT_MAX, MORE, LESS, DOWN, UP } from '../constants';\n\nconst getButtonInfo = isMore => (isMore ? { icon: DOWN, text: MORE } : { icon: UP, text: LESS });\n\nconst Checkbox = ({ data, prop, updateFilterValues, filterValues, label, shouldSearch }) => {\n const [checkboxLimit, setCheckboxLimit] = useState(null);\n\n const handleCheckboxOptions = () => {\n if (checkboxLimit[prop] === LIMIT_MIN) {\n setCheckboxLimit({ [prop]: LIMIT_MAX });\n } else {\n setCheckboxLimit({ [prop]: LIMIT_MIN });\n }\n };\n\n if (!checkboxLimit) {\n setCheckboxLimit({ [prop]: LIMIT_MIN });\n }\n\n if (!checkboxLimit) return null;\n\n let checkboxQueryParams = [];\n\n if (filterValues && filterValues[prop]) {\n checkboxQueryParams =\n typeof filterValues[prop] === 'string'\n ? [decodeValue(filterValues[prop])]\n : filterValues[prop].map(val => decodeValue(val));\n }\n const multiple = [];\n\n const sortedValues = data[prop].buckets\n .map(({ key }) => key)\n .filter(Boolean)\n .sort();\n\n sortedValues.forEach(\n (value, i) =>\n i < checkboxLimit[prop] &&\n multiple.push({\n label: upperFirst(value),\n value,\n name: prop,\n checked: checkboxQueryParams.includes(value),\n id: value\n })\n );\n\n const shouldDisplayMore = !checkboxLimit || checkboxLimit[prop] === LIMIT_MIN;\n\n return (\n <>\n {label ? <p>{label}</p> : ''}\n <Checkboxes\n className=\"form-checkbox\"\n options={multiple}\n onChange={({ data: eData }) => {\n const newCheckboxValues = eData\n .filter(({ checked }) => checked)\n .map(({ value }) => value);\n updateFilterValues({ [prop]: newCheckboxValues }, shouldSearch);\n }}\n />\n {data[prop].buckets.length > LIMIT_MIN && (\n <div role=\"button\" className=\"see-more\" onClick={handleCheckboxOptions}>\n <i className={`fas fa-chevron-${getButtonInfo(shouldDisplayMore).icon}`} />\n {` See ${getButtonInfo(shouldDisplayMore).text}`}\n </div>\n )}\n </>\n );\n};\n\nCheckbox.propTypes = {\n data: PropTypes.object.isRequired,\n prop: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n shouldSearch: PropTypes.bool,\n label: PropTypes.string\n};\n\nCheckbox.defaultProps = {\n shouldSearch: false,\n label: ''\n};\n\nexport default withTitle(Checkbox);\n"],"file":"Checkbox.js"}
@@ -22,9 +22,11 @@ const Range = ({
22
22
  entity,
23
23
  propsToDisplay,
24
24
  updateFilterValues,
25
- filterValues
25
+ filterValues,
26
+ shouldSearch
26
27
  }) => {
27
28
  const router = useRouter();
29
+ const debounceAmount = shouldSearch ? 1200 : 100;
28
30
  const {
29
31
  query
30
32
  } = parseUrl(decodeValue(router.asPath));
@@ -50,8 +52,8 @@ const Range = ({
50
52
  [option]: _objectSpread(_objectSpread({}, value), {}, {
51
53
  selectedOption: rangeOption
52
54
  })
53
- }, true);
54
- }, 1200);
55
+ }, shouldSearch);
56
+ }, debounceAmount);
55
57
  return /*#__PURE__*/React.createElement(React.Fragment, null, hasMultipleOptions && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("label", null, label), /*#__PURE__*/React.createElement(Select, {
56
58
  value: rangeOption,
57
59
  id: rangeOption,
@@ -92,10 +94,12 @@ Range.propTypes = {
92
94
  entity: PropTypes.string.isRequired,
93
95
  filterValues: PropTypes.object.isRequired,
94
96
  updateFilterValues: PropTypes.func.isRequired,
97
+ shouldSearch: PropTypes.bool,
95
98
  rangeInterval: PropTypes.number,
96
99
  label: PropTypes.string
97
100
  };
98
101
  Range.defaultProps = {
102
+ shouldSearch: false,
99
103
  rangeInterval: 1,
100
104
  label: ''
101
105
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/components/Range.js"],"names":["React","PropTypes","debounce","RangeFilter","useRouter","Select","parseUrl","useGetSingleEntitySchema","withTitle","getSelectOptions","getIntersectedProp","getRangeValue","decodeValue","Range","rangeInterval","label","entity","propsToDisplay","updateFilterValues","filterValues","router","query","asPath","hasMultipleOptions","length","initialRangeOption","rangeOption","selectedOption","rangeValue","data","getEntitySchema","loading","options","min","max","shouldShowRange","handleChange","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","propTypes","array","isRequired","string","object","func","number","defaultProps"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,OAAOC,WAAP,MAAwB,2BAAxB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,OAAOC,MAAP,MAAmB,qBAAnB;AACA,SAASC,QAAT,QAAyB,cAAzB;AACA,SAASC,wBAAT,QAAyC,gBAAzC;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,gBAAT,EAA2BC,kBAA3B,EAA+CC,aAA/C,QAAoE,YAApE;AACA,SAASC,WAAT,QAA4B,0BAA5B;;AAEA,MAAMC,KAAK,GAAG,CAAC;AACbC,EAAAA,aADa;AAEbC,EAAAA,KAFa;AAGbC,EAAAA,MAHa;AAIbC,EAAAA,cAJa;AAKbC,EAAAA,kBALa;AAMbC,EAAAA;AANa,CAAD,KAOR;AACJ,QAAMC,MAAM,GAAGhB,SAAS,EAAxB;AACA,QAAM;AAAEiB,IAAAA;AAAF,MAAYf,QAAQ,CAACM,WAAW,CAACQ,MAAM,CAACE,MAAR,CAAZ,CAA1B;AACA,QAAMC,kBAAkB,GAAGN,cAAc,CAACO,MAAf,GAAwB,CAAnD;AACA,QAAMC,kBAAkB,GAAGf,kBAAkB,CAACW,KAAD,EAAQJ,cAAR,CAAlB,IAA6CA,cAAc,CAAC,CAAD,CAAtF;AACA,QAAMS,WAAW,GACdP,YAAY,CAACM,kBAAD,CAAZ,IAAoCN,YAAY,CAACM,kBAAD,CAAZ,CAAiCE,cAAtE,IACAF,kBAFF;AAGA,QAAMG,UAAU,GAAGT,YAAY,CAACO,WAAD,CAA/B;AAEA,QAAM;AAAEG,IAAAA,IAAI,EAAE;AAAEC,MAAAA,eAAe,GAAG;AAApB,QAA2B,EAAnC;AAAuCC,IAAAA;AAAvC,MAAmDxB,wBAAwB,CAC/ES,MAD+E,EAE/E,CAACO,kBAF8E,CAAjF;AAKA,MAAIQ,OAAO,IAAI,CAACL,WAAZ,IAA2B,CAACE,UAAhC,EAA4C,OAAO,EAAP;AAE5C,QAAMI,OAAO,GAAGvB,gBAAgB,CAACqB,eAAD,EAAkBb,cAAlB,CAAhC;AACA,QAAM;AAAEgB,IAAAA,GAAF;AAAOC,IAAAA;AAAP,MAAeN,UAArB;AACA,QAAMO,eAAe,GAAGT,WAAW,IAAIO,GAAG,KAAKC,GAA/C;AAEA,QAAME,YAAY,GAAGlC,QAAQ,CAAC,CAACmC,MAAD,EAASC,KAAT,KAAmB;AAC/CpB,IAAAA,kBAAkB,CAAC;AAAE,OAACmB,MAAD,mCAAeC,KAAf;AAAsBX,QAAAA,cAAc,EAAED;AAAtC;AAAF,KAAD,EAA0D,IAA1D,CAAlB;AACD,GAF4B,EAE1B,IAF0B,CAA7B;AAIA,sBACE,0CACGH,kBAAkB,iBACjB,uDACE,mCAAQR,KAAR,CADF,eAEE,oBAAC,MAAD;AACE,IAAA,KAAK,EAAEW,WADT;AAEE,IAAA,EAAE,EAAEA,WAFN;AAGE,IAAA,OAAO,EAAEM,OAHX;AAIE,IAAA,QAAQ,MAJV;AAKE,IAAA,QAAQ,EAAE,CAAC;AAAEM,MAAAA;AAAF,KAAD,KAAe;AACvB,YAAMC,cAAc,GAAG,EAAvB;AACAtB,MAAAA,cAAc,CAACuB,OAAf,CAAuBC,IAAI,IAAI;AAC7B,cAAM;AAAER,UAAAA,GAAG,EAAES,IAAP;AAAaR,UAAAA,GAAG,EAAES;AAAlB,YAA2BxB,YAAY,CAACsB,IAAD,CAA7C;AACA,cAAMG,SAAS,GAAGjC,aAAa,CAAC,IAAD,EAAOG,aAAP,EAAsB4B,IAAtB,EAA4BC,IAA5B,CAA/B;AACAJ,QAAAA,cAAc,CAACE,IAAD,CAAd,mCAA4BG,SAA5B;AAAuCjB,UAAAA,cAAc,EAAEW;AAAvD;AACD,OAJD;AAMApB,MAAAA,kBAAkB,CAACqB,cAAD,EAAiB,KAAjB,CAAlB;AACD;AAdH,IAFF,CAFJ,EAsBGJ,eAAe,iBACd,oBAAC,WAAD;AACE,IAAA,GAAG,EAAET,WADP;AAEE,IAAA,IAAI,EAAEA,WAFR;AAGE,IAAA,KAAK,EAAEH,kBAAkB,GAAG,EAAH,GAAQR,KAHnC;AAIE,IAAA,KAAK,EAAEa,UAJT;AAKE,IAAA,EAAE,EAAEF,WALN;AAME,IAAA,QAAQ,EAAE,CAAC;AAAEY,MAAAA;AAAF,KAAD,KAAe;AACvBF,MAAAA,YAAY,CAACV,WAAD,EAAcY,KAAd,CAAZ;AACD;AARH,IAvBJ,CADF;AAqCD,CArED;;AAuEAzB,KAAK,CAACgC,SAAN,GAAkB;AAChB5B,EAAAA,cAAc,EAAEhB,SAAS,CAAC6C,KAAV,CAAgBC,UADhB;AAEhB/B,EAAAA,MAAM,EAAEf,SAAS,CAAC+C,MAAV,CAAiBD,UAFT;AAGhB5B,EAAAA,YAAY,EAAElB,SAAS,CAACgD,MAAV,CAAiBF,UAHf;AAIhB7B,EAAAA,kBAAkB,EAAEjB,SAAS,CAACiD,IAAV,CAAeH,UAJnB;AAKhBjC,EAAAA,aAAa,EAAEb,SAAS,CAACkD,MALT;AAMhBpC,EAAAA,KAAK,EAAEd,SAAS,CAAC+C;AAND,CAAlB;AASAnC,KAAK,CAACuC,YAAN,GAAqB;AACnBtC,EAAAA,aAAa,EAAE,CADI;AAEnBC,EAAAA,KAAK,EAAE;AAFY,CAArB;AAKA,eAAeP,SAAS,CAACK,KAAD,CAAxB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport RangeFilter from '@blaze-react/range-filter';\nimport { useRouter } from 'next/router';\nimport Select from '@blaze-react/select';\nimport { parseUrl } from 'query-string';\nimport { useGetSingleEntitySchema } from '../../../hooks';\nimport { withTitle } from '../../../HOC';\nimport { getSelectOptions, getIntersectedProp, getRangeValue } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n updateFilterValues,\n filterValues\n}) => {\n const router = useRouter();\n const { query } = parseUrl(decodeValue(router.asPath));\n const hasMultipleOptions = propsToDisplay.length > 1;\n const initialRangeOption = getIntersectedProp(query, propsToDisplay) || propsToDisplay[0];\n const rangeOption =\n (filterValues[initialRangeOption] && filterValues[initialRangeOption].selectedOption) ||\n initialRangeOption;\n const rangeValue = filterValues[rangeOption];\n\n const { data: { getEntitySchema = {} } = {}, loading } = useGetSingleEntitySchema(\n entity,\n !hasMultipleOptions\n );\n\n if (loading || !rangeOption || !rangeValue) return '';\n\n const options = getSelectOptions(getEntitySchema, propsToDisplay);\n const { min, max } = rangeValue;\n const shouldShowRange = rangeOption && min !== max;\n\n const handleChange = debounce((option, value) => {\n updateFilterValues({ [option]: { ...value, selectedOption: rangeOption } }, true);\n }, 1200);\n\n return (\n <>\n {hasMultipleOptions && (\n <>\n <label>{label}</label>\n <Select\n value={rangeOption}\n id={rangeOption}\n options={options}\n required\n onChange={({ value }) => {\n const updatedOptions = {};\n propsToDisplay.forEach(prop => {\n const { min: eMin, max: eMax } = filterValues[prop];\n const initValue = getRangeValue(null, rangeInterval, eMin, eMax);\n updatedOptions[prop] = { ...initValue, selectedOption: value };\n });\n\n updateFilterValues(updatedOptions, false);\n }}\n />\n </>\n )}\n {shouldShowRange && (\n <RangeFilter\n key={rangeOption}\n name={rangeOption}\n label={hasMultipleOptions ? '' : label}\n value={rangeValue}\n id={rangeOption}\n onChange={({ value }) => {\n handleChange(rangeOption, value);\n }}\n />\n )}\n </>\n );\n};\n\nRange.propTypes = {\n propsToDisplay: PropTypes.array.isRequired,\n entity: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n rangeInterval: PropTypes.number,\n label: PropTypes.string\n};\n\nRange.defaultProps = {\n rangeInterval: 1,\n label: ''\n};\n\nexport default withTitle(Range);\n"],"file":"Range.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/components/Range.js"],"names":["React","PropTypes","debounce","RangeFilter","useRouter","Select","parseUrl","useGetSingleEntitySchema","withTitle","getSelectOptions","getIntersectedProp","getRangeValue","decodeValue","Range","rangeInterval","label","entity","propsToDisplay","updateFilterValues","filterValues","shouldSearch","router","debounceAmount","query","asPath","hasMultipleOptions","length","initialRangeOption","rangeOption","selectedOption","rangeValue","data","getEntitySchema","loading","options","min","max","shouldShowRange","handleChange","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","propTypes","array","isRequired","string","object","func","bool","number","defaultProps"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,OAAOC,WAAP,MAAwB,2BAAxB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,OAAOC,MAAP,MAAmB,qBAAnB;AACA,SAASC,QAAT,QAAyB,cAAzB;AACA,SAASC,wBAAT,QAAyC,gBAAzC;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,gBAAT,EAA2BC,kBAA3B,EAA+CC,aAA/C,QAAoE,YAApE;AACA,SAASC,WAAT,QAA4B,0BAA5B;;AAEA,MAAMC,KAAK,GAAG,CAAC;AACbC,EAAAA,aADa;AAEbC,EAAAA,KAFa;AAGbC,EAAAA,MAHa;AAIbC,EAAAA,cAJa;AAKbC,EAAAA,kBALa;AAMbC,EAAAA,YANa;AAObC,EAAAA;AAPa,CAAD,KAQR;AACJ,QAAMC,MAAM,GAAGjB,SAAS,EAAxB;AACA,QAAMkB,cAAc,GAAGF,YAAY,GAAG,IAAH,GAAU,GAA7C;AACA,QAAM;AAAEG,IAAAA;AAAF,MAAYjB,QAAQ,CAACM,WAAW,CAACS,MAAM,CAACG,MAAR,CAAZ,CAA1B;AACA,QAAMC,kBAAkB,GAAGR,cAAc,CAACS,MAAf,GAAwB,CAAnD;AACA,QAAMC,kBAAkB,GAAGjB,kBAAkB,CAACa,KAAD,EAAQN,cAAR,CAAlB,IAA6CA,cAAc,CAAC,CAAD,CAAtF;AACA,QAAMW,WAAW,GACdT,YAAY,CAACQ,kBAAD,CAAZ,IAAoCR,YAAY,CAACQ,kBAAD,CAAZ,CAAiCE,cAAtE,IACAF,kBAFF;AAGA,QAAMG,UAAU,GAAGX,YAAY,CAACS,WAAD,CAA/B;AAEA,QAAM;AAAEG,IAAAA,IAAI,EAAE;AAAEC,MAAAA,eAAe,GAAG;AAApB,QAA2B,EAAnC;AAAuCC,IAAAA;AAAvC,MAAmD1B,wBAAwB,CAC/ES,MAD+E,EAE/E,CAACS,kBAF8E,CAAjF;AAKA,MAAIQ,OAAO,IAAI,CAACL,WAAZ,IAA2B,CAACE,UAAhC,EAA4C,OAAO,EAAP;AAE5C,QAAMI,OAAO,GAAGzB,gBAAgB,CAACuB,eAAD,EAAkBf,cAAlB,CAAhC;AACA,QAAM;AAAEkB,IAAAA,GAAF;AAAOC,IAAAA;AAAP,MAAeN,UAArB;AACA,QAAMO,eAAe,GAAGT,WAAW,IAAIO,GAAG,KAAKC,GAA/C;AAEA,QAAME,YAAY,GAAGpC,QAAQ,CAAC,CAACqC,MAAD,EAASC,KAAT,KAAmB;AAC/CtB,IAAAA,kBAAkB,CAAC;AAAE,OAACqB,MAAD,mCAAeC,KAAf;AAAsBX,QAAAA,cAAc,EAAED;AAAtC;AAAF,KAAD,EAA0DR,YAA1D,CAAlB;AACD,GAF4B,EAE1BE,cAF0B,CAA7B;AAIA,sBACE,0CACGG,kBAAkB,iBACjB,uDACE,mCAAQV,KAAR,CADF,eAEE,oBAAC,MAAD;AACE,IAAA,KAAK,EAAEa,WADT;AAEE,IAAA,EAAE,EAAEA,WAFN;AAGE,IAAA,OAAO,EAAEM,OAHX;AAIE,IAAA,QAAQ,MAJV;AAKE,IAAA,QAAQ,EAAE,CAAC;AAAEM,MAAAA;AAAF,KAAD,KAAe;AACvB,YAAMC,cAAc,GAAG,EAAvB;AACAxB,MAAAA,cAAc,CAACyB,OAAf,CAAuBC,IAAI,IAAI;AAC7B,cAAM;AAAER,UAAAA,GAAG,EAAES,IAAP;AAAaR,UAAAA,GAAG,EAAES;AAAlB,YAA2B1B,YAAY,CAACwB,IAAD,CAA7C;AACA,cAAMG,SAAS,GAAGnC,aAAa,CAAC,IAAD,EAAOG,aAAP,EAAsB8B,IAAtB,EAA4BC,IAA5B,CAA/B;AACAJ,QAAAA,cAAc,CAACE,IAAD,CAAd,mCAA4BG,SAA5B;AAAuCjB,UAAAA,cAAc,EAAEW;AAAvD;AACD,OAJD;AAMAtB,MAAAA,kBAAkB,CAACuB,cAAD,EAAiB,KAAjB,CAAlB;AACD;AAdH,IAFF,CAFJ,EAsBGJ,eAAe,iBACd,oBAAC,WAAD;AACE,IAAA,GAAG,EAAET,WADP;AAEE,IAAA,IAAI,EAAEA,WAFR;AAGE,IAAA,KAAK,EAAEH,kBAAkB,GAAG,EAAH,GAAQV,KAHnC;AAIE,IAAA,KAAK,EAAEe,UAJT;AAKE,IAAA,EAAE,EAAEF,WALN;AAME,IAAA,QAAQ,EAAE,CAAC;AAAEY,MAAAA;AAAF,KAAD,KAAe;AACvBF,MAAAA,YAAY,CAACV,WAAD,EAAcY,KAAd,CAAZ;AACD;AARH,IAvBJ,CADF;AAqCD,CAvED;;AAyEA3B,KAAK,CAACkC,SAAN,GAAkB;AAChB9B,EAAAA,cAAc,EAAEhB,SAAS,CAAC+C,KAAV,CAAgBC,UADhB;AAEhBjC,EAAAA,MAAM,EAAEf,SAAS,CAACiD,MAAV,CAAiBD,UAFT;AAGhB9B,EAAAA,YAAY,EAAElB,SAAS,CAACkD,MAAV,CAAiBF,UAHf;AAIhB/B,EAAAA,kBAAkB,EAAEjB,SAAS,CAACmD,IAAV,CAAeH,UAJnB;AAKhB7B,EAAAA,YAAY,EAAEnB,SAAS,CAACoD,IALR;AAMhBvC,EAAAA,aAAa,EAAEb,SAAS,CAACqD,MANT;AAOhBvC,EAAAA,KAAK,EAAEd,SAAS,CAACiD;AAPD,CAAlB;AAUArC,KAAK,CAAC0C,YAAN,GAAqB;AACnBnC,EAAAA,YAAY,EAAE,KADK;AAEnBN,EAAAA,aAAa,EAAE,CAFI;AAGnBC,EAAAA,KAAK,EAAE;AAHY,CAArB;AAMA,eAAeP,SAAS,CAACK,KAAD,CAAxB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport RangeFilter from '@blaze-react/range-filter';\nimport { useRouter } from 'next/router';\nimport Select from '@blaze-react/select';\nimport { parseUrl } from 'query-string';\nimport { useGetSingleEntitySchema } from '../../../hooks';\nimport { withTitle } from '../../../HOC';\nimport { getSelectOptions, getIntersectedProp, getRangeValue } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n updateFilterValues,\n filterValues,\n shouldSearch\n}) => {\n const router = useRouter();\n const debounceAmount = shouldSearch ? 1200 : 100;\n const { query } = parseUrl(decodeValue(router.asPath));\n const hasMultipleOptions = propsToDisplay.length > 1;\n const initialRangeOption = getIntersectedProp(query, propsToDisplay) || propsToDisplay[0];\n const rangeOption =\n (filterValues[initialRangeOption] && filterValues[initialRangeOption].selectedOption) ||\n initialRangeOption;\n const rangeValue = filterValues[rangeOption];\n\n const { data: { getEntitySchema = {} } = {}, loading } = useGetSingleEntitySchema(\n entity,\n !hasMultipleOptions\n );\n\n if (loading || !rangeOption || !rangeValue) return '';\n\n const options = getSelectOptions(getEntitySchema, propsToDisplay);\n const { min, max } = rangeValue;\n const shouldShowRange = rangeOption && min !== max;\n\n const handleChange = debounce((option, value) => {\n updateFilterValues({ [option]: { ...value, selectedOption: rangeOption } }, shouldSearch);\n }, debounceAmount);\n\n return (\n <>\n {hasMultipleOptions && (\n <>\n <label>{label}</label>\n <Select\n value={rangeOption}\n id={rangeOption}\n options={options}\n required\n onChange={({ value }) => {\n const updatedOptions = {};\n propsToDisplay.forEach(prop => {\n const { min: eMin, max: eMax } = filterValues[prop];\n const initValue = getRangeValue(null, rangeInterval, eMin, eMax);\n updatedOptions[prop] = { ...initValue, selectedOption: value };\n });\n\n updateFilterValues(updatedOptions, false);\n }}\n />\n </>\n )}\n {shouldShowRange && (\n <RangeFilter\n key={rangeOption}\n name={rangeOption}\n label={hasMultipleOptions ? '' : label}\n value={rangeValue}\n id={rangeOption}\n onChange={({ value }) => {\n handleChange(rangeOption, value);\n }}\n />\n )}\n </>\n );\n};\n\nRange.propTypes = {\n propsToDisplay: PropTypes.array.isRequired,\n entity: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n shouldSearch: PropTypes.bool,\n rangeInterval: PropTypes.number,\n label: PropTypes.string\n};\n\nRange.defaultProps = {\n shouldSearch: false,\n rangeInterval: 1,\n label: ''\n};\n\nexport default withTitle(Range);\n"],"file":"Range.js"}
@@ -9,7 +9,8 @@ const SelectFilter = ({
9
9
  label,
10
10
  prop,
11
11
  updateFilterValues,
12
- filterValues
12
+ filterValues,
13
+ shouldSearch
13
14
  }) => {
14
15
  const filterValue = filterValues[prop] || '';
15
16
  const options = data[prop].buckets.map(bucket => bucket.key).filter(Boolean).sort();
@@ -24,7 +25,7 @@ const SelectFilter = ({
24
25
  }) => {
25
26
  updateFilterValues({
26
27
  [prop]: value
27
- }, true);
28
+ }, shouldSearch);
28
29
  }
29
30
  });
30
31
  };
@@ -34,9 +35,11 @@ SelectFilter.propTypes = {
34
35
  prop: PropTypes.string.isRequired,
35
36
  filterValues: PropTypes.object.isRequired,
36
37
  updateFilterValues: PropTypes.func.isRequired,
38
+ shouldSearch: PropTypes.bool,
37
39
  label: PropTypes.string
38
40
  };
39
41
  SelectFilter.defaultProps = {
42
+ shouldSearch: false,
40
43
  label: ''
41
44
  };
42
45
  export default withTitle(SelectFilter);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/components/Select.js"],"names":["React","PropTypes","Select","withTitle","DEFAULT_OPTION","SelectFilter","data","label","prop","updateFilterValues","filterValues","filterValue","options","buckets","map","bucket","key","filter","Boolean","sort","optionsJoined","value","propTypes","object","isRequired","string","func","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,MAAP,MAAmB,qBAAnB;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,cAAT,QAA+B,cAA/B;;AAEA,MAAMC,YAAY,GAAG,CAAC;AAAEC,EAAAA,IAAF;AAAQC,EAAAA,KAAR;AAAeC,EAAAA,IAAf;AAAqBC,EAAAA,kBAArB;AAAyCC,EAAAA;AAAzC,CAAD,KAA6D;AAChF,QAAMC,WAAW,GAAGD,YAAY,CAACF,IAAD,CAAZ,IAAsB,EAA1C;AAEA,QAAMI,OAAO,GAAGN,IAAI,CAACE,IAAD,CAAJ,CAAWK,OAAX,CACbC,GADa,CACTC,MAAM,IAAIA,MAAM,CAACC,GADR,EAEbC,MAFa,CAENC,OAFM,EAGbC,IAHa,EAAhB;AAKA,QAAMC,aAAa,GAAG,CAAChB,cAAD,EAAiB,GAAGQ,OAApB,CAAtB;AAEA,sBACE,oBAAC,MAAD;AACE,IAAA,KAAK,EAAG,GAAEL,KAAK,IAAIC,IAAK,EAD1B;AAEE,IAAA,KAAK,EAAEG,WAFT;AAGE,IAAA,EAAE,EAAEH,IAHN;AAIE,IAAA,OAAO,EAAEY,aAJX;AAKE,IAAA,QAAQ,EAAE,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAe;AACvBZ,MAAAA,kBAAkB,CAAC;AAAE,SAACD,IAAD,GAAQa;AAAV,OAAD,EAAoB,IAApB,CAAlB;AACD;AAPH,IADF;AAWD,CArBD;;AAuBAhB,YAAY,CAACiB,SAAb,GAAyB;AACvBhB,EAAAA,IAAI,EAAEL,SAAS,CAACsB,MAAV,CAAiBC,UADA;AAEvBhB,EAAAA,IAAI,EAAEP,SAAS,CAACwB,MAAV,CAAiBD,UAFA;AAGvBd,EAAAA,YAAY,EAAET,SAAS,CAACsB,MAAV,CAAiBC,UAHR;AAIvBf,EAAAA,kBAAkB,EAAER,SAAS,CAACyB,IAAV,CAAeF,UAJZ;AAKvBjB,EAAAA,KAAK,EAAEN,SAAS,CAACwB;AALM,CAAzB;AAQApB,YAAY,CAACsB,YAAb,GAA4B;AAC1BpB,EAAAA,KAAK,EAAE;AADmB,CAA5B;AAIA,eAAeJ,SAAS,CAACE,YAAD,CAAxB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Select from '@blaze-react/select';\nimport { withTitle } from '../../../HOC';\nimport { DEFAULT_OPTION } from '../constants';\n\nconst SelectFilter = ({ data, label, prop, updateFilterValues, filterValues }) => {\n const filterValue = filterValues[prop] || '';\n\n const options = data[prop].buckets\n .map(bucket => bucket.key)\n .filter(Boolean)\n .sort();\n\n const optionsJoined = [DEFAULT_OPTION, ...options];\n\n return (\n <Select\n label={`${label || prop}`}\n value={filterValue}\n id={prop}\n options={optionsJoined}\n onChange={({ value }) => {\n updateFilterValues({ [prop]: value }, true);\n }}\n />\n );\n};\n\nSelectFilter.propTypes = {\n data: PropTypes.object.isRequired,\n prop: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n label: PropTypes.string\n};\n\nSelectFilter.defaultProps = {\n label: ''\n};\n\nexport default withTitle(SelectFilter);\n"],"file":"Select.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/components/Select.js"],"names":["React","PropTypes","Select","withTitle","DEFAULT_OPTION","SelectFilter","data","label","prop","updateFilterValues","filterValues","shouldSearch","filterValue","options","buckets","map","bucket","key","filter","Boolean","sort","optionsJoined","value","propTypes","object","isRequired","string","func","bool","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,MAAP,MAAmB,qBAAnB;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,cAAT,QAA+B,cAA/B;;AAEA,MAAMC,YAAY,GAAG,CAAC;AAAEC,EAAAA,IAAF;AAAQC,EAAAA,KAAR;AAAeC,EAAAA,IAAf;AAAqBC,EAAAA,kBAArB;AAAyCC,EAAAA,YAAzC;AAAuDC,EAAAA;AAAvD,CAAD,KAA2E;AAC9F,QAAMC,WAAW,GAAGF,YAAY,CAACF,IAAD,CAAZ,IAAsB,EAA1C;AAEA,QAAMK,OAAO,GAAGP,IAAI,CAACE,IAAD,CAAJ,CAAWM,OAAX,CACbC,GADa,CACTC,MAAM,IAAIA,MAAM,CAACC,GADR,EAEbC,MAFa,CAENC,OAFM,EAGbC,IAHa,EAAhB;AAKA,QAAMC,aAAa,GAAG,CAACjB,cAAD,EAAiB,GAAGS,OAApB,CAAtB;AAEA,sBACE,oBAAC,MAAD;AACE,IAAA,KAAK,EAAG,GAAEN,KAAK,IAAIC,IAAK,EAD1B;AAEE,IAAA,KAAK,EAAEI,WAFT;AAGE,IAAA,EAAE,EAAEJ,IAHN;AAIE,IAAA,OAAO,EAAEa,aAJX;AAKE,IAAA,QAAQ,EAAE,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAe;AACvBb,MAAAA,kBAAkB,CAAC;AAAE,SAACD,IAAD,GAAQc;AAAV,OAAD,EAAoBX,YAApB,CAAlB;AACD;AAPH,IADF;AAWD,CArBD;;AAuBAN,YAAY,CAACkB,SAAb,GAAyB;AACvBjB,EAAAA,IAAI,EAAEL,SAAS,CAACuB,MAAV,CAAiBC,UADA;AAEvBjB,EAAAA,IAAI,EAAEP,SAAS,CAACyB,MAAV,CAAiBD,UAFA;AAGvBf,EAAAA,YAAY,EAAET,SAAS,CAACuB,MAAV,CAAiBC,UAHR;AAIvBhB,EAAAA,kBAAkB,EAAER,SAAS,CAAC0B,IAAV,CAAeF,UAJZ;AAKvBd,EAAAA,YAAY,EAAEV,SAAS,CAAC2B,IALD;AAMvBrB,EAAAA,KAAK,EAAEN,SAAS,CAACyB;AANM,CAAzB;AASArB,YAAY,CAACwB,YAAb,GAA4B;AAC1BlB,EAAAA,YAAY,EAAE,KADY;AAE1BJ,EAAAA,KAAK,EAAE;AAFmB,CAA5B;AAKA,eAAeJ,SAAS,CAACE,YAAD,CAAxB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Select from '@blaze-react/select';\nimport { withTitle } from '../../../HOC';\nimport { DEFAULT_OPTION } from '../constants';\n\nconst SelectFilter = ({ data, label, prop, updateFilterValues, filterValues, shouldSearch }) => {\n const filterValue = filterValues[prop] || '';\n\n const options = data[prop].buckets\n .map(bucket => bucket.key)\n .filter(Boolean)\n .sort();\n\n const optionsJoined = [DEFAULT_OPTION, ...options];\n\n return (\n <Select\n label={`${label || prop}`}\n value={filterValue}\n id={prop}\n options={optionsJoined}\n onChange={({ value }) => {\n updateFilterValues({ [prop]: value }, shouldSearch);\n }}\n />\n );\n};\n\nSelectFilter.propTypes = {\n data: PropTypes.object.isRequired,\n prop: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n shouldSearch: PropTypes.bool,\n label: PropTypes.string\n};\n\nSelectFilter.defaultProps = {\n shouldSearch: false,\n label: ''\n};\n\nexport default withTitle(SelectFilter);\n"],"file":"Select.js"}
@@ -23,5 +23,16 @@ const RESET = 'Reset all filters';
23
23
  const SEARCH = 'Search';
24
24
  const REFINE = `Refine Search`;
25
25
  const MOBILE_REFINEMENT_TITLE = 'Search refinement';
26
- export { CHECKBOX, SELECT, TEXT_SEARCH, SEARCH_TERM, SIZE, KEYWORD, RAW_RESULTS, DEFAULT_OPTION, DEFAULT_VALUES, RANGE, CHECKBOX_SELECT, LIMIT_MIN, LIMIT_MAX, MORE, LESS, DOWN, UP, UPDATED_RANGES, MIN_VALUE, MAX_VALUE, TABLET_WIDTH, RESET, SEARCH, REFINE, MOBILE_REFINEMENT_TITLE };
26
+ const MORE_FILTERS_CLASSES_BASE = 'filter__more-filters';
27
+ const MORE_FILTERS_CLASSES = {
28
+ MOBILE_WRAPPER: `${MORE_FILTERS_CLASSES_BASE}-mobile-wrapper`,
29
+ MOBILE_CONTENT: `${MORE_FILTERS_CLASSES_BASE}-mobile-content`,
30
+ MOBILE_TOGGLER: `${MORE_FILTERS_CLASSES_BASE}-mobile-toggler`,
31
+ MOBILE_BUTTONS: `${MORE_FILTERS_CLASSES_BASE}-mobile-buttons`,
32
+ DESKTOP_WRAPPER: `${MORE_FILTERS_CLASSES_BASE}-desktop-wrapper`,
33
+ DESKTOP_CONTENT: `${MORE_FILTERS_CLASSES_BASE}-desktop-content`,
34
+ DESKTOP_TOGGLER: `${MORE_FILTERS_CLASSES_BASE}-desktop-toggler`,
35
+ DESKTOP_BUTTONS: `${MORE_FILTERS_CLASSES_BASE}-desktop-buttons`
36
+ };
37
+ export { CHECKBOX, SELECT, TEXT_SEARCH, SEARCH_TERM, SIZE, KEYWORD, RAW_RESULTS, DEFAULT_OPTION, DEFAULT_VALUES, RANGE, CHECKBOX_SELECT, LIMIT_MIN, LIMIT_MAX, MORE, LESS, DOWN, UP, UPDATED_RANGES, MIN_VALUE, MAX_VALUE, TABLET_WIDTH, RESET, SEARCH, REFINE, MOBILE_REFINEMENT_TITLE, MORE_FILTERS_CLASSES };
27
38
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/SearchFilter/constants.js"],"names":["CHECKBOX","SELECT","TEXT_SEARCH","SEARCH_TERM","SIZE","KEYWORD","RAW_RESULTS","DEFAULT_OPTION","DEFAULT_VALUES","RANGE","CHECKBOX_SELECT","LIMIT_MIN","LIMIT_MAX","MORE","LESS","DOWN","UP","UPDATED_RANGES","MIN_VALUE","MAX_VALUE","TABLET_WIDTH","RESET","SEARCH","REFINE","MOBILE_REFINEMENT_TITLE"],"mappings":"AAAA,MAAMA,QAAQ,GAAG,UAAjB;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,WAAW,GAAG,aAApB;AACA,MAAMC,WAAW,GAAG,aAApB;AACA,MAAMC,IAAI,GAAG,EAAb;AACA,MAAMC,OAAO,GAAG,SAAhB;AACA,MAAMC,WAAW,GAAG,YAApB;AACA,MAAMC,cAAc,GAAG,KAAvB;AACA,MAAMC,cAAc,GAAG,CAAC,KAAD,EAAQ,kBAAR,CAAvB;AACA,MAAMC,KAAK,GAAG,OAAd;AACA,MAAMC,eAAe,GAAG,CAAC,UAAD,EAAa,QAAb,CAAxB;AACA,MAAMC,SAAS,GAAG,CAAlB;AACA,MAAMC,SAAS,GAAG,IAAlB;AACA,MAAMC,IAAI,GAAG,MAAb;AACA,MAAMC,IAAI,GAAG,MAAb;AACA,MAAMC,IAAI,GAAG,MAAb;AACA,MAAMC,EAAE,GAAG,IAAX;AACA,MAAMC,cAAc,GAAG,gBAAvB;AACA,MAAMC,SAAS,GAAG,WAAlB;AACA,MAAMC,SAAS,GAAG,WAAlB;AACA,MAAMC,YAAY,GAAG,GAArB;AACA,MAAMC,KAAK,GAAG,mBAAd;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,MAAM,GAAI,eAAhB;AACA,MAAMC,uBAAuB,GAAG,mBAAhC;AAEA,SACExB,QADF,EAEEC,MAFF,EAGEC,WAHF,EAIEC,WAJF,EAKEC,IALF,EAMEC,OANF,EAOEC,WAPF,EAQEC,cARF,EASEC,cATF,EAUEC,KAVF,EAWEC,eAXF,EAYEC,SAZF,EAaEC,SAbF,EAcEC,IAdF,EAeEC,IAfF,EAgBEC,IAhBF,EAiBEC,EAjBF,EAkBEC,cAlBF,EAmBEC,SAnBF,EAoBEC,SApBF,EAqBEC,YArBF,EAsBEC,KAtBF,EAuBEC,MAvBF,EAwBEC,MAxBF,EAyBEC,uBAzBF","sourcesContent":["const CHECKBOX = 'checkbox';\nconst SELECT = 'select';\nconst TEXT_SEARCH = 'text-search';\nconst SEARCH_TERM = 'search_term';\nconst SIZE = 50;\nconst KEYWORD = 'keyword';\nconst RAW_RESULTS = 'rawResults';\nconst DEFAULT_OPTION = 'Any';\nconst DEFAULT_VALUES = ['Any', 'Please Choose...'];\nconst RANGE = 'range';\nconst CHECKBOX_SELECT = ['checkbox', 'select'];\nconst LIMIT_MIN = 5;\nconst LIMIT_MAX = 1000;\nconst MORE = 'more';\nconst LESS = 'less';\nconst DOWN = 'down';\nconst UP = 'up';\nconst UPDATED_RANGES = 'updated_ranges';\nconst MIN_VALUE = 'min-value';\nconst MAX_VALUE = 'max-value';\nconst TABLET_WIDTH = 768;\nconst RESET = 'Reset all filters';\nconst SEARCH = 'Search';\nconst REFINE = `Refine Search`;\nconst MOBILE_REFINEMENT_TITLE = 'Search refinement';\n\nexport {\n CHECKBOX,\n SELECT,\n TEXT_SEARCH,\n SEARCH_TERM,\n SIZE,\n KEYWORD,\n RAW_RESULTS,\n DEFAULT_OPTION,\n DEFAULT_VALUES,\n RANGE,\n CHECKBOX_SELECT,\n LIMIT_MIN,\n LIMIT_MAX,\n MORE,\n LESS,\n DOWN,\n UP,\n UPDATED_RANGES,\n MIN_VALUE,\n MAX_VALUE,\n TABLET_WIDTH,\n RESET,\n SEARCH,\n REFINE,\n MOBILE_REFINEMENT_TITLE\n};\n"],"file":"constants.js"}
1
+ {"version":3,"sources":["../../../src/components/SearchFilter/constants.js"],"names":["CHECKBOX","SELECT","TEXT_SEARCH","SEARCH_TERM","SIZE","KEYWORD","RAW_RESULTS","DEFAULT_OPTION","DEFAULT_VALUES","RANGE","CHECKBOX_SELECT","LIMIT_MIN","LIMIT_MAX","MORE","LESS","DOWN","UP","UPDATED_RANGES","MIN_VALUE","MAX_VALUE","TABLET_WIDTH","RESET","SEARCH","REFINE","MOBILE_REFINEMENT_TITLE","MORE_FILTERS_CLASSES_BASE","MORE_FILTERS_CLASSES","MOBILE_WRAPPER","MOBILE_CONTENT","MOBILE_TOGGLER","MOBILE_BUTTONS","DESKTOP_WRAPPER","DESKTOP_CONTENT","DESKTOP_TOGGLER","DESKTOP_BUTTONS"],"mappings":"AAAA,MAAMA,QAAQ,GAAG,UAAjB;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,WAAW,GAAG,aAApB;AACA,MAAMC,WAAW,GAAG,aAApB;AACA,MAAMC,IAAI,GAAG,EAAb;AACA,MAAMC,OAAO,GAAG,SAAhB;AACA,MAAMC,WAAW,GAAG,YAApB;AACA,MAAMC,cAAc,GAAG,KAAvB;AACA,MAAMC,cAAc,GAAG,CAAC,KAAD,EAAQ,kBAAR,CAAvB;AACA,MAAMC,KAAK,GAAG,OAAd;AACA,MAAMC,eAAe,GAAG,CAAC,UAAD,EAAa,QAAb,CAAxB;AACA,MAAMC,SAAS,GAAG,CAAlB;AACA,MAAMC,SAAS,GAAG,IAAlB;AACA,MAAMC,IAAI,GAAG,MAAb;AACA,MAAMC,IAAI,GAAG,MAAb;AACA,MAAMC,IAAI,GAAG,MAAb;AACA,MAAMC,EAAE,GAAG,IAAX;AACA,MAAMC,cAAc,GAAG,gBAAvB;AACA,MAAMC,SAAS,GAAG,WAAlB;AACA,MAAMC,SAAS,GAAG,WAAlB;AACA,MAAMC,YAAY,GAAG,GAArB;AACA,MAAMC,KAAK,GAAG,mBAAd;AACA,MAAMC,MAAM,GAAG,QAAf;AACA,MAAMC,MAAM,GAAI,eAAhB;AACA,MAAMC,uBAAuB,GAAG,mBAAhC;AAEA,MAAMC,yBAAyB,GAAG,sBAAlC;AACA,MAAMC,oBAAoB,GAAG;AAC3BC,EAAAA,cAAc,EAAG,GAAEF,yBAA0B,iBADlB;AAE3BG,EAAAA,cAAc,EAAG,GAAEH,yBAA0B,iBAFlB;AAG3BI,EAAAA,cAAc,EAAG,GAAEJ,yBAA0B,iBAHlB;AAI3BK,EAAAA,cAAc,EAAG,GAAEL,yBAA0B,iBAJlB;AAK3BM,EAAAA,eAAe,EAAG,GAAEN,yBAA0B,kBALnB;AAM3BO,EAAAA,eAAe,EAAG,GAAEP,yBAA0B,kBANnB;AAO3BQ,EAAAA,eAAe,EAAG,GAAER,yBAA0B,kBAPnB;AAQ3BS,EAAAA,eAAe,EAAG,GAAET,yBAA0B;AARnB,CAA7B;AAWA,SACEzB,QADF,EAEEC,MAFF,EAGEC,WAHF,EAIEC,WAJF,EAKEC,IALF,EAMEC,OANF,EAOEC,WAPF,EAQEC,cARF,EASEC,cATF,EAUEC,KAVF,EAWEC,eAXF,EAYEC,SAZF,EAaEC,SAbF,EAcEC,IAdF,EAeEC,IAfF,EAgBEC,IAhBF,EAiBEC,EAjBF,EAkBEC,cAlBF,EAmBEC,SAnBF,EAoBEC,SApBF,EAqBEC,YArBF,EAsBEC,KAtBF,EAuBEC,MAvBF,EAwBEC,MAxBF,EAyBEC,uBAzBF,EA0BEE,oBA1BF","sourcesContent":["const CHECKBOX = 'checkbox';\nconst SELECT = 'select';\nconst TEXT_SEARCH = 'text-search';\nconst SEARCH_TERM = 'search_term';\nconst SIZE = 50;\nconst KEYWORD = 'keyword';\nconst RAW_RESULTS = 'rawResults';\nconst DEFAULT_OPTION = 'Any';\nconst DEFAULT_VALUES = ['Any', 'Please Choose...'];\nconst RANGE = 'range';\nconst CHECKBOX_SELECT = ['checkbox', 'select'];\nconst LIMIT_MIN = 5;\nconst LIMIT_MAX = 1000;\nconst MORE = 'more';\nconst LESS = 'less';\nconst DOWN = 'down';\nconst UP = 'up';\nconst UPDATED_RANGES = 'updated_ranges';\nconst MIN_VALUE = 'min-value';\nconst MAX_VALUE = 'max-value';\nconst TABLET_WIDTH = 768;\nconst RESET = 'Reset all filters';\nconst SEARCH = 'Search';\nconst REFINE = `Refine Search`;\nconst MOBILE_REFINEMENT_TITLE = 'Search refinement';\n\nconst MORE_FILTERS_CLASSES_BASE = 'filter__more-filters';\nconst MORE_FILTERS_CLASSES = {\n MOBILE_WRAPPER: `${MORE_FILTERS_CLASSES_BASE}-mobile-wrapper`,\n MOBILE_CONTENT: `${MORE_FILTERS_CLASSES_BASE}-mobile-content`,\n MOBILE_TOGGLER: `${MORE_FILTERS_CLASSES_BASE}-mobile-toggler`,\n MOBILE_BUTTONS: `${MORE_FILTERS_CLASSES_BASE}-mobile-buttons`,\n DESKTOP_WRAPPER: `${MORE_FILTERS_CLASSES_BASE}-desktop-wrapper`,\n DESKTOP_CONTENT: `${MORE_FILTERS_CLASSES_BASE}-desktop-content`,\n DESKTOP_TOGGLER: `${MORE_FILTERS_CLASSES_BASE}-desktop-toggler`,\n DESKTOP_BUTTONS: `${MORE_FILTERS_CLASSES_BASE}-desktop-buttons`\n};\n\nexport {\n CHECKBOX,\n SELECT,\n TEXT_SEARCH,\n SEARCH_TERM,\n SIZE,\n KEYWORD,\n RAW_RESULTS,\n DEFAULT_OPTION,\n DEFAULT_VALUES,\n RANGE,\n CHECKBOX_SELECT,\n LIMIT_MIN,\n LIMIT_MAX,\n MORE,\n LESS,\n DOWN,\n UP,\n UPDATED_RANGES,\n MIN_VALUE,\n MAX_VALUE,\n TABLET_WIDTH,\n RESET,\n SEARCH,\n REFINE,\n MOBILE_REFINEMENT_TITLE,\n MORE_FILTERS_CLASSES\n};\n"],"file":"constants.js"}
@@ -10,12 +10,13 @@ const buildQuery = (filterValues, filters) => {
10
10
  type
11
11
  }) => {
12
12
  if (type === TEXT_SEARCH) return;
13
- propsToDisplay.map(prop => {
13
+ propsToDisplay.forEach(prop => {
14
14
  const value = filterValues[prop];
15
15
  const parsedValue = parseFilterValue(prop, type, value);
16
- if (!parsedValue) return null;
17
- if (parsedValue) newQuery.push(parsedValue);
18
- return parsedValue;
16
+
17
+ if (parsedValue && !newQuery.includes(parsedValue)) {
18
+ newQuery.push(parsedValue);
19
+ }
19
20
  });
20
21
  });
21
22
  return newQuery.join('&');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/build-query.js"],"names":["SEARCH_TERM","TEXT_SEARCH","parseFilterValue","buildQuery","filterValues","filters","newQuery","searchValue","push","forEach","propsToDisplay","type","map","prop","value","parsedValue","join"],"mappings":"AAAA,SAASA,WAAT,EAAsBC,WAAtB,QAAyC,cAAzC;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;;AAEA,MAAMC,UAAU,GAAG,CAACC,YAAD,EAAeC,OAAf,KAA2B;AAC5C,QAAMC,QAAQ,GAAG,EAAjB;AACA,QAAMC,WAAW,GAAGH,YAAY,CAACJ,WAAD,CAAhC;AACA,MAAIO,WAAJ,EAAiBD,QAAQ,CAACE,IAAT,CAAe,GAAER,WAAY,IAAGO,WAAY,EAA5C;AAEjBF,EAAAA,OAAO,CAACI,OAAR,CAAgB,CAAC;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,GAAD,KAA8B;AAC5C,QAAIA,IAAI,KAAKV,WAAb,EAA0B;AAC1BS,IAAAA,cAAc,CAACE,GAAf,CAAmBC,IAAI,IAAI;AACzB,YAAMC,KAAK,GAAGV,YAAY,CAACS,IAAD,CAA1B;AACA,YAAME,WAAW,GAAGb,gBAAgB,CAACW,IAAD,EAAOF,IAAP,EAAaG,KAAb,CAApC;AACA,UAAI,CAACC,WAAL,EAAkB,OAAO,IAAP;AAClB,UAAIA,WAAJ,EAAiBT,QAAQ,CAACE,IAAT,CAAcO,WAAd;AACjB,aAAOA,WAAP;AACD,KAND;AAOD,GATD;AAWA,SAAOT,QAAQ,CAACU,IAAT,CAAc,GAAd,CAAP;AACD,CAjBD;;AAmBA,eAAeb,UAAf","sourcesContent":["import { SEARCH_TERM, TEXT_SEARCH } from '../constants';\nimport parseFilterValue from './parse-filter-value';\n\nconst buildQuery = (filterValues, filters) => {\n const newQuery = [];\n const searchValue = filterValues[SEARCH_TERM];\n if (searchValue) newQuery.push(`${SEARCH_TERM}=${searchValue}`);\n\n filters.forEach(({ propsToDisplay, type }) => {\n if (type === TEXT_SEARCH) return;\n propsToDisplay.map(prop => {\n const value = filterValues[prop];\n const parsedValue = parseFilterValue(prop, type, value);\n if (!parsedValue) return null;\n if (parsedValue) newQuery.push(parsedValue);\n return parsedValue;\n });\n });\n\n return newQuery.join('&');\n};\n\nexport default buildQuery;\n"],"file":"build-query.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/build-query.js"],"names":["SEARCH_TERM","TEXT_SEARCH","parseFilterValue","buildQuery","filterValues","filters","newQuery","searchValue","push","forEach","propsToDisplay","type","prop","value","parsedValue","includes","join"],"mappings":"AAAA,SAASA,WAAT,EAAsBC,WAAtB,QAAyC,cAAzC;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;;AAEA,MAAMC,UAAU,GAAG,CAACC,YAAD,EAAeC,OAAf,KAA2B;AAC5C,QAAMC,QAAQ,GAAG,EAAjB;AACA,QAAMC,WAAW,GAAGH,YAAY,CAACJ,WAAD,CAAhC;AACA,MAAIO,WAAJ,EAAiBD,QAAQ,CAACE,IAAT,CAAe,GAAER,WAAY,IAAGO,WAAY,EAA5C;AAEjBF,EAAAA,OAAO,CAACI,OAAR,CAAgB,CAAC;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA;AAAlB,GAAD,KAA8B;AAC5C,QAAIA,IAAI,KAAKV,WAAb,EAA0B;AAE1BS,IAAAA,cAAc,CAACD,OAAf,CAAuBG,IAAI,IAAI;AAC7B,YAAMC,KAAK,GAAGT,YAAY,CAACQ,IAAD,CAA1B;AACA,YAAME,WAAW,GAAGZ,gBAAgB,CAACU,IAAD,EAAOD,IAAP,EAAaE,KAAb,CAApC;;AACA,UAAIC,WAAW,IAAI,CAACR,QAAQ,CAACS,QAAT,CAAkBD,WAAlB,CAApB,EAAoD;AAClDR,QAAAA,QAAQ,CAACE,IAAT,CAAcM,WAAd;AACD;AACF,KAND;AAOD,GAVD;AAYA,SAAOR,QAAQ,CAACU,IAAT,CAAc,GAAd,CAAP;AACD,CAlBD;;AAoBA,eAAeb,UAAf","sourcesContent":["import { SEARCH_TERM, TEXT_SEARCH } from '../constants';\nimport parseFilterValue from './parse-filter-value';\n\nconst buildQuery = (filterValues, filters) => {\n const newQuery = [];\n const searchValue = filterValues[SEARCH_TERM];\n if (searchValue) newQuery.push(`${SEARCH_TERM}=${searchValue}`);\n\n filters.forEach(({ propsToDisplay, type }) => {\n if (type === TEXT_SEARCH) return;\n\n propsToDisplay.forEach(prop => {\n const value = filterValues[prop];\n const parsedValue = parseFilterValue(prop, type, value);\n if (parsedValue && !newQuery.includes(parsedValue)) {\n newQuery.push(parsedValue);\n }\n });\n });\n\n return newQuery.join('&');\n};\n\nexport default buildQuery;\n"],"file":"build-query.js"}
@@ -10,7 +10,7 @@ const getRangeValue = (rawQueryProp, rangeInterval, _min, _max) => {
10
10
  }, rangeInterval);
11
11
 
12
12
  if (rawQueryProp) {
13
- const [queryParamMin, queryParamMax] = rawQueryProp.split('-');
13
+ const [queryParamMin, queryParamMax] = Array.isArray(rawQueryProp) ? rawQueryProp[0].split('-') : rawQueryProp.split('-');
14
14
  const updatedMinValue = Number(queryParamMin);
15
15
  const updatedMaxValue = Number(queryParamMax);
16
16
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/get-range-value.js"],"names":["calculateMinMax","getRangeValue","rawQueryProp","rangeInterval","_min","_max","min","max","queryParamMin","queryParamMax","split","updatedMinValue","Number","updatedMaxValue","step","maxValue","minValue"],"mappings":"AAAA,OAAOA,eAAP,MAA4B,qBAA5B;;AAEA,MAAMC,aAAa,GAAG,CAACC,YAAD,EAAeC,aAAf,EAA8BC,IAA9B,EAAoCC,IAApC,KAA6C;AACjE,QAAM;AAAEC,IAAAA,GAAF;AAAOC,IAAAA;AAAP,MAAeP,eAAe,CAAC;AAAEM,IAAAA,GAAG,EAAEF,IAAP;AAAaG,IAAAA,GAAG,EAAEF;AAAlB,GAAD,EAA2BF,aAA3B,CAApC;;AAEA,MAAID,YAAJ,EAAkB;AAChB,UAAM,CAACM,aAAD,EAAgBC,aAAhB,IAAiCP,YAAY,CAACQ,KAAb,CAAmB,GAAnB,CAAvC;AACA,UAAMC,eAAe,GAAGC,MAAM,CAACJ,aAAD,CAA9B;AACA,UAAMK,eAAe,GAAGD,MAAM,CAACH,aAAD,CAA9B;AAEA,WAAO;AACLH,MAAAA,GADK;AAELC,MAAAA,GAFK;AAGLO,MAAAA,IAAI,EAAEX,aAHD;AAILY,MAAAA,QAAQ,EAAEF,eAJL;AAKLG,MAAAA,QAAQ,EAAEL;AALL,KAAP;AAOD;;AAED,SAAO;AACLJ,IAAAA,GADK;AAELD,IAAAA,GAFK;AAGLQ,IAAAA,IAAI,EAAEX,aAHD;AAILY,IAAAA,QAAQ,EAAER,GAJL;AAKLS,IAAAA,QAAQ,EAAEV;AALL,GAAP;AAOD,CAxBD;;AA0BA,eAAeL,aAAf","sourcesContent":["import calculateMinMax from './calculate-min-max';\n\nconst getRangeValue = (rawQueryProp, rangeInterval, _min, _max) => {\n const { min, max } = calculateMinMax({ min: _min, max: _max }, rangeInterval);\n\n if (rawQueryProp) {\n const [queryParamMin, queryParamMax] = rawQueryProp.split('-');\n const updatedMinValue = Number(queryParamMin);\n const updatedMaxValue = Number(queryParamMax);\n\n return {\n min,\n max,\n step: rangeInterval,\n maxValue: updatedMaxValue,\n minValue: updatedMinValue\n };\n }\n\n return {\n max,\n min,\n step: rangeInterval,\n maxValue: max,\n minValue: min\n };\n};\n\nexport default getRangeValue;\n"],"file":"get-range-value.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/get-range-value.js"],"names":["calculateMinMax","getRangeValue","rawQueryProp","rangeInterval","_min","_max","min","max","queryParamMin","queryParamMax","Array","isArray","split","updatedMinValue","Number","updatedMaxValue","step","maxValue","minValue"],"mappings":"AAAA,OAAOA,eAAP,MAA4B,qBAA5B;;AAEA,MAAMC,aAAa,GAAG,CAACC,YAAD,EAAeC,aAAf,EAA8BC,IAA9B,EAAoCC,IAApC,KAA6C;AACjE,QAAM;AAAEC,IAAAA,GAAF;AAAOC,IAAAA;AAAP,MAAeP,eAAe,CAAC;AAAEM,IAAAA,GAAG,EAAEF,IAAP;AAAaG,IAAAA,GAAG,EAAEF;AAAlB,GAAD,EAA2BF,aAA3B,CAApC;;AAEA,MAAID,YAAJ,EAAkB;AAChB,UAAM,CAACM,aAAD,EAAgBC,aAAhB,IAAiCC,KAAK,CAACC,OAAN,CAAcT,YAAd,IACnCA,YAAY,CAAC,CAAD,CAAZ,CAAgBU,KAAhB,CAAsB,GAAtB,CADmC,GAEnCV,YAAY,CAACU,KAAb,CAAmB,GAAnB,CAFJ;AAGA,UAAMC,eAAe,GAAGC,MAAM,CAACN,aAAD,CAA9B;AACA,UAAMO,eAAe,GAAGD,MAAM,CAACL,aAAD,CAA9B;AAEA,WAAO;AACLH,MAAAA,GADK;AAELC,MAAAA,GAFK;AAGLS,MAAAA,IAAI,EAAEb,aAHD;AAILc,MAAAA,QAAQ,EAAEF,eAJL;AAKLG,MAAAA,QAAQ,EAAEL;AALL,KAAP;AAOD;;AAED,SAAO;AACLN,IAAAA,GADK;AAELD,IAAAA,GAFK;AAGLU,IAAAA,IAAI,EAAEb,aAHD;AAILc,IAAAA,QAAQ,EAAEV,GAJL;AAKLW,IAAAA,QAAQ,EAAEZ;AALL,GAAP;AAOD,CA1BD;;AA4BA,eAAeL,aAAf","sourcesContent":["import calculateMinMax from './calculate-min-max';\n\nconst getRangeValue = (rawQueryProp, rangeInterval, _min, _max) => {\n const { min, max } = calculateMinMax({ min: _min, max: _max }, rangeInterval);\n\n if (rawQueryProp) {\n const [queryParamMin, queryParamMax] = Array.isArray(rawQueryProp)\n ? rawQueryProp[0].split('-')\n : rawQueryProp.split('-');\n const updatedMinValue = Number(queryParamMin);\n const updatedMaxValue = Number(queryParamMax);\n\n return {\n min,\n max,\n step: rangeInterval,\n maxValue: updatedMaxValue,\n minValue: updatedMinValue\n };\n }\n\n return {\n max,\n min,\n step: rangeInterval,\n maxValue: max,\n minValue: min\n };\n};\n\nexport default getRangeValue;\n"],"file":"get-range-value.js"}
@@ -0,0 +1,20 @@
1
+ import classnames from 'classnames';
2
+ import { MORE_FILTERS_CLASSES } from '../constants';
3
+
4
+ const getResponsiveFilterClassnames = (moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed) => ({
5
+ moreFiltersMobileWrapperClass: classnames(MORE_FILTERS_CLASSES.MOBILE_WRAPPER, {
6
+ [`${MORE_FILTERS_CLASSES.MOBILE_WRAPPER}--open`]: !moreFiltersMobileCollapsed
7
+ }),
8
+ moreFiltersMobileTogglerClass: classnames(MORE_FILTERS_CLASSES.MOBILE_TOGGLER, {
9
+ [`${MORE_FILTERS_CLASSES.MOBILE_TOGGLER}--open`]: !moreFiltersMobileCollapsed
10
+ }),
11
+ moreFiltersDesktopWrapperClass: classnames(MORE_FILTERS_CLASSES.DESKTOP_WRAPPER, {
12
+ [`${MORE_FILTERS_CLASSES.DESKTOP_WRAPPER}--open`]: !moreFiltersDesktopCollapsed
13
+ }),
14
+ moreFiltersDesktopTogglerClass: classnames(MORE_FILTERS_CLASSES.DESKTOP_TOGGLER, {
15
+ [`${MORE_FILTERS_CLASSES.DESKTOP_TOGGLER}--open`]: !moreFiltersDesktopCollapsed
16
+ })
17
+ });
18
+
19
+ export default getResponsiveFilterClassnames;
20
+ //# sourceMappingURL=get-responsive-filter-classnames.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/get-responsive-filter-classnames.js"],"names":["classnames","MORE_FILTERS_CLASSES","getResponsiveFilterClassnames","moreFiltersDesktopCollapsed","moreFiltersMobileCollapsed","moreFiltersMobileWrapperClass","MOBILE_WRAPPER","moreFiltersMobileTogglerClass","MOBILE_TOGGLER","moreFiltersDesktopWrapperClass","DESKTOP_WRAPPER","moreFiltersDesktopTogglerClass","DESKTOP_TOGGLER"],"mappings":"AAAA,OAAOA,UAAP,MAAuB,YAAvB;AACA,SAASC,oBAAT,QAAqC,cAArC;;AAEA,MAAMC,6BAA6B,GAAG,CACpCC,2BADoC,EAEpCC,0BAFoC,MAGhC;AACJC,EAAAA,6BAA6B,EAAEL,UAAU,CAACC,oBAAoB,CAACK,cAAtB,EAAsC;AAC7E,KAAE,GAAEL,oBAAoB,CAACK,cAAe,QAAxC,GAAkD,CAACF;AAD0B,GAAtC,CADrC;AAIJG,EAAAA,6BAA6B,EAAEP,UAAU,CAACC,oBAAoB,CAACO,cAAtB,EAAsC;AAC7E,KAAE,GAAEP,oBAAoB,CAACO,cAAe,QAAxC,GAAkD,CAACJ;AAD0B,GAAtC,CAJrC;AAOJK,EAAAA,8BAA8B,EAAET,UAAU,CAACC,oBAAoB,CAACS,eAAtB,EAAuC;AAC/E,KAAE,GAAET,oBAAoB,CAACS,eAAgB,QAAzC,GAAmD,CAACP;AAD2B,GAAvC,CAPtC;AAUJQ,EAAAA,8BAA8B,EAAEX,UAAU,CAACC,oBAAoB,CAACW,eAAtB,EAAuC;AAC/E,KAAE,GAAEX,oBAAoB,CAACW,eAAgB,QAAzC,GAAmD,CAACT;AAD2B,GAAvC;AAVtC,CAHgC,CAAtC;;AAkBA,eAAeD,6BAAf","sourcesContent":["import classnames from 'classnames';\nimport { MORE_FILTERS_CLASSES } from '../constants';\n\nconst getResponsiveFilterClassnames = (\n moreFiltersDesktopCollapsed,\n moreFiltersMobileCollapsed\n) => ({\n moreFiltersMobileWrapperClass: classnames(MORE_FILTERS_CLASSES.MOBILE_WRAPPER, {\n [`${MORE_FILTERS_CLASSES.MOBILE_WRAPPER}--open`]: !moreFiltersMobileCollapsed\n }),\n moreFiltersMobileTogglerClass: classnames(MORE_FILTERS_CLASSES.MOBILE_TOGGLER, {\n [`${MORE_FILTERS_CLASSES.MOBILE_TOGGLER}--open`]: !moreFiltersMobileCollapsed\n }),\n moreFiltersDesktopWrapperClass: classnames(MORE_FILTERS_CLASSES.DESKTOP_WRAPPER, {\n [`${MORE_FILTERS_CLASSES.DESKTOP_WRAPPER}--open`]: !moreFiltersDesktopCollapsed\n }),\n moreFiltersDesktopTogglerClass: classnames(MORE_FILTERS_CLASSES.DESKTOP_TOGGLER, {\n [`${MORE_FILTERS_CLASSES.DESKTOP_TOGGLER}--open`]: !moreFiltersDesktopCollapsed\n })\n});\n\nexport default getResponsiveFilterClassnames;\n"],"file":"get-responsive-filter-classnames.js"}
@@ -2,6 +2,7 @@ import buildNewQuery from './build-new-query';
2
2
  import buildRawQueryStringified from './build-raw-query-stringified';
3
3
  import { decodeValue, encodeValue } from './decode-encode';
4
4
  import checkIfRangeUpdated from './check-if-range-updated';
5
+ import getResponsiveFilterClassnames from './get-responsive-filter-classnames';
5
6
  import getDisplayValue from './get-display-value';
6
7
  import calculateStep from './calculate-step';
7
8
  import calculateMinMax from './calculate-min-max';
@@ -12,5 +13,5 @@ import isDeviceDesktop from './is-device-desktop';
12
13
  import getInitialFilterValues from './get-initial-filter-values';
13
14
  import getFilterValueFromQuery from './get-filter-value-from-query';
14
15
  import buildQuery from './build-query';
15
- export { buildQuery, buildNewQuery, buildRawQueryStringified, decodeValue, encodeValue, checkIfRangeUpdated, getDisplayValue, calculateStep, calculateMinMax, getIntersectedProp, getRangeValue, getSelectOptions, isDeviceDesktop, getInitialFilterValues, getFilterValueFromQuery };
16
+ export { buildQuery, buildNewQuery, buildRawQueryStringified, decodeValue, encodeValue, checkIfRangeUpdated, getResponsiveFilterClassnames, getDisplayValue, calculateStep, calculateMinMax, getIntersectedProp, getRangeValue, getSelectOptions, isDeviceDesktop, getInitialFilterValues, getFilterValueFromQuery };
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/index.js"],"names":["buildNewQuery","buildRawQueryStringified","decodeValue","encodeValue","checkIfRangeUpdated","getDisplayValue","calculateStep","calculateMinMax","getIntersectedProp","getRangeValue","getSelectOptions","isDeviceDesktop","getInitialFilterValues","getFilterValueFromQuery","buildQuery"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,mBAA1B;AACA,OAAOC,wBAAP,MAAqC,+BAArC;AACA,SAASC,WAAT,EAAsBC,WAAtB,QAAyC,iBAAzC;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,aAAP,MAA0B,kBAA1B;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,sBAAP,MAAmC,6BAAnC;AACA,OAAOC,uBAAP,MAAoC,+BAApC;AACA,OAAOC,UAAP,MAAuB,eAAvB;AAEA,SACEA,UADF,EAEEd,aAFF,EAGEC,wBAHF,EAIEC,WAJF,EAKEC,WALF,EAMEC,mBANF,EAOEC,eAPF,EAQEC,aARF,EASEC,eATF,EAUEC,kBAVF,EAWEC,aAXF,EAYEC,gBAZF,EAaEC,eAbF,EAcEC,sBAdF,EAeEC,uBAfF","sourcesContent":["import buildNewQuery from './build-new-query';\nimport buildRawQueryStringified from './build-raw-query-stringified';\nimport { decodeValue, encodeValue } from './decode-encode';\nimport checkIfRangeUpdated from './check-if-range-updated';\nimport getDisplayValue from './get-display-value';\nimport calculateStep from './calculate-step';\nimport calculateMinMax from './calculate-min-max';\nimport getIntersectedProp from './get-intersected-prop';\nimport getRangeValue from './get-range-value';\nimport getSelectOptions from './get-select-options';\nimport isDeviceDesktop from './is-device-desktop';\nimport getInitialFilterValues from './get-initial-filter-values';\nimport getFilterValueFromQuery from './get-filter-value-from-query';\nimport buildQuery from './build-query';\n\nexport {\n buildQuery,\n buildNewQuery,\n buildRawQueryStringified,\n decodeValue,\n encodeValue,\n checkIfRangeUpdated,\n getDisplayValue,\n calculateStep,\n calculateMinMax,\n getIntersectedProp,\n getRangeValue,\n getSelectOptions,\n isDeviceDesktop,\n getInitialFilterValues,\n getFilterValueFromQuery\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/index.js"],"names":["buildNewQuery","buildRawQueryStringified","decodeValue","encodeValue","checkIfRangeUpdated","getResponsiveFilterClassnames","getDisplayValue","calculateStep","calculateMinMax","getIntersectedProp","getRangeValue","getSelectOptions","isDeviceDesktop","getInitialFilterValues","getFilterValueFromQuery","buildQuery"],"mappings":"AAAA,OAAOA,aAAP,MAA0B,mBAA1B;AACA,OAAOC,wBAAP,MAAqC,+BAArC;AACA,SAASC,WAAT,EAAsBC,WAAtB,QAAyC,iBAAzC;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,OAAOC,6BAAP,MAA0C,oCAA1C;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,aAAP,MAA0B,kBAA1B;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,kBAAP,MAA+B,wBAA/B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,eAAP,MAA4B,qBAA5B;AACA,OAAOC,sBAAP,MAAmC,6BAAnC;AACA,OAAOC,uBAAP,MAAoC,+BAApC;AACA,OAAOC,UAAP,MAAuB,eAAvB;AAEA,SACEA,UADF,EAEEf,aAFF,EAGEC,wBAHF,EAIEC,WAJF,EAKEC,WALF,EAMEC,mBANF,EAOEC,6BAPF,EAQEC,eARF,EASEC,aATF,EAUEC,eAVF,EAWEC,kBAXF,EAYEC,aAZF,EAaEC,gBAbF,EAcEC,eAdF,EAeEC,sBAfF,EAgBEC,uBAhBF","sourcesContent":["import buildNewQuery from './build-new-query';\nimport buildRawQueryStringified from './build-raw-query-stringified';\nimport { decodeValue, encodeValue } from './decode-encode';\nimport checkIfRangeUpdated from './check-if-range-updated';\nimport getResponsiveFilterClassnames from './get-responsive-filter-classnames';\nimport getDisplayValue from './get-display-value';\nimport calculateStep from './calculate-step';\nimport calculateMinMax from './calculate-min-max';\nimport getIntersectedProp from './get-intersected-prop';\nimport getRangeValue from './get-range-value';\nimport getSelectOptions from './get-select-options';\nimport isDeviceDesktop from './is-device-desktop';\nimport getInitialFilterValues from './get-initial-filter-values';\nimport getFilterValueFromQuery from './get-filter-value-from-query';\nimport buildQuery from './build-query';\n\nexport {\n buildQuery,\n buildNewQuery,\n buildRawQueryStringified,\n decodeValue,\n encodeValue,\n checkIfRangeUpdated,\n getResponsiveFilterClassnames,\n getDisplayValue,\n calculateStep,\n calculateMinMax,\n getIntersectedProp,\n getRangeValue,\n getSelectOptions,\n isDeviceDesktop,\n getInitialFilterValues,\n getFilterValueFromQuery\n};\n"],"file":"index.js"}
@@ -1,6 +1,6 @@
1
1
  import { TABLET_WIDTH } from '../constants';
2
2
 
3
- const isDeviceDesktop = () => window.innerWidth > TABLET_WIDTH;
3
+ const isDeviceDesktop = () => typeof window !== 'undefined' ? window.innerWidth > TABLET_WIDTH : false;
4
4
 
5
5
  export default isDeviceDesktop;
6
6
  //# sourceMappingURL=is-device-desktop.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/is-device-desktop.js"],"names":["TABLET_WIDTH","isDeviceDesktop","window","innerWidth"],"mappings":"AAAA,SAASA,YAAT,QAA6B,cAA7B;;AAEA,MAAMC,eAAe,GAAG,MAAMC,MAAM,CAACC,UAAP,GAAoBH,YAAlD;;AAEA,eAAeC,eAAf","sourcesContent":["import { TABLET_WIDTH } from '../constants';\n\nconst isDeviceDesktop = () => window.innerWidth > TABLET_WIDTH;\n\nexport default isDeviceDesktop;\n"],"file":"is-device-desktop.js"}
1
+ {"version":3,"sources":["../../../../src/components/SearchFilter/helpers/is-device-desktop.js"],"names":["TABLET_WIDTH","isDeviceDesktop","window","innerWidth"],"mappings":"AAAA,SAASA,YAAT,QAA6B,cAA7B;;AAEA,MAAMC,eAAe,GAAG,MACtB,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAM,CAACC,UAAP,GAAoBH,YAApD,GAAmE,KADrE;;AAGA,eAAeC,eAAf","sourcesContent":["import { TABLET_WIDTH } from '../constants';\n\nconst isDeviceDesktop = () =>\n typeof window !== 'undefined' ? window.innerWidth > TABLET_WIDTH : false;\n\nexport default isDeviceDesktop;\n"],"file":"is-device-desktop.js"}