@blaze-cms/react-page-builder 0.114.0-alpha.0 → 0.114.0-alpha.4

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 (91) hide show
  1. package/CHANGELOG.md +76 -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 +7 -2
  19. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  20. package/lib/components/SearchFilter/components/Checkbox.js +5 -2
  21. package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
  22. package/lib/components/SearchFilter/components/Range.js +7 -3
  23. package/lib/components/SearchFilter/components/Range.js.map +1 -1
  24. package/lib/components/SearchFilter/components/Select.js +5 -2
  25. package/lib/components/SearchFilter/components/Select.js.map +1 -1
  26. package/lib/components/SearchFilter/helpers/build-query.js +6 -5
  27. package/lib/components/SearchFilter/helpers/build-query.js.map +1 -1
  28. package/lib/components/SearchFilter/helpers/get-range-value.js +6 -4
  29. package/lib/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  30. package/lib/components/SearchFilter/helpers/is-device-desktop.js +1 -1
  31. package/lib/components/SearchFilter/helpers/is-device-desktop.js.map +1 -1
  32. package/lib/helpers/get-generic-render-variables.js +32 -22
  33. package/lib/helpers/get-generic-render-variables.js.map +1 -1
  34. package/lib-es/components/Card/CardRender.js +32 -5
  35. package/lib-es/components/Card/CardRender.js.map +1 -1
  36. package/lib-es/components/Card/helpers/filter-query-setup.js.map +1 -1
  37. package/lib-es/components/DataSummary/helpers/build-loop-props-content.js +1 -1
  38. package/lib-es/components/DataSummary/helpers/build-loop-props-content.js.map +1 -1
  39. package/lib-es/components/List/ListBuilder.js +11 -6
  40. package/lib-es/components/List/ListBuilder.js.map +1 -1
  41. package/lib-es/components/List/ListFactory.js +20 -8
  42. package/lib-es/components/List/ListFactory.js.map +1 -1
  43. package/lib-es/components/List/helpers/get-sort-props.js +26 -0
  44. package/lib-es/components/List/helpers/get-sort-props.js.map +1 -0
  45. package/lib-es/components/List/helpers/index.js +1 -0
  46. package/lib-es/components/List/helpers/index.js.map +1 -1
  47. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js +11 -5
  48. package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  49. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +7 -2
  50. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  51. package/lib-es/components/SearchFilter/components/Checkbox.js +5 -2
  52. package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
  53. package/lib-es/components/SearchFilter/components/Range.js +7 -3
  54. package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
  55. package/lib-es/components/SearchFilter/components/Select.js +5 -2
  56. package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
  57. package/lib-es/components/SearchFilter/helpers/build-query.js +5 -4
  58. package/lib-es/components/SearchFilter/helpers/build-query.js.map +1 -1
  59. package/lib-es/components/SearchFilter/helpers/get-range-value.js +1 -1
  60. package/lib-es/components/SearchFilter/helpers/get-range-value.js.map +1 -1
  61. package/lib-es/components/SearchFilter/helpers/is-device-desktop.js +1 -1
  62. package/lib-es/components/SearchFilter/helpers/is-device-desktop.js.map +1 -1
  63. package/lib-es/helpers/get-generic-render-variables.js +22 -15
  64. package/lib-es/helpers/get-generic-render-variables.js.map +1 -1
  65. package/package.json +3 -3
  66. package/src/components/Card/CardRender.js +24 -6
  67. package/src/components/Card/helpers/filter-query-setup.js +1 -0
  68. package/src/components/DataSummary/helpers/build-loop-props-content.js +1 -6
  69. package/src/components/List/ListBuilder.js +11 -6
  70. package/src/components/List/ListFactory.js +18 -8
  71. package/src/components/List/helpers/get-sort-props.js +17 -0
  72. package/src/components/List/helpers/index.js +1 -0
  73. package/src/components/SearchFilter/SearchFilter/FiltersList.js +15 -2
  74. package/src/components/SearchFilter/SearchFilter/SearchFilter.js +7 -2
  75. package/src/components/SearchFilter/components/Checkbox.js +4 -2
  76. package/src/components/SearchFilter/components/Range.js +7 -3
  77. package/src/components/SearchFilter/components/Select.js +4 -2
  78. package/src/components/SearchFilter/helpers/build-query.js +5 -4
  79. package/src/components/SearchFilter/helpers/get-range-value.js +3 -1
  80. package/src/components/SearchFilter/helpers/is-device-desktop.js +2 -1
  81. package/src/helpers/get-generic-render-variables.js +22 -12
  82. package/tests/unit/src/components/DataSummary/helpers/build-loop-props-content.test.js +24 -0
  83. package/tests/unit/src/components/List/helpers/get-sort-props.test.js +58 -0
  84. package/tests/unit/src/components/SearchFilter/components/__snapshots__/Range.test.js.snap +2 -2
  85. package/tests/unit/src/helpers/build-raw-query.test.js +2 -1
  86. package/tests/unit/src/helpers/get-generic-render-variables.test.js +5 -11
  87. package/lib/helpers/check-sort-by.js +0 -16
  88. package/lib/helpers/check-sort-by.js.map +0 -1
  89. package/lib-es/helpers/check-sort-by.js +0 -4
  90. package/lib-es/helpers/check-sort-by.js.map +0 -1
  91. package/src/helpers/check-sort-by.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/List/ListFactory.js"],"names":["ListFactory","props","entity","parent","name","filterByProperty","filterBy","omitWrappers","type","defaultSortBy","sortby","defaultSort","sort","searchFilter","filterOperator","operator","MainContext","isPreview","router","asPath","parsedQuery","replace","query","url","querySort","querySortBy","itemEntity","itemId","itemEntityUpdated","paginationIndex","azFilter","getSingleEntitySchema","variables","id","entitySchema","data","schemaError","error","schemaLoading","loading","mainSchemas","schemasLoading","schemasError","currentSchema","filterEntitySchema","requiredSchema","requiredSchemaLoading","requiredSchemaError","inheritedFilters","queryProps","actions","getAction","get","getPublished","skip","length","ID","entityData","itemQueryError","itemQueryLoading","errorsToCheck","hasErr","errMsg","isCard","FULL","isAZ","AZ_LIST_TYPE","genericProps","TEXT_SEARCH","textFilter","shouldApplyTextFilter","propsToDisplay","AND_OPERATOR","valuesText","valuesAnd","valuesOr","isTextSearchFilterApplied","search_term","searchValues","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","listProps","propTypes","PropTypes","object","isRequired","string","array","bool","defaultProps","AND"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { getSingleEntitySchema, generateSingleItemQuery } from '../../application/query';\nimport ListBuilder from './ListBuilder';\nimport { AZ_LIST_TYPE } from './constants';\nimport { getAzQueryFilter } from './helpers';\nimport {\n getGenericProps,\n getRequiredSchemas,\n checkForError,\n getUnpublishedEntityName,\n getPaginationIndex,\n getSearchFilterType,\n getElasticsearchOperator,\n buildSearchValuesText,\n getQueryFilters,\n getInheritedFilters,\n getQueryProps\n} from '../../helpers';\nimport { useGetEntitySchemasAsObj } from '../../hooks';\nimport { AND_OPERATOR, TEXT_SEARCH, ID, AND, FULL } from '../../constants';\n\nconst ListFactory = props => {\n const {\n entity,\n parent,\n name,\n filterByProperty,\n filterBy,\n omitWrappers,\n type,\n sortby: defaultSortBy,\n sort: defaultSort,\n searchFilter,\n operator: filterOperator\n } = props;\n\n const { isPreview } = useContext(MainContext);\n const router = useRouter();\n const { asPath } = router;\n const parsedQuery = asPath.replace(/%5D/g, ']').replace(/%5B/g, '[');\n const { query, url, query: { sort: querySort, sortby: querySortBy } = {} } = parseUrl(\n parsedQuery\n );\n const sort = querySort || defaultSort;\n const sortby = querySortBy ? [querySortBy] : defaultSortBy || [];\n const { itemEntity, itemId } = parent;\n const itemEntityUpdated = getUnpublishedEntityName(itemEntity);\n const paginationIndex = getPaginationIndex(query, name);\n const azFilter = getAzQueryFilter(query, name);\n\n const { data: entitySchema, error: schemaError, loading: schemaLoading } = useQuery(\n getSingleEntitySchema,\n {\n variables: { id: entity }\n }\n );\n const {\n data: mainSchemas = {},\n loading: schemasLoading,\n error: schemasError\n } = useGetEntitySchemasAsObj([itemEntityUpdated, entity]);\n\n const {\n [itemEntityUpdated]: currentSchema = {},\n [entity]: filterEntitySchema = {}\n } = mainSchemas;\n\n const {\n data: requiredSchema = {},\n loading: requiredSchemaLoading,\n error: requiredSchemaError\n } = useGetEntitySchemasAsObj(\n getRequiredSchemas([...filterByProperty, ...sortby], filterEntitySchema),\n schemasLoading\n );\n const inheritedFilters = getInheritedFilters(filterBy, filterByProperty);\n const queryProps = getQueryProps(inheritedFilters, currentSchema, filterEntitySchema);\n const { actions = {} } = currentSchema || {};\n const getAction = isPreview ? actions.get : actions.getPublished;\n\n const {\n data: { entityData = {} } = {},\n error: itemQueryError,\n loading: itemQueryLoading\n } = useQuery(generateSingleItemQuery(getAction, queryProps), {\n variables: { id: itemId },\n skip: schemasLoading || (!inheritedFilters.length && queryProps === ID)\n });\n const errorsToCheck = [schemaError, schemasError, requiredSchemaError, itemQueryError];\n const { hasErr, errMsg } = checkForError(errorsToCheck);\n\n if (requiredSchemaLoading || schemasLoading || schemaLoading || itemQueryLoading) return '';\n if (hasErr) return errMsg;\n if (!entitySchema) return null;\n\n const isCard = type !== FULL;\n const isAZ = type === AZ_LIST_TYPE;\n const genericProps = getGenericProps(props);\n const [textFilter] = getSearchFilterType(searchFilter, TEXT_SEARCH);\n const shouldApplyTextFilter = textFilter && textFilter.propsToDisplay.length;\n const operator = shouldApplyTextFilter ? getElasticsearchOperator(textFilter) : AND_OPERATOR;\n const valuesText = shouldApplyTextFilter ? buildSearchValuesText(textFilter, query) : [];\n const { valuesAnd, valuesOr } = getQueryFilters(searchFilter, query);\n const isTextSearchFilterApplied = !!(\n query.search_term &&\n searchFilter &&\n getSearchFilterType(searchFilter, TEXT_SEARCH).length\n );\n\n const searchValues = {\n searchValuesText: valuesText,\n searchValuesCheckboxSelectRange: valuesAnd,\n searchValuesCheckboxOr: valuesOr\n };\n const listProps = {\n ...props,\n ...genericProps,\n query,\n url,\n isCard,\n isAZ,\n router,\n entitySchema,\n sort,\n sortby,\n azFilter,\n searchValues,\n filterEntitySchema,\n requiredSchema,\n currentSchema,\n omitWrappers,\n operator,\n isTextSearchFilterApplied,\n paginationIndex,\n entityData,\n inheritedFilters,\n filterOperator\n };\n\n return <ListBuilder {...listProps} />;\n};\n\nListFactory.propTypes = {\n parent: PropTypes.object.isRequired,\n entity: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n omitWrappers: PropTypes.bool,\n operator: PropTypes.string,\n name: PropTypes.string,\n sortby: PropTypes.array,\n sort: PropTypes.string,\n searchFilter: PropTypes.object\n};\n\nListFactory.defaultProps = {\n filterBy: [],\n filterByProperty: [],\n omitWrappers: false,\n name: '',\n sortby: [],\n sort: '',\n operator: AND,\n searchFilter: {}\n};\n\nexport default ListFactory;\n"],"file":"ListFactory.js"}
1
+ {"version":3,"sources":["../../../src/components/List/ListFactory.js"],"names":["ListFactory","props","entity","parent","name","filterByProperty","filterBy","omitWrappers","type","defaultSortBy","sortby","defaultSort","sort","searchFilter","filterOperator","operator","sortProperties","MainContext","isPreview","router","asPath","parsedQuery","replace","query","url","querySort","querySortBy","sortbyFilters","updatedSortProperties","itemEntity","itemId","itemEntityUpdated","paginationIndex","azFilter","getSingleEntitySchema","variables","id","entitySchema","data","schemaError","error","schemaLoading","loading","mainSchemas","schemasLoading","schemasError","currentSchema","filterEntitySchema","requiredSchema","requiredSchemaLoading","requiredSchemaError","inheritedFilters","queryProps","actions","getAction","get","getPublished","skip","length","ID","entityData","itemQueryError","itemQueryLoading","errorsToCheck","hasErr","errMsg","isCard","FULL","isAZ","AZ_LIST_TYPE","genericProps","TEXT_SEARCH","textFilter","shouldApplyTextFilter","propsToDisplay","AND_OPERATOR","valuesText","valuesAnd","valuesOr","isTextSearchFilterApplied","search_term","searchValues","searchValuesText","searchValuesCheckboxSelectRange","searchValuesCheckboxOr","listProps","propTypes","PropTypes","object","isRequired","string","array","bool","defaultProps","AND"],"mappings":"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","sourcesContent":["import React, { useContext } from 'react';\nimport { useQuery } from '@apollo/react-hooks';\nimport { parseUrl } from 'query-string';\nimport PropTypes from 'prop-types';\nimport { useRouter } from 'next/router';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { getSingleEntitySchema, generateSingleItemQuery } from '../../application/query';\nimport ListBuilder from './ListBuilder';\nimport { AZ_LIST_TYPE } from './constants';\nimport { getAzQueryFilter, getSortProps } from './helpers';\nimport {\n getGenericProps,\n getRequiredSchemas,\n checkForError,\n getUnpublishedEntityName,\n getPaginationIndex,\n getSearchFilterType,\n getElasticsearchOperator,\n buildSearchValuesText,\n getQueryFilters,\n getInheritedFilters,\n getQueryProps\n} from '../../helpers';\nimport { useGetEntitySchemasAsObj } from '../../hooks';\nimport { AND_OPERATOR, TEXT_SEARCH, ID, AND, FULL } from '../../constants';\n\nconst ListFactory = props => {\n const {\n entity,\n parent,\n name,\n filterByProperty,\n filterBy,\n omitWrappers,\n type,\n sortby: defaultSortBy,\n sort: defaultSort,\n searchFilter,\n operator: filterOperator,\n sortProperties\n } = props;\n\n const { isPreview } = useContext(MainContext);\n const router = useRouter();\n const { asPath } = router;\n const parsedQuery = asPath.replace(/%5D/g, ']').replace(/%5B/g, '[');\n const { query, url, query: { sort: querySort, sortby: querySortBy } = {} } = parseUrl(\n parsedQuery\n );\n const { sortbyFilters, updatedSortProperties } = getSortProps({\n querySort,\n sortProperties,\n defaultSort,\n querySortBy,\n defaultSortBy\n });\n\n const { itemEntity, itemId } = parent;\n const itemEntityUpdated = getUnpublishedEntityName(itemEntity);\n const paginationIndex = getPaginationIndex(query, name);\n const azFilter = getAzQueryFilter(query, name);\n\n const { data: entitySchema, error: schemaError, loading: schemaLoading } = useQuery(\n getSingleEntitySchema,\n {\n variables: { id: entity }\n }\n );\n const {\n data: mainSchemas = {},\n loading: schemasLoading,\n error: schemasError\n } = useGetEntitySchemasAsObj([itemEntityUpdated, entity]);\n\n const {\n [itemEntityUpdated]: currentSchema = {},\n [entity]: filterEntitySchema = {}\n } = mainSchemas;\n\n const {\n data: requiredSchema = {},\n loading: requiredSchemaLoading,\n error: requiredSchemaError\n } = useGetEntitySchemasAsObj(\n getRequiredSchemas([...filterByProperty, ...sortbyFilters], filterEntitySchema),\n schemasLoading\n );\n const inheritedFilters = getInheritedFilters(filterBy, filterByProperty);\n const queryProps = getQueryProps(inheritedFilters, currentSchema, filterEntitySchema);\n const { actions = {} } = currentSchema || {};\n const getAction = isPreview ? actions.get : actions.getPublished;\n\n const {\n data: { entityData = {} } = {},\n error: itemQueryError,\n loading: itemQueryLoading\n } = useQuery(generateSingleItemQuery(getAction, queryProps), {\n variables: { id: itemId },\n skip: schemasLoading || (!inheritedFilters.length && queryProps === ID)\n });\n const errorsToCheck = [schemaError, schemasError, requiredSchemaError, itemQueryError];\n const { hasErr, errMsg } = checkForError(errorsToCheck);\n\n if (requiredSchemaLoading || schemasLoading || schemaLoading || itemQueryLoading) return '';\n if (hasErr) return errMsg;\n if (!entitySchema) return null;\n\n const isCard = type !== FULL;\n const isAZ = type === AZ_LIST_TYPE;\n const genericProps = getGenericProps(props);\n const [textFilter] = getSearchFilterType(searchFilter, TEXT_SEARCH);\n const shouldApplyTextFilter = textFilter && textFilter.propsToDisplay.length;\n const operator = shouldApplyTextFilter ? getElasticsearchOperator(textFilter) : AND_OPERATOR;\n const valuesText = shouldApplyTextFilter ? buildSearchValuesText(textFilter, query) : [];\n const { valuesAnd, valuesOr } = getQueryFilters(searchFilter, query);\n const isTextSearchFilterApplied = !!(\n query.search_term &&\n searchFilter &&\n getSearchFilterType(searchFilter, TEXT_SEARCH).length\n );\n\n const searchValues = {\n searchValuesText: valuesText,\n searchValuesCheckboxSelectRange: valuesAnd,\n searchValuesCheckboxOr: valuesOr\n };\n const listProps = {\n ...props,\n ...genericProps,\n query,\n url,\n isCard,\n isAZ,\n router,\n entitySchema,\n sort: null,\n sortby: null,\n sortProperties: updatedSortProperties,\n azFilter,\n searchValues,\n filterEntitySchema,\n requiredSchema,\n currentSchema,\n omitWrappers,\n operator,\n isTextSearchFilterApplied,\n paginationIndex,\n entityData,\n inheritedFilters,\n filterOperator\n };\n\n return <ListBuilder {...listProps} />;\n};\n\nListFactory.propTypes = {\n parent: PropTypes.object.isRequired,\n entity: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n omitWrappers: PropTypes.bool,\n operator: PropTypes.string,\n name: PropTypes.string,\n sortby: PropTypes.array,\n sort: PropTypes.string,\n searchFilter: PropTypes.object,\n sortProperties: PropTypes.array\n};\n\nListFactory.defaultProps = {\n filterBy: [],\n filterByProperty: [],\n omitWrappers: false,\n name: '',\n sortby: [],\n sortProperties: [],\n sort: '',\n operator: AND,\n searchFilter: {}\n};\n\nexport default ListFactory;\n"],"file":"ListFactory.js"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.define-property.js");
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ require("core-js/modules/es.array.flat.js");
13
+
14
+ require("core-js/modules/es.array.filter.js");
15
+
16
+ require("core-js/modules/es.array.map.js");
17
+
18
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
19
+
20
+ var getSortProps = function getSortProps(_ref) {
21
+ var querySort = _ref.querySort,
22
+ sortProperties = _ref.sortProperties,
23
+ defaultSort = _ref.defaultSort,
24
+ querySortBy = _ref.querySortBy,
25
+ defaultSortBy = _ref.defaultSortBy;
26
+ var sort = querySort || (sortProperties.length ? null : defaultSort);
27
+ var sortby = null;
28
+ if (querySortBy) sortby = [querySortBy];else if (!sortProperties.length) sortby = defaultSortBy;
29
+ var updatedSortProperties = (0, _toConsumableArray2["default"])(sortProperties);
30
+ if (sort) updatedSortProperties.unshift({
31
+ sort: sort,
32
+ propsToDisplay: sortby
33
+ });
34
+ var sortbyFilters = updatedSortProperties.map(function (_ref2) {
35
+ var filterProps = _ref2.propsToDisplay;
36
+ return filterProps;
37
+ }).filter(Boolean).flat();
38
+ return {
39
+ sortbyFilters: sortbyFilters,
40
+ updatedSortProperties: updatedSortProperties
41
+ };
42
+ };
43
+
44
+ var _default = getSortProps;
45
+ exports["default"] = _default;
46
+ //# sourceMappingURL=get-sort-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/List/helpers/get-sort-props.js"],"names":["getSortProps","querySort","sortProperties","defaultSort","querySortBy","defaultSortBy","sort","length","sortby","updatedSortProperties","unshift","propsToDisplay","sortbyFilters","map","filterProps","filter","Boolean","flat"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAA4E;AAAA,MAAzEC,SAAyE,QAAzEA,SAAyE;AAAA,MAA9DC,cAA8D,QAA9DA,cAA8D;AAAA,MAA9CC,WAA8C,QAA9CA,WAA8C;AAAA,MAAjCC,WAAiC,QAAjCA,WAAiC;AAAA,MAApBC,aAAoB,QAApBA,aAAoB;AAC/F,MAAMC,IAAI,GAAGL,SAAS,KAAKC,cAAc,CAACK,MAAf,GAAwB,IAAxB,GAA+BJ,WAApC,CAAtB;AACA,MAAIK,MAAM,GAAG,IAAb;AACA,MAAIJ,WAAJ,EAAiBI,MAAM,GAAG,CAACJ,WAAD,CAAT,CAAjB,KACK,IAAI,CAACF,cAAc,CAACK,MAApB,EAA4BC,MAAM,GAAGH,aAAT;AAEjC,MAAMI,qBAAqB,uCAAOP,cAAP,CAA3B;AACA,MAAII,IAAJ,EAAUG,qBAAqB,CAACC,OAAtB,CAA8B;AAAEJ,IAAAA,IAAI,EAAJA,IAAF;AAAQK,IAAAA,cAAc,EAAEH;AAAxB,GAA9B;AAEV,MAAMI,aAAa,GAAGH,qBAAqB,CACxCI,GADmB,CACf;AAAA,QAAmBC,WAAnB,SAAGH,cAAH;AAAA,WAAqCG,WAArC;AAAA,GADe,EAEnBC,MAFmB,CAEZC,OAFY,EAGnBC,IAHmB,EAAtB;AAIA,SAAO;AAAEL,IAAAA,aAAa,EAAbA,aAAF;AAAiBH,IAAAA,qBAAqB,EAArBA;AAAjB,GAAP;AACD,CAdD;;eAgBeT,Y","sourcesContent":["const getSortProps = ({ querySort, sortProperties, defaultSort, querySortBy, defaultSortBy }) => {\n const sort = querySort || (sortProperties.length ? null : defaultSort);\n let sortby = null;\n if (querySortBy) sortby = [querySortBy];\n else if (!sortProperties.length) sortby = defaultSortBy;\n\n const updatedSortProperties = [...sortProperties];\n if (sort) updatedSortProperties.unshift({ sort, propsToDisplay: sortby });\n\n const sortbyFilters = updatedSortProperties\n .map(({ propsToDisplay: filterProps }) => filterProps)\n .filter(Boolean)\n .flat();\n return { sortbyFilters, updatedSortProperties };\n};\n\nexport default getSortProps;\n"],"file":"get-sort-props.js"}
@@ -37,6 +37,12 @@ Object.defineProperty(exports, "getItemsPerPageToUse", {
37
37
  return _getItemsPerPageToUse["default"];
38
38
  }
39
39
  });
40
+ Object.defineProperty(exports, "getSortProps", {
41
+ enumerable: true,
42
+ get: function get() {
43
+ return _getSortProps["default"];
44
+ }
45
+ });
40
46
  Object.defineProperty(exports, "sortAggs", {
41
47
  enumerable: true,
42
48
  get: function get() {
@@ -55,4 +61,6 @@ var _buildAzUrl = _interopRequireDefault(require("./build-az-url"));
55
61
  var _sortAggs = _interopRequireDefault(require("./sort-aggs"));
56
62
 
57
63
  var _getItemsPerPageToUse = _interopRequireDefault(require("./get-items-per-page-to-use"));
64
+
65
+ var _getSortProps = _interopRequireDefault(require("./get-sort-props"));
58
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/List/helpers/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export { default as buildPaginationItems } from './build-pagination-items';\nexport { default as getAzQueryFilter } from './get-az-query-filter';\nexport { default as buildAzAggregations } from './build-az-aggregations';\nexport { default as buildAzUrl } from './build-az-url';\nexport { default as sortAggs } from './sort-aggs';\nexport { default as getItemsPerPageToUse } from './get-items-per-page-to-use';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/components/List/helpers/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA","sourcesContent":["export { default as buildPaginationItems } from './build-pagination-items';\nexport { default as getAzQueryFilter } from './get-az-query-filter';\nexport { default as buildAzAggregations } from './build-az-aggregations';\nexport { default as buildAzUrl } from './build-az-url';\nexport { default as sortAggs } from './sort-aggs';\nexport { default as getItemsPerPageToUse } from './get-items-per-page-to-use';\nexport { default as getSortProps } from './get-sort-props';\n"],"file":"index.js"}
@@ -49,7 +49,8 @@ var FiltersList = function FiltersList(_ref) {
49
49
  hasUrl = _ref.hasUrl,
50
50
  entity = _ref.entity,
51
51
  filterValues = _ref.filterValues,
52
- updateFilterValues = _ref.updateFilterValues;
52
+ updateFilterValues = _ref.updateFilterValues,
53
+ shouldSearch = _ref.shouldSearch;
53
54
 
54
55
  var _useContext = (0, _react.useContext)(_nextjsComponents.MainContext),
55
56
  itemId = _useContext.itemId;
@@ -92,7 +93,8 @@ var FiltersList = function FiltersList(_ref) {
92
93
  elementTitle: elementTitle,
93
94
  hasUrl: hasUrl,
94
95
  filterValues: filterValues,
95
- updateFilterValues: updateFilterValues
96
+ updateFilterValues: updateFilterValues,
97
+ shouldSearch: shouldSearch
96
98
  }));
97
99
 
98
100
  case _constants.SELECT:
@@ -106,7 +108,8 @@ var FiltersList = function FiltersList(_ref) {
106
108
  elementTitle: elementTitle,
107
109
  hasUrl: hasUrl,
108
110
  filterValues: filterValues,
109
- updateFilterValues: updateFilterValues
111
+ updateFilterValues: updateFilterValues,
112
+ shouldSearch: shouldSearch
110
113
  }));
111
114
 
112
115
  case _constants.RANGE:
@@ -121,7 +124,8 @@ var FiltersList = function FiltersList(_ref) {
121
124
  elementTitle: elementTitle,
122
125
  entity: entity,
123
126
  filterValues: filterValues,
124
- updateFilterValues: updateFilterValues
127
+ updateFilterValues: updateFilterValues,
128
+ shouldSearch: shouldSearch
125
129
  }));
126
130
 
127
131
  default:
@@ -136,9 +140,11 @@ FiltersList.propTypes = {
136
140
  filterValues: _propTypes["default"].object.isRequired,
137
141
  updateFilterValues: _propTypes["default"].func.isRequired,
138
142
  data: _propTypes["default"].object,
139
- filters: _propTypes["default"].array
143
+ filters: _propTypes["default"].array,
144
+ shouldSearch: _propTypes["default"].bool
140
145
  };
141
146
  FiltersList.defaultProps = {
147
+ shouldSearch: false,
142
148
  data: {},
143
149
  filters: []
144
150
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/SearchFilter/FiltersList.js"],"names":["FiltersList","data","filters","hasUrl","entity","filterValues","updateFilterValues","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 = ({ data, filters, hasUrl, entity, filterValues, updateFilterValues }) => {\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 />\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 />\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 />\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};\n\nFiltersList.defaultProps = {\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","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"}
@@ -198,15 +198,16 @@ var SearchFilter = function SearchFilter(_ref) {
198
198
  });
199
199
  };
200
200
 
201
- var updateFilterValues = function updateFilterValues(newValues, shouldSearch) {
201
+ var updateFilterValues = function updateFilterValues(newValues, shouldSubmit) {
202
202
  dispatch({
203
203
  newValues: newValues,
204
- shouldSearch: shouldSearch,
204
+ shouldSearch: shouldSubmit,
205
205
  type: 'update'
206
206
  });
207
207
  };
208
208
 
209
209
  var shouldGroup = !!(groupAfterDesktop || groupAfterMobile);
210
+ var shouldSearch = !hasUrl;
210
211
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isDesktopFormDisplayed || isMobileFormDisplayed ? /*#__PURE__*/_react["default"].createElement("form", {
211
212
  ref: searchFilterRef,
212
213
  className: formClass,
@@ -228,6 +229,7 @@ var SearchFilter = function SearchFilter(_ref) {
228
229
  }), /*#__PURE__*/_react["default"].createElement("div", {
229
230
  className: "filter__wrapper filter__wrapper--search-refine"
230
231
  }, !shouldGroup && /*#__PURE__*/_react["default"].createElement(_FiltersList["default"], {
232
+ shouldSearch: shouldSearch,
231
233
  data: data,
232
234
  filters: filters,
233
235
  hasUrl: hasUrl,
@@ -235,6 +237,7 @@ var SearchFilter = function SearchFilter(_ref) {
235
237
  filterValues: filterValues,
236
238
  updateFilterValues: updateFilterValues
237
239
  }), shouldGroup && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_FiltersList["default"], {
240
+ shouldSearch: shouldSearch,
238
241
  data: data,
239
242
  filters: filters.slice(0, groupAfterMobile),
240
243
  hasUrl: hasUrl,
@@ -252,6 +255,7 @@ var SearchFilter = function SearchFilter(_ref) {
252
255
  }, /*#__PURE__*/_react["default"].createElement("div", {
253
256
  className: _constants.MORE_FILTERS_CLASSES.MOBILE_CONTENT
254
257
  }, /*#__PURE__*/_react["default"].createElement(_FiltersList["default"], {
258
+ shouldSearch: shouldSearch && (0, _helpers.isDeviceDesktop)(),
255
259
  data: data,
256
260
  filters: filters.slice(groupAfterMobile, groupAfterDesktop ? groupAfterDesktop - 1 : 0),
257
261
  hasUrl: hasUrl,
@@ -269,6 +273,7 @@ var SearchFilter = function SearchFilter(_ref) {
269
273
  }, /*#__PURE__*/_react["default"].createElement("div", {
270
274
  className: _constants.MORE_FILTERS_CLASSES.DESKTOP_CONTENT
271
275
  }, /*#__PURE__*/_react["default"].createElement(_FiltersList["default"], {
276
+ shouldSearch: false,
272
277
  data: data,
273
278
  filters: filters.slice(groupAfterDesktop),
274
279
  hasUrl: hasUrl,
@@ -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","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, 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 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 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 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 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","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"}
@@ -74,7 +74,8 @@ var Checkbox = function Checkbox(_ref) {
74
74
  prop = _ref.prop,
75
75
  updateFilterValues = _ref.updateFilterValues,
76
76
  filterValues = _ref.filterValues,
77
- label = _ref.label;
77
+ label = _ref.label,
78
+ shouldSearch = _ref.shouldSearch;
78
79
 
79
80
  var _useState = (0, _react.useState)(null),
80
81
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
@@ -129,7 +130,7 @@ var Checkbox = function Checkbox(_ref) {
129
130
  var value = _ref5.value;
130
131
  return value;
131
132
  });
132
- updateFilterValues((0, _defineProperty2["default"])({}, prop, newCheckboxValues), true);
133
+ updateFilterValues((0, _defineProperty2["default"])({}, prop, newCheckboxValues), shouldSearch);
133
134
  }
134
135
  }), data[prop].buckets.length > _constants.LIMIT_MIN && /*#__PURE__*/_react["default"].createElement("div", {
135
136
  role: "button",
@@ -145,9 +146,11 @@ Checkbox.propTypes = {
145
146
  prop: _propTypes["default"].string.isRequired,
146
147
  filterValues: _propTypes["default"].object.isRequired,
147
148
  updateFilterValues: _propTypes["default"].func.isRequired,
149
+ shouldSearch: _propTypes["default"].bool,
148
150
  label: _propTypes["default"].string
149
151
  };
150
152
  Checkbox.defaultProps = {
153
+ shouldSearch: false,
151
154
  label: ''
152
155
  };
153
156
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/components/Checkbox.js"],"names":["getButtonInfo","isMore","icon","DOWN","text","MORE","UP","LESS","Checkbox","data","prop","updateFilterValues","filterValues","label","checkboxLimit","setCheckboxLimit","handleCheckboxOptions","LIMIT_MIN","LIMIT_MAX","checkboxQueryParams","map","val","multiple","sortedValues","buckets","key","filter","Boolean","sort","forEach","value","i","push","name","checked","includes","id","shouldDisplayMore","eData","newCheckboxValues","length","propTypes","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":["getButtonInfo","isMore","icon","DOWN","text","MORE","UP","LESS","Checkbox","data","prop","updateFilterValues","filterValues","label","shouldSearch","checkboxLimit","setCheckboxLimit","handleCheckboxOptions","LIMIT_MIN","LIMIT_MAX","checkboxQueryParams","map","val","multiple","sortedValues","buckets","key","filter","Boolean","sort","forEach","value","i","push","name","checked","includes","id","shouldDisplayMore","eData","newCheckboxValues","length","propTypes","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"}
@@ -59,8 +59,10 @@ var Range = function Range(_ref) {
59
59
  entity = _ref.entity,
60
60
  propsToDisplay = _ref.propsToDisplay,
61
61
  updateFilterValues = _ref.updateFilterValues,
62
- filterValues = _ref.filterValues;
62
+ filterValues = _ref.filterValues,
63
+ shouldSearch = _ref.shouldSearch;
63
64
  var router = (0, _router.useRouter)();
65
+ var debounceAmount = shouldSearch ? 1200 : 100;
64
66
 
65
67
  var _parseUrl = (0, _queryString.parseUrl)((0, _decodeEncode.decodeValue)(router.asPath)),
66
68
  query = _parseUrl.query;
@@ -85,8 +87,8 @@ var Range = function Range(_ref) {
85
87
  var handleChange = (0, _lodash["default"])(function (option, value) {
86
88
  updateFilterValues((0, _defineProperty2["default"])({}, option, _objectSpread(_objectSpread({}, value), {}, {
87
89
  selectedOption: rangeOption
88
- })), true);
89
- }, 1200);
90
+ })), shouldSearch);
91
+ }, debounceAmount);
90
92
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, hasMultipleOptions && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("label", null, label), /*#__PURE__*/_react["default"].createElement(_select["default"], {
91
93
  value: rangeOption,
92
94
  id: rangeOption,
@@ -124,10 +126,12 @@ Range.propTypes = {
124
126
  entity: _propTypes["default"].string.isRequired,
125
127
  filterValues: _propTypes["default"].object.isRequired,
126
128
  updateFilterValues: _propTypes["default"].func.isRequired,
129
+ shouldSearch: _propTypes["default"].bool,
127
130
  rangeInterval: _propTypes["default"].number,
128
131
  label: _propTypes["default"].string
129
132
  };
130
133
  Range.defaultProps = {
134
+ shouldSearch: false,
131
135
  rangeInterval: 1,
132
136
  label: ''
133
137
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/components/Range.js"],"names":["Range","rangeInterval","label","entity","propsToDisplay","updateFilterValues","filterValues","router","asPath","query","hasMultipleOptions","length","initialRangeOption","rangeOption","selectedOption","rangeValue","data","getEntitySchema","loading","options","min","max","shouldShowRange","handleChange","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","propTypes","PropTypes","array","isRequired","string","object","func","number","defaultProps"],"mappings":"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","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":["Range","rangeInterval","label","entity","propsToDisplay","updateFilterValues","filterValues","shouldSearch","router","debounceAmount","asPath","query","hasMultipleOptions","length","initialRangeOption","rangeOption","selectedOption","rangeValue","data","getEntitySchema","loading","options","min","max","shouldShowRange","handleChange","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","propTypes","PropTypes","array","isRequired","string","object","func","bool","number","defaultProps"],"mappings":"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","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"}
@@ -36,7 +36,8 @@ var SelectFilter = function SelectFilter(_ref) {
36
36
  label = _ref.label,
37
37
  prop = _ref.prop,
38
38
  updateFilterValues = _ref.updateFilterValues,
39
- filterValues = _ref.filterValues;
39
+ filterValues = _ref.filterValues,
40
+ shouldSearch = _ref.shouldSearch;
40
41
  var filterValue = filterValues[prop] || '';
41
42
  var options = data[prop].buckets.map(function (bucket) {
42
43
  return bucket.key;
@@ -49,7 +50,7 @@ var SelectFilter = function SelectFilter(_ref) {
49
50
  options: optionsJoined,
50
51
  onChange: function onChange(_ref2) {
51
52
  var value = _ref2.value;
52
- updateFilterValues((0, _defineProperty2["default"])({}, prop, value), true);
53
+ updateFilterValues((0, _defineProperty2["default"])({}, prop, value), shouldSearch);
53
54
  }
54
55
  });
55
56
  };
@@ -59,9 +60,11 @@ SelectFilter.propTypes = {
59
60
  prop: _propTypes["default"].string.isRequired,
60
61
  filterValues: _propTypes["default"].object.isRequired,
61
62
  updateFilterValues: _propTypes["default"].func.isRequired,
63
+ shouldSearch: _propTypes["default"].bool,
62
64
  label: _propTypes["default"].string
63
65
  };
64
66
  SelectFilter.defaultProps = {
67
+ shouldSearch: false,
65
68
  label: ''
66
69
  };
67
70
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SearchFilter/components/Select.js"],"names":["SelectFilter","data","label","prop","updateFilterValues","filterValues","filterValue","options","buckets","map","bucket","key","filter","Boolean","sort","optionsJoined","DEFAULT_OPTION","value","propTypes","PropTypes","object","isRequired","string","func","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAA6D;AAAA,MAA1DC,IAA0D,QAA1DA,IAA0D;AAAA,MAApDC,KAAoD,QAApDA,KAAoD;AAAA,MAA7CC,IAA6C,QAA7CA,IAA6C;AAAA,MAAvCC,kBAAuC,QAAvCA,kBAAuC;AAAA,MAAnBC,YAAmB,QAAnBA,YAAmB;AAChF,MAAMC,WAAW,GAAGD,YAAY,CAACF,IAAD,CAAZ,IAAsB,EAA1C;AAEA,MAAMI,OAAO,GAAGN,IAAI,CAACE,IAAD,CAAJ,CAAWK,OAAX,CACbC,GADa,CACT,UAAAC,MAAM;AAAA,WAAIA,MAAM,CAACC,GAAX;AAAA,GADG,EAEbC,MAFa,CAENC,OAFM,EAGbC,IAHa,EAAhB;AAKA,MAAMC,aAAa,IAAIC,yBAAJ,6CAAuBT,OAAvB,EAAnB;AAEA,sBACE,gCAAC,kBAAD;AACE,IAAA,KAAK,YAAKL,KAAK,IAAIC,IAAd,CADP;AAEE,IAAA,KAAK,EAAEG,WAFT;AAGE,IAAA,EAAE,EAAEH,IAHN;AAIE,IAAA,OAAO,EAAEY,aAJX;AAKE,IAAA,QAAQ,EAAE,yBAAe;AAAA,UAAZE,KAAY,SAAZA,KAAY;AACvBb,MAAAA,kBAAkB,sCAAID,IAAJ,EAAWc,KAAX,GAAoB,IAApB,CAAlB;AACD;AAPH,IADF;AAWD,CArBD;;AAuBAjB,YAAY,CAACkB,SAAb,GAAyB;AACvBjB,EAAAA,IAAI,EAAEkB,sBAAUC,MAAV,CAAiBC,UADA;AAEvBlB,EAAAA,IAAI,EAAEgB,sBAAUG,MAAV,CAAiBD,UAFA;AAGvBhB,EAAAA,YAAY,EAAEc,sBAAUC,MAAV,CAAiBC,UAHR;AAIvBjB,EAAAA,kBAAkB,EAAEe,sBAAUI,IAAV,CAAeF,UAJZ;AAKvBnB,EAAAA,KAAK,EAAEiB,sBAAUG;AALM,CAAzB;AAQAtB,YAAY,CAACwB,YAAb,GAA4B;AAC1BtB,EAAAA,KAAK,EAAE;AADmB,CAA5B;;eAIe,oBAAUF,YAAV,C","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":["SelectFilter","data","label","prop","updateFilterValues","filterValues","shouldSearch","filterValue","options","buckets","map","bucket","key","filter","Boolean","sort","optionsJoined","DEFAULT_OPTION","value","propTypes","PropTypes","object","isRequired","string","func","bool","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe,OAA2E;AAAA,MAAxEC,IAAwE,QAAxEA,IAAwE;AAAA,MAAlEC,KAAkE,QAAlEA,KAAkE;AAAA,MAA3DC,IAA2D,QAA3DA,IAA2D;AAAA,MAArDC,kBAAqD,QAArDA,kBAAqD;AAAA,MAAjCC,YAAiC,QAAjCA,YAAiC;AAAA,MAAnBC,YAAmB,QAAnBA,YAAmB;AAC9F,MAAMC,WAAW,GAAGF,YAAY,CAACF,IAAD,CAAZ,IAAsB,EAA1C;AAEA,MAAMK,OAAO,GAAGP,IAAI,CAACE,IAAD,CAAJ,CAAWM,OAAX,CACbC,GADa,CACT,UAAAC,MAAM;AAAA,WAAIA,MAAM,CAACC,GAAX;AAAA,GADG,EAEbC,MAFa,CAENC,OAFM,EAGbC,IAHa,EAAhB;AAKA,MAAMC,aAAa,IAAIC,yBAAJ,6CAAuBT,OAAvB,EAAnB;AAEA,sBACE,gCAAC,kBAAD;AACE,IAAA,KAAK,YAAKN,KAAK,IAAIC,IAAd,CADP;AAEE,IAAA,KAAK,EAAEI,WAFT;AAGE,IAAA,EAAE,EAAEJ,IAHN;AAIE,IAAA,OAAO,EAAEa,aAJX;AAKE,IAAA,QAAQ,EAAE,yBAAe;AAAA,UAAZE,KAAY,SAAZA,KAAY;AACvBd,MAAAA,kBAAkB,sCAAID,IAAJ,EAAWe,KAAX,GAAoBZ,YAApB,CAAlB;AACD;AAPH,IADF;AAWD,CArBD;;AAuBAN,YAAY,CAACmB,SAAb,GAAyB;AACvBlB,EAAAA,IAAI,EAAEmB,sBAAUC,MAAV,CAAiBC,UADA;AAEvBnB,EAAAA,IAAI,EAAEiB,sBAAUG,MAAV,CAAiBD,UAFA;AAGvBjB,EAAAA,YAAY,EAAEe,sBAAUC,MAAV,CAAiBC,UAHR;AAIvBlB,EAAAA,kBAAkB,EAAEgB,sBAAUI,IAAV,CAAeF,UAJZ;AAKvBhB,EAAAA,YAAY,EAAEc,sBAAUK,IALD;AAMvBvB,EAAAA,KAAK,EAAEkB,sBAAUG;AANM,CAAzB;AASAvB,YAAY,CAAC0B,YAAb,GAA4B;AAC1BpB,EAAAA,YAAY,EAAE,KADY;AAE1BJ,EAAAA,KAAK,EAAE;AAFmB,CAA5B;;eAKe,oBAAUF,YAAV,C","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"}
@@ -15,7 +15,7 @@ require("core-js/modules/es.array.for-each.js");
15
15
 
16
16
  require("core-js/modules/web.dom-collections.for-each.js");
17
17
 
18
- require("core-js/modules/es.array.map.js");
18
+ require("core-js/modules/es.array.includes.js");
19
19
 
20
20
  require("core-js/modules/es.array.join.js");
21
21
 
@@ -31,12 +31,13 @@ var buildQuery = function buildQuery(filterValues, filters) {
31
31
  var propsToDisplay = _ref.propsToDisplay,
32
32
  type = _ref.type;
33
33
  if (type === _constants.TEXT_SEARCH) return;
34
- propsToDisplay.map(function (prop) {
34
+ propsToDisplay.forEach(function (prop) {
35
35
  var value = filterValues[prop];
36
36
  var parsedValue = (0, _parseFilterValue["default"])(prop, type, value);
37
- if (!parsedValue) return null;
38
- if (parsedValue) newQuery.push(parsedValue);
39
- return parsedValue;
37
+
38
+ if (parsedValue && !newQuery.includes(parsedValue)) {
39
+ newQuery.push(parsedValue);
40
+ }
40
41
  });
41
42
  });
42
43
  return newQuery.join('&');