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

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 (29) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/lib/components/Banner/helpers.js +1 -1
  3. package/lib/components/Banner/helpers.js.map +1 -1
  4. package/lib/components/Button.js +4 -0
  5. package/lib/components/Button.js.map +1 -1
  6. package/lib/components/SearchFilter/SearchFilterContainer.js +9 -3
  7. package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  8. package/lib/components/SearchFilter/components/Range.js +2 -3
  9. package/lib/components/SearchFilter/components/Range.js.map +1 -1
  10. package/lib/components/SearchFilter/helpers/build-filters-query.js +24 -6
  11. package/lib/components/SearchFilter/helpers/build-filters-query.js.map +1 -1
  12. package/lib-es/components/Banner/helpers.js +1 -1
  13. package/lib-es/components/Banner/helpers.js.map +1 -1
  14. package/lib-es/components/Button.js +4 -1
  15. package/lib-es/components/Button.js.map +1 -1
  16. package/lib-es/components/SearchFilter/SearchFilterContainer.js +7 -1
  17. package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  18. package/lib-es/components/SearchFilter/components/Range.js +2 -3
  19. package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
  20. package/lib-es/components/SearchFilter/helpers/build-filters-query.js +25 -6
  21. package/lib-es/components/SearchFilter/helpers/build-filters-query.js.map +1 -1
  22. package/package.json +2 -2
  23. package/src/components/Banner/helpers.js +1 -5
  24. package/src/components/Button.js +8 -1
  25. package/src/components/SearchFilter/SearchFilterContainer.js +7 -1
  26. package/src/components/SearchFilter/components/Range.js +11 -14
  27. package/src/components/SearchFilter/helpers/build-filters-query.js +7 -6
  28. package/tests/unit/src/components/Banner/helpers.test.js +1 -1
  29. package/tests/unit/src/components/Button.test.js +4 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,37 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [0.124.1](https://github.com/thebyte9/blaze/compare/v0.124.1-alpha.5...v0.124.1) (2022-09-06)
7
+
8
+ **Note:** Version bump only for package @blaze-cms/react-page-builder
9
+
10
+
11
+
12
+
13
+
14
+ ## [0.124.1-alpha.5](https://github.com/thebyte9/blaze/compare/v0.124.1-alpha.4...v0.124.1-alpha.5) (2022-09-05)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * unpersist show/hide when navigating to next page ([#3584](https://github.com/thebyte9/blaze/issues/3584)) ([5ea63ce](https://github.com/thebyte9/blaze/commit/5ea63cefd780bf3e9e85c1471571c58a1170a473))
20
+ * use arrays for banner targetting ([#3579](https://github.com/thebyte9/blaze/issues/3579)) ([fd78f18](https://github.com/thebyte9/blaze/commit/fd78f189ba4bde01147be2d3021bdf1c17a27d58))
21
+
22
+
23
+
24
+
25
+
26
+ ## [0.124.1-alpha.3](https://github.com/thebyte9/blaze/compare/v0.124.1-alpha.2...v0.124.1-alpha.3) (2022-08-25)
27
+
28
+
29
+ ### Bug Fixes
30
+
31
+ * search filter handles range values, show range filter even when min/max are the same ([#3568](https://github.com/thebyte9/blaze/issues/3568)) ([0c7e561](https://github.com/thebyte9/blaze/commit/0c7e561bd4bbd8fff9968dfa373cfa66ffc7a8ae))
32
+
33
+
34
+
35
+
36
+
6
37
  ## [0.124.1-alpha.2](https://github.com/thebyte9/blaze/compare/v0.124.1-alpha.1...v0.124.1-alpha.2) (2022-08-23)
7
38
 
8
39
 
@@ -292,7 +292,7 @@ exports.buildPropsData = buildPropsData;
292
292
  var parseArrayValues = function parseArrayValues(arr, key) {
293
293
  return arr.map(function (obj) {
294
294
  return obj[key];
295
- }).filter(Boolean).join(', ');
295
+ }).filter(Boolean);
296
296
  };
297
297
 
298
298
  var getNestedValue = function getNestedValue(keys, object) {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["getParsedSizes","sizes","sanitizedSizes","replace","toLowerCase","sizeGroups","split","map","group","Number","addPosnToTargetings","targetings","index","posn","buildTargetingValue","valueTargeting","includes","char","setCustomTargetings","cardBannerIndex","bannerTargetings","updatedTargetings","isValidTargeting","customTargeting","splitTargeting","Object","keys","forEach","key","keyTargeting","buildParsedAdunit","path","countContentHierarchies","baseAdunit","adunit","isInteger","base","process","env","DFP_BASE_ADUNIT","hasChildren","parseUrl","url","urlParts","filter","Boolean","urlPart","slice","length","join","endAdunit","END_ADUNIT","getBannerSizes","sizeId","bannerSizes","width","height","buildBannerSizes","parsedSizes","buildContextualTargeting","actionKey","props","propsToDisplay","data","buildPropsData","buildSizeMapping","sizeMapping","groupedViewports","reduce","acc","viewports","size","viewportWidth","viewportHeight","push","keyGroupedViewport","viewport","getMaxBannerHeight","Array","isArray","Math","max","o","MAX_BANNER_HEIGHT","getMinBannerHeight","min","MIN_BANNER_HEIGHT","buildUserQuery","userProps","basicProps","nestedProps","propertiesToDisplay","propKey","indexOf","baseProp","nestedProp","nestedKey","nested","prop","propsWithData","label","parsedKey","value","getNestedValue","labelToUse","parseArrayValues","arr","obj","object","shift","nestedValue"],"sources":["../../../src/components/Banner/helpers.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n const data = props[actionKey][0];\n return buildPropsData(data, propsToDisplay);\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\nconst buildUserQuery = userProps => {\n if (!userProps || !userProps.length) return '';\n const basicProps = [];\n const nestedProps = {};\n userProps.forEach(({ propertiesToDisplay }) => {\n const [propKey] = propertiesToDisplay;\n if (!propKey || propKey === 'id') return;\n if (propKey.indexOf('.') !== -1) {\n const [baseProp, nestedProp] = propKey.split('.');\n if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);\n else nestedProps[baseProp] = [nestedProp];\n } else basicProps.push(propKey);\n });\n\n Object.keys(nestedProps).forEach(nestedKey => {\n const nested = nestedProps[nestedKey];\n basicProps.push(nestedKey);\n basicProps.push('{');\n nested.forEach(prop => basicProps.push(prop));\n basicProps.push('}');\n });\n\n return basicProps.join(' ');\n};\n\nconst buildPropsData = (data, props) => {\n if (!data || !props.length) return {};\n const propsWithData = {};\n\n props.forEach(({ propertiesToDisplay, label }) => {\n const [key] = propertiesToDisplay;\n if (!key) return;\n\n const parsedKey = key.split('.');\n const value = getNestedValue(parsedKey, data);\n const labelToUse = label || key;\n\n propsWithData[labelToUse] = value;\n });\n return propsWithData;\n};\n\nconst parseArrayValues = (arr, key) =>\n arr\n .map(obj => obj[key])\n .filter(Boolean)\n .join(', ');\n\nconst getNestedValue = (keys, object) => {\n const key = keys.shift();\n const nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];\n if (!nestedValue) return null;\n return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;\n};\n\nexport {\n getParsedSizes,\n setCustomTargetings,\n buildParsedAdunit,\n buildBannerSizes,\n buildContextualTargeting,\n buildSizeMapping,\n getMaxBannerHeight,\n getMinBannerHeight,\n buildPropsData,\n buildUserQuery\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["getParsedSizes","sizes","sanitizedSizes","replace","toLowerCase","sizeGroups","split","map","group","Number","addPosnToTargetings","targetings","index","posn","buildTargetingValue","valueTargeting","includes","char","setCustomTargetings","cardBannerIndex","bannerTargetings","updatedTargetings","isValidTargeting","customTargeting","splitTargeting","Object","keys","forEach","key","keyTargeting","buildParsedAdunit","path","countContentHierarchies","baseAdunit","adunit","isInteger","base","process","env","DFP_BASE_ADUNIT","hasChildren","parseUrl","url","urlParts","filter","Boolean","urlPart","slice","length","join","endAdunit","END_ADUNIT","getBannerSizes","sizeId","bannerSizes","width","height","buildBannerSizes","parsedSizes","buildContextualTargeting","actionKey","props","propsToDisplay","data","buildPropsData","buildSizeMapping","sizeMapping","groupedViewports","reduce","acc","viewports","size","viewportWidth","viewportHeight","push","keyGroupedViewport","viewport","getMaxBannerHeight","Array","isArray","Math","max","o","MAX_BANNER_HEIGHT","getMinBannerHeight","min","MIN_BANNER_HEIGHT","buildUserQuery","userProps","basicProps","nestedProps","propertiesToDisplay","propKey","indexOf","baseProp","nestedProp","nestedKey","nested","prop","propsWithData","label","parsedKey","value","getNestedValue","labelToUse","parseArrayValues","arr","obj","object","shift","nestedValue"],"sources":["../../../src/components/Banner/helpers.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n const data = props[actionKey][0];\n return buildPropsData(data, propsToDisplay);\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\nconst buildUserQuery = userProps => {\n if (!userProps || !userProps.length) return '';\n const basicProps = [];\n const nestedProps = {};\n userProps.forEach(({ propertiesToDisplay }) => {\n const [propKey] = propertiesToDisplay;\n if (!propKey || propKey === 'id') return;\n if (propKey.indexOf('.') !== -1) {\n const [baseProp, nestedProp] = propKey.split('.');\n if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);\n else nestedProps[baseProp] = [nestedProp];\n } else basicProps.push(propKey);\n });\n\n Object.keys(nestedProps).forEach(nestedKey => {\n const nested = nestedProps[nestedKey];\n basicProps.push(nestedKey);\n basicProps.push('{');\n nested.forEach(prop => basicProps.push(prop));\n basicProps.push('}');\n });\n\n return basicProps.join(' ');\n};\n\nconst buildPropsData = (data, props) => {\n if (!data || !props.length) return {};\n const propsWithData = {};\n\n props.forEach(({ propertiesToDisplay, label }) => {\n const [key] = propertiesToDisplay;\n if (!key) return;\n\n const parsedKey = key.split('.');\n const value = getNestedValue(parsedKey, data);\n const labelToUse = label || key;\n\n propsWithData[labelToUse] = value;\n });\n return propsWithData;\n};\n\nconst parseArrayValues = (arr, key) => arr.map(obj => obj[key]).filter(Boolean);\n\nconst getNestedValue = (keys, object) => {\n const key = keys.shift();\n const nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];\n if (!nestedValue) return null;\n return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;\n};\n\nexport {\n getParsedSizes,\n setCustomTargetings,\n buildParsedAdunit,\n buildBannerSizes,\n buildContextualTargeting,\n buildSizeMapping,\n getMaxBannerHeight,\n getMinBannerHeight,\n buildPropsData,\n buildUserQuery\n};\n"],"mappings":"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"}
@@ -112,6 +112,10 @@ var Button = function Button(props) {
112
112
  showChildren = _useState2[0],
113
113
  setShowChildren = _useState2[1];
114
114
 
115
+ (0, _react.useEffect)(function () {
116
+ setShowChildren(false);
117
+ }, [router.asPath]);
118
+
115
119
  var checkIfButtonShouldRender = function checkIfButtonShouldRender() {
116
120
  if (isLogoutButton) return !!blazeCookie;
117
121
  if (!text && !icon) return false;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","otherProps","client","useApolloClient","router","useRouter","isLogoutButton","LOGOUT","useCookies","cookies","blazeCookie","blaze_auth","useState","showChildren","setShowChildren","checkIfButtonShouldRender","hasChildren","logout","handleLogout","reload","handleClick","buttonType","modifiers","getClassModifiers","currentProps","href","title","DynamicButton","BlazeLink","BlazeButton","updateChildrensParent","parent","itemId","itemEntity","renderedChildren","renderChildren","onClose","getClickWrapperOptions","shouldUseClickWrapper","wrapperProps","Wrapper","ClickWrapper","Fragment","contentClassName","classnames","propTypes","PropTypes","string","size","bool","oneOfType","arrayOf","node","defaultProps","withTitle"],"sources":["../../src/components/Button.js"],"sourcesContent":["import React, { useState, Fragment } from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useRouter } from 'next/router';\nimport classnames from 'classnames';\nimport BlazeButton from '@blaze-react/button';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes, { bool, string } from 'prop-types';\nimport ClickWrapper from './ClickWrapper';\nimport BlazeLink from './BlazeLink';\nimport { withTitle } from '../HOC';\nimport { getClassModifiers } from '../utils';\nimport { LOGOUT } from '../constants';\nimport {\n renderChildren,\n updateChildrensParent,\n hasChildren,\n getClickWrapperOptions\n} from '../helpers';\n\nconst Button = props => {\n const {\n type,\n text,\n url,\n icon,\n name,\n style,\n children,\n clickAction,\n childSeoVisibility,\n afterClickText,\n ...otherProps\n } = props;\n const client = useApolloClient();\n const router = useRouter();\n const isLogoutButton = clickAction === LOGOUT;\n const [cookies] = useCookies();\n const { blaze_auth: blazeCookie } = cookies;\n const [showChildren, setShowChildren] = useState(false);\n\n const checkIfButtonShouldRender = () => {\n if (isLogoutButton) return !!blazeCookie;\n if (!text && !icon) return false;\n return !!(url || hasChildren(children));\n };\n\n const logout = () => {\n handleLogout(client);\n url ? router.reload(url) : router.reload();\n };\n\n const handleClick = () => {\n if (isLogoutButton) logout();\n if (!url && !isLogoutButton) setShowChildren(!showChildren);\n };\n\n if (!checkIfButtonShouldRender()) return null;\n\n const buttonType = !text && icon ? 'icon' : type;\n const modifiers = getClassModifiers(buttonType, { icon, style, ...otherProps });\n const currentProps = url ? { href: url, title: name } : { name };\n const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;\n updateChildrensParent(children, otherProps.parent.itemId, otherProps.parent.itemEntity);\n\n const renderedChildren = renderChildren(children, { onClose: handleClick });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(children, props);\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const contentClassName = classnames('button__content', {\n 'button__content--show': showChildren\n });\n\n return (\n <Wrapper {...wrapperProps}>\n {childSeoVisibility && <div className={contentClassName}>{renderedChildren}</div>}\n {!childSeoVisibility && showChildren && renderedChildren}\n <DynamicButton className={modifiers} onClick={handleClick} {...currentProps}>\n {icon && <i className={icon} />}\n {showChildren ? afterClickText : text}\n </DynamicButton>\n </Wrapper>\n );\n};\n\nButton.propTypes = {\n clickAction: PropTypes.string,\n text: PropTypes.string,\n afterClickText: string,\n name: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n size: PropTypes.string,\n icon: PropTypes.string,\n style: PropTypes.string,\n childSeoVisibility: bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nButton.defaultProps = {\n clickAction: '',\n text: '',\n afterClickText: '',\n name: '',\n type: '',\n url: null,\n size: '',\n icon: '',\n style: '',\n children: [],\n childSeoVisibility: false\n};\n\nexport default withTitle(Button);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","names":["Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","otherProps","client","useApolloClient","router","useRouter","isLogoutButton","LOGOUT","useCookies","cookies","blazeCookie","blaze_auth","useState","showChildren","setShowChildren","useEffect","asPath","checkIfButtonShouldRender","hasChildren","logout","handleLogout","reload","handleClick","buttonType","modifiers","getClassModifiers","currentProps","href","title","DynamicButton","BlazeLink","BlazeButton","updateChildrensParent","parent","itemId","itemEntity","renderedChildren","renderChildren","onClose","getClickWrapperOptions","shouldUseClickWrapper","wrapperProps","Wrapper","ClickWrapper","Fragment","contentClassName","classnames","propTypes","PropTypes","string","size","bool","oneOfType","arrayOf","node","defaultProps","withTitle"],"sources":["../../src/components/Button.js"],"sourcesContent":["import React, { useState, Fragment, useEffect } from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useRouter } from 'next/router';\nimport classnames from 'classnames';\nimport BlazeButton from '@blaze-react/button';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes, { bool, string } from 'prop-types';\nimport ClickWrapper from './ClickWrapper';\nimport BlazeLink from './BlazeLink';\nimport { withTitle } from '../HOC';\nimport { getClassModifiers } from '../utils';\nimport { LOGOUT } from '../constants';\nimport {\n renderChildren,\n updateChildrensParent,\n hasChildren,\n getClickWrapperOptions\n} from '../helpers';\n\nconst Button = props => {\n const {\n type,\n text,\n url,\n icon,\n name,\n style,\n children,\n clickAction,\n childSeoVisibility,\n afterClickText,\n ...otherProps\n } = props;\n const client = useApolloClient();\n const router = useRouter();\n const isLogoutButton = clickAction === LOGOUT;\n const [cookies] = useCookies();\n const { blaze_auth: blazeCookie } = cookies;\n const [showChildren, setShowChildren] = useState(false);\n\n useEffect(\n () => {\n setShowChildren(false);\n },\n [router.asPath]\n );\n\n const checkIfButtonShouldRender = () => {\n if (isLogoutButton) return !!blazeCookie;\n if (!text && !icon) return false;\n return !!(url || hasChildren(children));\n };\n\n const logout = () => {\n handleLogout(client);\n url ? router.reload(url) : router.reload();\n };\n\n const handleClick = () => {\n if (isLogoutButton) logout();\n if (!url && !isLogoutButton) setShowChildren(!showChildren);\n };\n\n if (!checkIfButtonShouldRender()) return null;\n\n const buttonType = !text && icon ? 'icon' : type;\n const modifiers = getClassModifiers(buttonType, { icon, style, ...otherProps });\n const currentProps = url ? { href: url, title: name } : { name };\n const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;\n updateChildrensParent(children, otherProps.parent.itemId, otherProps.parent.itemEntity);\n\n const renderedChildren = renderChildren(children, { onClose: handleClick });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(children, props);\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const contentClassName = classnames('button__content', {\n 'button__content--show': showChildren\n });\n\n return (\n <Wrapper {...wrapperProps}>\n {childSeoVisibility && <div className={contentClassName}>{renderedChildren}</div>}\n {!childSeoVisibility && showChildren && renderedChildren}\n <DynamicButton className={modifiers} onClick={handleClick} {...currentProps}>\n {icon && <i className={icon} />}\n {showChildren ? afterClickText : text}\n </DynamicButton>\n </Wrapper>\n );\n};\n\nButton.propTypes = {\n clickAction: PropTypes.string,\n text: PropTypes.string,\n afterClickText: string,\n name: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n size: PropTypes.string,\n icon: PropTypes.string,\n style: PropTypes.string,\n childSeoVisibility: bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nButton.defaultProps = {\n clickAction: '',\n text: '',\n afterClickText: '',\n name: '',\n type: '',\n url: null,\n size: '',\n icon: '',\n style: '',\n children: [],\n childSeoVisibility: false\n};\n\nexport default withTitle(Button);\n"],"mappings":"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"}
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- require("core-js/modules/es.object.keys.js");
4
-
5
3
  require("core-js/modules/es.symbol.js");
6
4
 
7
5
  require("core-js/modules/es.array.filter.js");
@@ -47,6 +45,8 @@ require("core-js/modules/es.array.includes.js");
47
45
 
48
46
  require("core-js/modules/es.string.includes.js");
49
47
 
48
+ require("core-js/modules/es.object.keys.js");
49
+
50
50
  require("core-js/modules/es.date.now.js");
51
51
 
52
52
  require("core-js/modules/es.date.to-string.js");
@@ -185,7 +185,13 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
185
185
  var _getEntityData = (0, _helpers2.getEntityData)(entity),
186
186
  docType = _getEntityData.docType;
187
187
 
188
- var filtersQuery = shouldAddFilters ? (0, _helpers.buildFiltersQuery)(filterValues || query, filterBy, filterByProperty, rangeValues) : [];
188
+ var filtersQuery = shouldAddFilters ? (0, _helpers.buildFiltersQuery)({
189
+ query: filterValues,
190
+ filterBy: filterBy,
191
+ filterByProperty: filterByProperty,
192
+ rangeValues: rangeValues,
193
+ queryKeys: Object.keys(query)
194
+ }) : [];
189
195
  var rawQueryStringified = (0, _helpers.buildRawQueryStringified)(checkboxSelectValues, rangeValues, docType, filtersQuery);
190
196
 
191
197
  var _useQuery = (0, _client.useQuery)(action, {
@@ -1 +1 @@
1
- {"version":3,"file":"SearchFilterContainer.js","names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","useRouter","asPath","searchFilterRef","useRef","useState","key","setKey","displaySearchFilter","setDisplaySearchFilter","urlPath","setUrlPath","parseUrl","currentUrl","query","sort","sortby","useReducer","getInitialFilterValues","filterValues","dispatch","useEffect","hasUrl","sortValues","stringify","baseQuery","getSearchPublishedContent","RAW_RESULTS","checkboxSelectValues","rangeValues","forEach","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","getEntityData","docType","filtersQuery","buildFiltersQuery","rawQueryStringified","buildRawQueryStringified","useQuery","variables","limit","skip","data","error","message","length","searchPublishedContent","rawResults","filterData","aggregations","dataNotSet","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","buildNewQuery","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps","withTitle"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer, useEffect } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\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 buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } 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: false };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const [urlPath, setUrlPath] = useState(asPath); // used as asPath can take too long to update\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(urlPath);\n const [filterValues, dispatch] = useReducer(\n reducer,\n getInitialFilterValues(null, filters, query)\n );\n\n useEffect(\n () => {\n if (asPath) setUrlPath(asPath);\n },\n [asPath]\n );\n\n const hasUrl = !!url;\n\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\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 const filtersQuery = shouldAddFilters\n ? buildFiltersQuery(filterValues || query, filterBy, filterByProperty, rangeValues)\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = 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 (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (filterValues.dataNotSet && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n setUrlPath(baseQuery);\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 setUrlPath(newUrl);\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 if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\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 filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":"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"}
1
+ {"version":3,"file":"SearchFilterContainer.js","names":["reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","useRouter","asPath","searchFilterRef","useRef","useState","key","setKey","displaySearchFilter","setDisplaySearchFilter","urlPath","setUrlPath","parseUrl","currentUrl","query","sort","sortby","useReducer","getInitialFilterValues","filterValues","dispatch","useEffect","hasUrl","sortValues","stringify","baseQuery","getSearchPublishedContent","RAW_RESULTS","checkboxSelectValues","rangeValues","forEach","propsToDisplay","CHECKBOX_SELECT","includes","push","RANGE","getEntityData","docType","filtersQuery","buildFiltersQuery","queryKeys","Object","keys","rawQueryStringified","buildRawQueryStringified","useQuery","variables","limit","skip","data","error","message","length","searchPublishedContent","rawResults","filterData","aggregations","dataNotSet","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","buildNewQuery","document","getElementsByClassName","list","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","SCROLL_OFFSET","getBoundingClientRect","propTypes","PropTypes","string","array","isRequired","bool","number","defaultProps","withTitle"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer, useEffect } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\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 buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } 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: false };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const [urlPath, setUrlPath] = useState(asPath); // used as asPath can take too long to update\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(urlPath);\n const [filterValues, dispatch] = useReducer(\n reducer,\n getInitialFilterValues(null, filters, query)\n );\n\n useEffect(\n () => {\n if (asPath) setUrlPath(asPath);\n },\n [asPath]\n );\n\n const hasUrl = !!url;\n\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\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 const filtersQuery = shouldAddFilters\n ? buildFiltersQuery({\n query: filterValues,\n filterBy,\n filterByProperty,\n rangeValues,\n queryKeys: Object.keys(query)\n })\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = 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 (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (filterValues.dataNotSet && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n setUrlPath(baseQuery);\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 setUrlPath(newUrl);\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 if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\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 filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":"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"}
@@ -67,7 +67,7 @@ var Range = function Range(_ref) {
67
67
  filterValues = _ref.filterValues,
68
68
  shouldSearch = _ref.shouldSearch;
69
69
  var router = (0, _router.useRouter)();
70
- var debounceAmount = shouldSearch ? 1200 : 100;
70
+ var debounceAmount = shouldSearch ? 1200 : 400;
71
71
 
72
72
  var _parseUrl = (0, _queryString.parseUrl)((0, _decodeEncode.decodeValue)(router.asPath)),
73
73
  query = _parseUrl.query;
@@ -91,7 +91,6 @@ var Range = function Range(_ref) {
91
91
  min = _calculateMinMax.min,
92
92
  max = _calculateMinMax.max;
93
93
 
94
- var shouldShowRange = rangeOption && min !== max;
95
94
  var minValue = rangeValue.minValue < min ? min : rangeValue.minValue;
96
95
  var maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;
97
96
 
@@ -126,7 +125,7 @@ var Range = function Range(_ref) {
126
125
  });
127
126
  updateFilterValues(updatedOptions, false);
128
127
  }
129
- })), shouldShowRange && /*#__PURE__*/_react["default"].createElement(_rangeFilter["default"], {
128
+ })), /*#__PURE__*/_react["default"].createElement(_rangeFilter["default"], {
130
129
  key: "".concat(rangeOption, "-").concat(minValue, "-").concat(maxValue),
131
130
  name: rangeOption,
132
131
  label: hasMultipleOptions ? '' : label,
@@ -1 +1 @@
1
- {"version":3,"file":"Range.js","names":["Range","rangeInterval","label","entity","propsToDisplay","dataAggregations","updateFilterValues","filterValues","shouldSearch","router","useRouter","debounceAmount","parseUrl","decodeValue","asPath","query","hasMultipleOptions","length","initialRangeOption","getIntersectedProp","rangeOption","selectedOption","rangeValue","useGetSingleEntitySchema","data","getEntitySchema","loading","options","getSelectOptions","calculateMinMax","min","max","shouldShowRange","minValue","maxValue","valueToUse","handleChange","debounce","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","getRangeValue","propTypes","PropTypes","array","isRequired","string","object","func","bool","number","defaultProps","withTitle"],"sources":["../../../../src/components/SearchFilter/components/Range.js"],"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, calculateMinMax } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n dataAggregations,\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 // get range from aggregations so it updates\n const { min, max } = calculateMinMax(dataAggregations[rangeOption], rangeInterval);\n const shouldShowRange = rangeOption && min !== max;\n const minValue = rangeValue.minValue < min ? min : rangeValue.minValue;\n const maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;\n const valueToUse = { ...rangeValue, min, max, minValue, maxValue };\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}-${minValue}-${maxValue}`}\n name={rangeOption}\n label={hasMultipleOptions ? '' : label}\n value={valueToUse}\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 dataAggregations: PropTypes.object.isRequired\n};\n\nRange.defaultProps = {\n shouldSearch: false,\n rangeInterval: 1,\n label: ''\n};\n\nexport default withTitle(Range);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Range.js","names":["Range","rangeInterval","label","entity","propsToDisplay","dataAggregations","updateFilterValues","filterValues","shouldSearch","router","useRouter","debounceAmount","parseUrl","decodeValue","asPath","query","hasMultipleOptions","length","initialRangeOption","getIntersectedProp","rangeOption","selectedOption","rangeValue","useGetSingleEntitySchema","data","getEntitySchema","loading","options","getSelectOptions","calculateMinMax","min","max","minValue","maxValue","valueToUse","handleChange","debounce","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","getRangeValue","propTypes","PropTypes","array","isRequired","string","object","func","bool","number","defaultProps","withTitle"],"sources":["../../../../src/components/SearchFilter/components/Range.js"],"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, calculateMinMax } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n dataAggregations,\n updateFilterValues,\n filterValues,\n shouldSearch\n}) => {\n const router = useRouter();\n const debounceAmount = shouldSearch ? 1200 : 400;\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 // get range from aggregations so it updates\n const { min, max } = calculateMinMax(dataAggregations[rangeOption], rangeInterval);\n const minValue = rangeValue.minValue < min ? min : rangeValue.minValue;\n const maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;\n const valueToUse = { ...rangeValue, min, max, minValue, maxValue };\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 <RangeFilter\n key={`${rangeOption}-${minValue}-${maxValue}`}\n name={rangeOption}\n label={hasMultipleOptions ? '' : label}\n value={valueToUse}\n id={rangeOption}\n onChange={({ value }) => {\n handleChange(rangeOption, value);\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 dataAggregations: PropTypes.object.isRequired\n};\n\nRange.defaultProps = {\n shouldSearch: false,\n rangeInterval: 1,\n label: ''\n};\n\nexport default withTitle(Range);\n"],"mappings":"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"}
@@ -37,14 +37,20 @@ require("core-js/modules/es.array.index-of.js");
37
37
 
38
38
  var QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];
39
39
 
40
- var builFilterObject = function builFilterObject(queryKey, value, filters, isRange) {
40
+ var builFilterObject = function builFilterObject(_ref) {
41
+ var queryKey = _ref.queryKey,
42
+ value = _ref.value,
43
+ filters = _ref.filters,
44
+ isRange = _ref.isRange,
45
+ isInQuery = _ref.isInQuery;
46
+
41
47
  if (isRange) {
42
48
  // don't add to query if value matches range values
43
- if (value.min !== value.minValue && value.max !== value.maxValue) {
49
+ if (isInQuery || value.min !== value.minValue && value.max !== value.maxValue) {
44
50
  filters.push({
45
51
  range: (0, _defineProperty2["default"])({}, queryKey, {
46
- gte: Number(value.min),
47
- lte: Number(value.max)
52
+ gte: Number(value.minValue),
53
+ lte: Number(value.maxValue)
48
54
  })
49
55
  });
50
56
  }
@@ -70,14 +76,26 @@ var builFilterObject = function builFilterObject(queryKey, value, filters, isRan
70
76
  });
71
77
  };
72
78
 
73
- var buildFiltersQuery = function buildFiltersQuery(query, filterBy, filterByProperty, rangeValues) {
79
+ var buildFiltersQuery = function buildFiltersQuery(_ref2) {
80
+ var query = _ref2.query,
81
+ filterBy = _ref2.filterBy,
82
+ filterByProperty = _ref2.filterByProperty,
83
+ rangeValues = _ref2.rangeValues,
84
+ queryKeys = _ref2.queryKeys;
74
85
  var mustFilters = [];
75
86
  Object.keys(query).forEach(function (queryKey) {
76
87
  if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;
77
88
  if (!queryKey || !query[queryKey]) return;
78
89
  var queryValue = query[queryKey];
79
90
  var isRange = rangeValues.includes(queryKey);
80
- builFilterObject(queryKey, queryValue, mustFilters, isRange);
91
+ var isInQuery = queryKeys.includes(queryKey);
92
+ builFilterObject({
93
+ queryKey: queryKey,
94
+ value: queryValue,
95
+ filters: mustFilters,
96
+ isRange: isRange,
97
+ isInQuery: isInQuery
98
+ });
81
99
  });
82
100
 
83
101
  if (filterByProperty && filterByProperty.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"build-filters-query.js","names":["QUERY_KEYS_TO_IGNORE","builFilterObject","queryKey","value","filters","isRange","min","minValue","max","maxValue","push","range","gte","Number","lte","key","isArray","Array","singleFilterObj","match","forEach","filterValue","buildFiltersQuery","query","filterBy","filterByProperty","rangeValues","mustFilters","Object","keys","includes","queryValue","length","filterByPropOption","split","filterByPropKey","filterByOption","indexOf","filteryByValue","filterByKeyword"],"sources":["../../../../src/components/SearchFilter/helpers/build-filters-query.js"],"sourcesContent":["const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];\n\nconst builFilterObject = (queryKey, value, filters, isRange) => {\n if (isRange) {\n // don't add to query if value matches range values\n if (value.min !== value.minValue && value.max !== value.maxValue) {\n filters.push({\n range: {\n [queryKey]: {\n gte: Number(value.min),\n lte: Number(value.max)\n }\n }\n });\n }\n return;\n }\n\n const key = isRange ? queryKey : `${queryKey}.keyword`;\n\n const isArray = Array.isArray(value);\n if (!isArray) {\n const singleFilterObj = { match: { [key]: value } };\n filters.push(singleFilterObj);\n return;\n }\n\n value.forEach(filterValue => {\n filters.push({ match: { [key]: filterValue } });\n });\n};\nconst buildFiltersQuery = (query, filterBy, filterByProperty, rangeValues) => {\n const mustFilters = [];\n Object.keys(query).forEach(queryKey => {\n if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;\n if (!queryKey || !query[queryKey]) return;\n const queryValue = query[queryKey];\n\n const isRange = rangeValues.includes(queryKey);\n builFilterObject(queryKey, queryValue, mustFilters, isRange);\n });\n\n if (filterByProperty && filterByProperty.length) {\n filterByProperty &&\n filterByProperty.forEach(filterByPropOption => {\n const [filterByPropKey] = filterByPropOption.split('/');\n filterBy.forEach(filterByOption => {\n if (filterByOption.indexOf(filterByPropKey) === -1) return;\n const [, filteryByValue] = filterByOption.split('/');\n const filterByKeyword = `${filterByPropKey}.keyword`;\n if (!filteryByValue) return;\n mustFilters.push({ match: { [filterByKeyword]: filteryByValue } });\n });\n });\n }\n\n return mustFilters;\n};\n\nexport default buildFiltersQuery;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAMA,oBAAoB,GAAG,CAAC,YAAD,EAAe,cAAf,EAA+B,aAA/B,CAA7B;;AAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,QAAD,EAAWC,KAAX,EAAkBC,OAAlB,EAA2BC,OAA3B,EAAuC;EAC9D,IAAIA,OAAJ,EAAa;IACX;IACA,IAAIF,KAAK,CAACG,GAAN,KAAcH,KAAK,CAACI,QAApB,IAAgCJ,KAAK,CAACK,GAAN,KAAcL,KAAK,CAACM,QAAxD,EAAkE;MAChEL,OAAO,CAACM,IAAR,CAAa;QACXC,KAAK,uCACFT,QADE,EACS;UACVU,GAAG,EAAEC,MAAM,CAACV,KAAK,CAACG,GAAP,CADD;UAEVQ,GAAG,EAAED,MAAM,CAACV,KAAK,CAACK,GAAP;QAFD,CADT;MADM,CAAb;IAQD;;IACD;EACD;;EAED,IAAMO,GAAG,GAAGV,OAAO,GAAGH,QAAH,aAAiBA,QAAjB,aAAnB;EAEA,IAAMc,OAAO,GAAGC,KAAK,CAACD,OAAN,CAAcb,KAAd,CAAhB;;EACA,IAAI,CAACa,OAAL,EAAc;IACZ,IAAME,eAAe,GAAG;MAAEC,KAAK,uCAAKJ,GAAL,EAAWZ,KAAX;IAAP,CAAxB;IACAC,OAAO,CAACM,IAAR,CAAaQ,eAAb;IACA;EACD;;EAEDf,KAAK,CAACiB,OAAN,CAAc,UAAAC,WAAW,EAAI;IAC3BjB,OAAO,CAACM,IAAR,CAAa;MAAES,KAAK,uCAAKJ,GAAL,EAAWM,WAAX;IAAP,CAAb;EACD,CAFD;AAGD,CA5BD;;AA6BA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,KAAD,EAAQC,QAAR,EAAkBC,gBAAlB,EAAoCC,WAApC,EAAoD;EAC5E,IAAMC,WAAW,GAAG,EAApB;EACAC,MAAM,CAACC,IAAP,CAAYN,KAAZ,EAAmBH,OAAnB,CAA2B,UAAAlB,QAAQ,EAAI;IACrC,IAAIF,oBAAoB,CAAC8B,QAArB,CAA8B5B,QAA9B,CAAJ,EAA6C;IAC7C,IAAI,CAACA,QAAD,IAAa,CAACqB,KAAK,CAACrB,QAAD,CAAvB,EAAmC;IACnC,IAAM6B,UAAU,GAAGR,KAAK,CAACrB,QAAD,CAAxB;IAEA,IAAMG,OAAO,GAAGqB,WAAW,CAACI,QAAZ,CAAqB5B,QAArB,CAAhB;IACAD,gBAAgB,CAACC,QAAD,EAAW6B,UAAX,EAAuBJ,WAAvB,EAAoCtB,OAApC,CAAhB;EACD,CAPD;;EASA,IAAIoB,gBAAgB,IAAIA,gBAAgB,CAACO,MAAzC,EAAiD;IAC/CP,gBAAgB,IACdA,gBAAgB,CAACL,OAAjB,CAAyB,UAAAa,kBAAkB,EAAI;MAC7C,4BAA0BA,kBAAkB,CAACC,KAAnB,CAAyB,GAAzB,CAA1B;MAAA;MAAA,IAAOC,eAAP;;MACAX,QAAQ,CAACJ,OAAT,CAAiB,UAAAgB,cAAc,EAAI;QACjC,IAAIA,cAAc,CAACC,OAAf,CAAuBF,eAAvB,MAA4C,CAAC,CAAjD,EAAoD;;QACpD,4BAA2BC,cAAc,CAACF,KAAf,CAAqB,GAArB,CAA3B;QAAA;QAAA,IAASI,cAAT;;QACA,IAAMC,eAAe,aAAMJ,eAAN,aAArB;QACA,IAAI,CAACG,cAAL,EAAqB;QACrBX,WAAW,CAACjB,IAAZ,CAAiB;UAAES,KAAK,uCAAKoB,eAAL,EAAuBD,cAAvB;QAAP,CAAjB;MACD,CAND;IAOD,CATD,CADF;EAWD;;EAED,OAAOX,WAAP;AACD,CA1BD;;eA4BeL,iB"}
1
+ {"version":3,"file":"build-filters-query.js","names":["QUERY_KEYS_TO_IGNORE","builFilterObject","queryKey","value","filters","isRange","isInQuery","min","minValue","max","maxValue","push","range","gte","Number","lte","key","isArray","Array","singleFilterObj","match","forEach","filterValue","buildFiltersQuery","query","filterBy","filterByProperty","rangeValues","queryKeys","mustFilters","Object","keys","includes","queryValue","length","filterByPropOption","split","filterByPropKey","filterByOption","indexOf","filteryByValue","filterByKeyword"],"sources":["../../../../src/components/SearchFilter/helpers/build-filters-query.js"],"sourcesContent":["const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];\n\nconst builFilterObject = ({ queryKey, value, filters, isRange, isInQuery }) => {\n if (isRange) {\n // don't add to query if value matches range values\n if (isInQuery || (value.min !== value.minValue && value.max !== value.maxValue)) {\n filters.push({\n range: {\n [queryKey]: {\n gte: Number(value.minValue),\n lte: Number(value.maxValue)\n }\n }\n });\n }\n return;\n }\n\n const key = isRange ? queryKey : `${queryKey}.keyword`;\n\n const isArray = Array.isArray(value);\n if (!isArray) {\n const singleFilterObj = { match: { [key]: value } };\n filters.push(singleFilterObj);\n return;\n }\n\n value.forEach(filterValue => {\n filters.push({ match: { [key]: filterValue } });\n });\n};\nconst buildFiltersQuery = ({ query, filterBy, filterByProperty, rangeValues, queryKeys }) => {\n const mustFilters = [];\n Object.keys(query).forEach(queryKey => {\n if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;\n if (!queryKey || !query[queryKey]) return;\n const queryValue = query[queryKey];\n\n const isRange = rangeValues.includes(queryKey);\n const isInQuery = queryKeys.includes(queryKey);\n builFilterObject({ queryKey, value: queryValue, filters: mustFilters, isRange, isInQuery });\n });\n\n if (filterByProperty && filterByProperty.length) {\n filterByProperty &&\n filterByProperty.forEach(filterByPropOption => {\n const [filterByPropKey] = filterByPropOption.split('/');\n filterBy.forEach(filterByOption => {\n if (filterByOption.indexOf(filterByPropKey) === -1) return;\n const [, filteryByValue] = filterByOption.split('/');\n const filterByKeyword = `${filterByPropKey}.keyword`;\n if (!filteryByValue) return;\n mustFilters.push({ match: { [filterByKeyword]: filteryByValue } });\n });\n });\n }\n\n return mustFilters;\n};\n\nexport default buildFiltersQuery;\n"],"mappings":"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"}
@@ -171,7 +171,7 @@ const buildPropsData = (data, props) => {
171
171
  return propsWithData;
172
172
  };
173
173
 
174
- const parseArrayValues = (arr, key) => arr.map(obj => obj[key]).filter(Boolean).join(', ');
174
+ const parseArrayValues = (arr, key) => arr.map(obj => obj[key]).filter(Boolean);
175
175
 
176
176
  const getNestedValue = (keys, object) => {
177
177
  const key = keys.shift();
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["parseUrl","END_ADUNIT","MAX_BANNER_HEIGHT","MIN_BANNER_HEIGHT","getParsedSizes","sizes","sanitizedSizes","replace","toLowerCase","sizeGroups","split","map","group","Number","addPosnToTargetings","targetings","index","posn","buildTargetingValue","valueTargeting","includes","char","setCustomTargetings","cardBannerIndex","bannerTargetings","updatedTargetings","isValidTargeting","customTargeting","splitTargeting","Object","keys","forEach","key","keyTargeting","buildParsedAdunit","path","countContentHierarchies","baseAdunit","adunit","isInteger","base","process","env","DFP_BASE_ADUNIT","hasChildren","url","urlParts","filter","Boolean","urlPart","slice","length","join","endAdunit","getBannerSizes","sizeId","bannerSizes","width","height","buildBannerSizes","parsedSizes","buildContextualTargeting","actionKey","props","propsToDisplay","data","buildPropsData","buildSizeMapping","sizeMapping","groupedViewports","reduce","acc","viewports","size","viewportWidth","viewportHeight","push","keyGroupedViewport","viewport","getMaxBannerHeight","Array","isArray","Math","max","o","getMinBannerHeight","min","buildUserQuery","userProps","basicProps","nestedProps","propertiesToDisplay","propKey","indexOf","baseProp","nestedProp","nestedKey","nested","prop","propsWithData","label","parsedKey","value","getNestedValue","labelToUse","parseArrayValues","arr","obj","object","shift","nestedValue"],"sources":["../../../src/components/Banner/helpers.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n const data = props[actionKey][0];\n return buildPropsData(data, propsToDisplay);\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\nconst buildUserQuery = userProps => {\n if (!userProps || !userProps.length) return '';\n const basicProps = [];\n const nestedProps = {};\n userProps.forEach(({ propertiesToDisplay }) => {\n const [propKey] = propertiesToDisplay;\n if (!propKey || propKey === 'id') return;\n if (propKey.indexOf('.') !== -1) {\n const [baseProp, nestedProp] = propKey.split('.');\n if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);\n else nestedProps[baseProp] = [nestedProp];\n } else basicProps.push(propKey);\n });\n\n Object.keys(nestedProps).forEach(nestedKey => {\n const nested = nestedProps[nestedKey];\n basicProps.push(nestedKey);\n basicProps.push('{');\n nested.forEach(prop => basicProps.push(prop));\n basicProps.push('}');\n });\n\n return basicProps.join(' ');\n};\n\nconst buildPropsData = (data, props) => {\n if (!data || !props.length) return {};\n const propsWithData = {};\n\n props.forEach(({ propertiesToDisplay, label }) => {\n const [key] = propertiesToDisplay;\n if (!key) return;\n\n const parsedKey = key.split('.');\n const value = getNestedValue(parsedKey, data);\n const labelToUse = label || key;\n\n propsWithData[labelToUse] = value;\n });\n return propsWithData;\n};\n\nconst parseArrayValues = (arr, key) =>\n arr\n .map(obj => obj[key])\n .filter(Boolean)\n .join(', ');\n\nconst getNestedValue = (keys, object) => {\n const key = keys.shift();\n const nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];\n if (!nestedValue) return null;\n return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;\n};\n\nexport {\n getParsedSizes,\n setCustomTargetings,\n buildParsedAdunit,\n buildBannerSizes,\n buildContextualTargeting,\n buildSizeMapping,\n getMaxBannerHeight,\n getMinBannerHeight,\n buildPropsData,\n buildUserQuery\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","names":["parseUrl","END_ADUNIT","MAX_BANNER_HEIGHT","MIN_BANNER_HEIGHT","getParsedSizes","sizes","sanitizedSizes","replace","toLowerCase","sizeGroups","split","map","group","Number","addPosnToTargetings","targetings","index","posn","buildTargetingValue","valueTargeting","includes","char","setCustomTargetings","cardBannerIndex","bannerTargetings","updatedTargetings","isValidTargeting","customTargeting","splitTargeting","Object","keys","forEach","key","keyTargeting","buildParsedAdunit","path","countContentHierarchies","baseAdunit","adunit","isInteger","base","process","env","DFP_BASE_ADUNIT","hasChildren","url","urlParts","filter","Boolean","urlPart","slice","length","join","endAdunit","getBannerSizes","sizeId","bannerSizes","width","height","buildBannerSizes","parsedSizes","buildContextualTargeting","actionKey","props","propsToDisplay","data","buildPropsData","buildSizeMapping","sizeMapping","groupedViewports","reduce","acc","viewports","size","viewportWidth","viewportHeight","push","keyGroupedViewport","viewport","getMaxBannerHeight","Array","isArray","Math","max","o","getMinBannerHeight","min","buildUserQuery","userProps","basicProps","nestedProps","propertiesToDisplay","propKey","indexOf","baseProp","nestedProp","nestedKey","nested","prop","propsWithData","label","parsedKey","value","getNestedValue","labelToUse","parseArrayValues","arr","obj","object","shift","nestedValue"],"sources":["../../../src/components/Banner/helpers.js"],"sourcesContent":["import { parseUrl } from 'query-string';\nimport { END_ADUNIT, MAX_BANNER_HEIGHT, MIN_BANNER_HEIGHT } from '../../constants';\n\nconst getParsedSizes = (sizes = '') => {\n if (typeof sizes !== 'string') return [];\n\n const sanitizedSizes = sizes.replace(/\\s+/, '').toLowerCase();\n const sizeGroups = sanitizedSizes.split(',');\n\n return sizeGroups.map(group => group.split('x').map(Number));\n};\n\nconst addPosnToTargetings = (targetings, index) => {\n const posn = `posn=${index}`;\n return targetings ? `${targetings},${posn}` : posn;\n};\n\nconst buildTargetingValue = valueTargeting =>\n valueTargeting.includes('[') && valueTargeting.includes(']')\n ? valueTargeting.replace(/\\;|\\[|\\]/gm, char => (char === ';' ? ',' : '')).split(',')\n : valueTargeting;\n\nconst setCustomTargetings = (targetings, cardBannerIndex) => {\n let bannerTargetings = {};\n\n const updatedTargetings = cardBannerIndex\n ? addPosnToTargetings(targetings, cardBannerIndex)\n : targetings;\n\n const isValidTargeting = updatedTargetings && typeof updatedTargetings === 'string';\n\n if (isValidTargeting) {\n const customTargeting = {};\n\n let splitTargeting = updatedTargetings.split(',');\n splitTargeting = { ...splitTargeting };\n\n Object.keys(splitTargeting).forEach(key => {\n const [keyTargeting, valueTargeting] = splitTargeting[key].split('=');\n\n if (keyTargeting && valueTargeting) {\n customTargeting[keyTargeting] = buildTargetingValue(valueTargeting);\n }\n });\n bannerTargetings = { ...bannerTargetings, ...customTargeting };\n }\n\n return bannerTargetings;\n};\n\nconst buildParsedAdunit = (path, countContentHierarchies, baseAdunit, adunit) => {\n if (!Number.isInteger(countContentHierarchies)) return '';\n\n const base = baseAdunit || process.env.DFP_BASE_ADUNIT;\n const hasChildren = countContentHierarchies !== 0;\n const { url } = parseUrl(path);\n let urlParts = url\n .split('/')\n .filter(Boolean)\n .map(urlPart => urlPart.replace(/-/g, ''));\n urlParts = urlParts.slice(0, hasChildren ? urlParts.length : urlParts.length - 1).join('/');\n urlParts = urlParts ? `${urlParts}/` : urlParts;\n const endAdunit = adunit || END_ADUNIT;\n\n return `${base}/${urlParts}${endAdunit}`;\n};\n\nconst getBannerSizes = (sizeId, bannerSizes) =>\n sizeId && bannerSizes && bannerSizes.length\n ? bannerSizes.map(({ width, height }) => [width, height])\n : null;\n\nconst buildBannerSizes = (sizeId, bannerSizes, sizes) => {\n let parsedSizes = getBannerSizes(sizeId, bannerSizes);\n\n if (!parsedSizes && sizes) parsedSizes = getParsedSizes(sizes);\n\n return parsedSizes;\n};\n\nconst buildContextualTargeting = (actionKey, props = {}, propsToDisplay = []) => {\n if (actionKey && props[actionKey] && props[actionKey][0]) {\n const data = props[actionKey][0];\n return buildPropsData(data, propsToDisplay);\n }\n return {};\n};\n\nconst buildSizeMapping = (sizeId, bannerSizes) => {\n let sizeMapping = [];\n\n if (sizeId && bannerSizes && bannerSizes.length) {\n const groupedViewports = bannerSizes.reduce((acc, { width, height, viewports = [] }) => {\n const size = width && height ? [width, height] : null; // if one dimension is falsey then it shouldn't display\n\n if (viewports) {\n viewports.forEach(({ width: viewportWidth, height: viewportHeight }) => {\n const key = `${viewportWidth || 0}x${viewportHeight || 0}`;\n acc[key] = acc[key] || [];\n if (size) acc[key].push(size);\n });\n }\n return acc;\n }, {});\n\n sizeMapping = Object.keys(groupedViewports).map(keyGroupedViewport => {\n const [viewportWidth, viewportHeight] = keyGroupedViewport.split('x');\n return {\n viewport: [Number(viewportWidth), Number(viewportHeight)],\n sizes: groupedViewports[keyGroupedViewport]\n };\n });\n }\n\n return sizeMapping;\n};\n\nconst getMaxBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.max(...bannerSizes.map(o => o.height));\n }\n return MAX_BANNER_HEIGHT;\n};\n\nconst getMinBannerHeight = bannerSizes => {\n if (Array.isArray(bannerSizes) && bannerSizes.length > 0) {\n return Math.min(...bannerSizes.map(o => o.height));\n }\n return MIN_BANNER_HEIGHT;\n};\n\nconst buildUserQuery = userProps => {\n if (!userProps || !userProps.length) return '';\n const basicProps = [];\n const nestedProps = {};\n userProps.forEach(({ propertiesToDisplay }) => {\n const [propKey] = propertiesToDisplay;\n if (!propKey || propKey === 'id') return;\n if (propKey.indexOf('.') !== -1) {\n const [baseProp, nestedProp] = propKey.split('.');\n if (nestedProps[baseProp]) nestedProps[baseProp].push(nestedProp);\n else nestedProps[baseProp] = [nestedProp];\n } else basicProps.push(propKey);\n });\n\n Object.keys(nestedProps).forEach(nestedKey => {\n const nested = nestedProps[nestedKey];\n basicProps.push(nestedKey);\n basicProps.push('{');\n nested.forEach(prop => basicProps.push(prop));\n basicProps.push('}');\n });\n\n return basicProps.join(' ');\n};\n\nconst buildPropsData = (data, props) => {\n if (!data || !props.length) return {};\n const propsWithData = {};\n\n props.forEach(({ propertiesToDisplay, label }) => {\n const [key] = propertiesToDisplay;\n if (!key) return;\n\n const parsedKey = key.split('.');\n const value = getNestedValue(parsedKey, data);\n const labelToUse = label || key;\n\n propsWithData[labelToUse] = value;\n });\n return propsWithData;\n};\n\nconst parseArrayValues = (arr, key) => arr.map(obj => obj[key]).filter(Boolean);\n\nconst getNestedValue = (keys, object) => {\n const key = keys.shift();\n const nestedValue = Array.isArray(object) ? parseArrayValues(object, key) : object[key];\n if (!nestedValue) return null;\n return keys.length ? getNestedValue(keys, nestedValue) : nestedValue;\n};\n\nexport {\n getParsedSizes,\n setCustomTargetings,\n buildParsedAdunit,\n buildBannerSizes,\n buildContextualTargeting,\n buildSizeMapping,\n getMaxBannerHeight,\n getMinBannerHeight,\n buildPropsData,\n buildUserQuery\n};\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
7
7
 
8
8
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
9
 
10
- import React, { useState, Fragment } from 'react';
10
+ import React, { useState, Fragment, useEffect } from 'react';
11
11
  import { useCookies } from 'react-cookie';
12
12
  import { useRouter } from 'next/router';
13
13
  import classnames from 'classnames';
@@ -45,6 +45,9 @@ const Button = props => {
45
45
  blaze_auth: blazeCookie
46
46
  } = cookies;
47
47
  const [showChildren, setShowChildren] = useState(false);
48
+ useEffect(() => {
49
+ setShowChildren(false);
50
+ }, [router.asPath]);
48
51
 
49
52
  const checkIfButtonShouldRender = () => {
50
53
  if (isLogoutButton) return !!blazeCookie;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["React","useState","Fragment","useCookies","useRouter","classnames","BlazeButton","handleLogout","useApolloClient","PropTypes","bool","string","ClickWrapper","BlazeLink","withTitle","getClassModifiers","LOGOUT","renderChildren","updateChildrensParent","hasChildren","getClickWrapperOptions","Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","otherProps","client","router","isLogoutButton","cookies","blaze_auth","blazeCookie","showChildren","setShowChildren","checkIfButtonShouldRender","logout","reload","handleClick","buttonType","modifiers","currentProps","href","title","DynamicButton","parent","itemId","itemEntity","renderedChildren","onClose","shouldUseClickWrapper","wrapperProps","Wrapper","contentClassName","propTypes","size","oneOfType","arrayOf","node","defaultProps"],"sources":["../../src/components/Button.js"],"sourcesContent":["import React, { useState, Fragment } from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useRouter } from 'next/router';\nimport classnames from 'classnames';\nimport BlazeButton from '@blaze-react/button';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes, { bool, string } from 'prop-types';\nimport ClickWrapper from './ClickWrapper';\nimport BlazeLink from './BlazeLink';\nimport { withTitle } from '../HOC';\nimport { getClassModifiers } from '../utils';\nimport { LOGOUT } from '../constants';\nimport {\n renderChildren,\n updateChildrensParent,\n hasChildren,\n getClickWrapperOptions\n} from '../helpers';\n\nconst Button = props => {\n const {\n type,\n text,\n url,\n icon,\n name,\n style,\n children,\n clickAction,\n childSeoVisibility,\n afterClickText,\n ...otherProps\n } = props;\n const client = useApolloClient();\n const router = useRouter();\n const isLogoutButton = clickAction === LOGOUT;\n const [cookies] = useCookies();\n const { blaze_auth: blazeCookie } = cookies;\n const [showChildren, setShowChildren] = useState(false);\n\n const checkIfButtonShouldRender = () => {\n if (isLogoutButton) return !!blazeCookie;\n if (!text && !icon) return false;\n return !!(url || hasChildren(children));\n };\n\n const logout = () => {\n handleLogout(client);\n url ? router.reload(url) : router.reload();\n };\n\n const handleClick = () => {\n if (isLogoutButton) logout();\n if (!url && !isLogoutButton) setShowChildren(!showChildren);\n };\n\n if (!checkIfButtonShouldRender()) return null;\n\n const buttonType = !text && icon ? 'icon' : type;\n const modifiers = getClassModifiers(buttonType, { icon, style, ...otherProps });\n const currentProps = url ? { href: url, title: name } : { name };\n const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;\n updateChildrensParent(children, otherProps.parent.itemId, otherProps.parent.itemEntity);\n\n const renderedChildren = renderChildren(children, { onClose: handleClick });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(children, props);\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const contentClassName = classnames('button__content', {\n 'button__content--show': showChildren\n });\n\n return (\n <Wrapper {...wrapperProps}>\n {childSeoVisibility && <div className={contentClassName}>{renderedChildren}</div>}\n {!childSeoVisibility && showChildren && renderedChildren}\n <DynamicButton className={modifiers} onClick={handleClick} {...currentProps}>\n {icon && <i className={icon} />}\n {showChildren ? afterClickText : text}\n </DynamicButton>\n </Wrapper>\n );\n};\n\nButton.propTypes = {\n clickAction: PropTypes.string,\n text: PropTypes.string,\n afterClickText: string,\n name: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n size: PropTypes.string,\n icon: PropTypes.string,\n style: PropTypes.string,\n childSeoVisibility: bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nButton.defaultProps = {\n clickAction: '',\n text: '',\n afterClickText: '',\n name: '',\n type: '',\n url: null,\n size: '',\n icon: '',\n style: '',\n children: [],\n childSeoVisibility: false\n};\n\nexport default withTitle(Button);\n"],"mappings":";;;;;;;;;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,QAA1B,QAA0C,OAA1C;AACA,SAASC,UAAT,QAA2B,cAA3B;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,OAAOC,WAAP,MAAwB,qBAAxB;AACA,SAASC,YAAT,QAA6B,yBAA7B;AACA,SAASC,eAAT,QAAgC,gBAAhC;AACA,OAAOC,SAAP,IAAoBC,IAApB,EAA0BC,MAA1B,QAAwC,YAAxC;AACA,OAAOC,YAAP,MAAyB,gBAAzB;AACA,OAAOC,SAAP,MAAsB,aAAtB;AACA,SAASC,SAAT,QAA0B,QAA1B;AACA,SAASC,iBAAT,QAAkC,UAAlC;AACA,SAASC,MAAT,QAAuB,cAAvB;AACA,SACEC,cADF,EAEEC,qBAFF,EAGEC,WAHF,EAIEC,sBAJF,QAKO,YALP;;AAOA,MAAMC,MAAM,GAAGC,KAAK,IAAI;EACtB,MAAM;IACJC,IADI;IAEJC,IAFI;IAGJC,GAHI;IAIJC,IAJI;IAKJC,IALI;IAMJC,KANI;IAOJC,QAPI;IAQJC,WARI;IASJC,kBATI;IAUJC;EAVI,IAYFV,KAZJ;EAAA,MAWKW,UAXL,4BAYIX,KAZJ;;EAaA,MAAMY,MAAM,GAAG1B,eAAe,EAA9B;EACA,MAAM2B,MAAM,GAAG/B,SAAS,EAAxB;EACA,MAAMgC,cAAc,GAAGN,WAAW,KAAKd,MAAvC;EACA,MAAM,CAACqB,OAAD,IAAYlC,UAAU,EAA5B;EACA,MAAM;IAAEmC,UAAU,EAAEC;EAAd,IAA8BF,OAApC;EACA,MAAM,CAACG,YAAD,EAAeC,eAAf,IAAkCxC,QAAQ,CAAC,KAAD,CAAhD;;EAEA,MAAMyC,yBAAyB,GAAG,MAAM;IACtC,IAAIN,cAAJ,EAAoB,OAAO,CAAC,CAACG,WAAT;IACpB,IAAI,CAACf,IAAD,IAAS,CAACE,IAAd,EAAoB,OAAO,KAAP;IACpB,OAAO,CAAC,EAAED,GAAG,IAAIN,WAAW,CAACU,QAAD,CAApB,CAAR;EACD,CAJD;;EAMA,MAAMc,MAAM,GAAG,MAAM;IACnBpC,YAAY,CAAC2B,MAAD,CAAZ;IACAT,GAAG,GAAGU,MAAM,CAACS,MAAP,CAAcnB,GAAd,CAAH,GAAwBU,MAAM,CAACS,MAAP,EAA3B;EACD,CAHD;;EAKA,MAAMC,WAAW,GAAG,MAAM;IACxB,IAAIT,cAAJ,EAAoBO,MAAM;IAC1B,IAAI,CAAClB,GAAD,IAAQ,CAACW,cAAb,EAA6BK,eAAe,CAAC,CAACD,YAAF,CAAf;EAC9B,CAHD;;EAKA,IAAI,CAACE,yBAAyB,EAA9B,EAAkC,OAAO,IAAP;EAElC,MAAMI,UAAU,GAAG,CAACtB,IAAD,IAASE,IAAT,GAAgB,MAAhB,GAAyBH,IAA5C;EACA,MAAMwB,SAAS,GAAGhC,iBAAiB,CAAC+B,UAAD;IAAepB,IAAf;IAAqBE;EAArB,GAA+BK,UAA/B,EAAnC;EACA,MAAMe,YAAY,GAAGvB,GAAG,GAAG;IAAEwB,IAAI,EAAExB,GAAR;IAAayB,KAAK,EAAEvB;EAApB,CAAH,GAAgC;IAAEA;EAAF,CAAxD;EACA,MAAMwB,aAAa,GAAG1B,GAAG,IAAI,CAACW,cAAR,GAAyBvB,SAAzB,GAAqCP,WAA3D;EACAY,qBAAqB,CAACW,QAAD,EAAWI,UAAU,CAACmB,MAAX,CAAkBC,MAA7B,EAAqCpB,UAAU,CAACmB,MAAX,CAAkBE,UAAvD,CAArB;EAEA,MAAMC,gBAAgB,GAAGtC,cAAc,CAACY,QAAD,EAAW;IAAE2B,OAAO,EAAEX;EAAX,CAAX,CAAvC;EACA,MAAM;IAAEY,qBAAF;IAAyBC;EAAzB,IAA0CtC,sBAAsB,CAACS,QAAD,EAAWP,KAAX,CAAtE;EACA,MAAMqC,OAAO,GAAGF,qBAAqB,GAAG7C,YAAH,GAAkBV,QAAvD;EAEA,MAAM0D,gBAAgB,GAAGvD,UAAU,CAAC,iBAAD,EAAoB;IACrD,yBAAyBmC;EAD4B,CAApB,CAAnC;EAIA,oBACE,oBAAC,OAAD,EAAakB,YAAb,EACG3B,kBAAkB,iBAAI;IAAK,SAAS,EAAE6B;EAAhB,GAAmCL,gBAAnC,CADzB,EAEG,CAACxB,kBAAD,IAAuBS,YAAvB,IAAuCe,gBAF1C,eAGE,oBAAC,aAAD;IAAe,SAAS,EAAER,SAA1B;IAAqC,OAAO,EAAEF;EAA9C,GAA+DG,YAA/D,GACGtB,IAAI,iBAAI;IAAG,SAAS,EAAEA;EAAd,EADX,EAEGc,YAAY,GAAGR,cAAH,GAAoBR,IAFnC,CAHF,CADF;AAUD,CA/DD;;AAiEAH,MAAM,CAACwC,SAAP,GAAmB;EACjB/B,WAAW,EAAErB,SAAS,CAACE,MADN;EAEjBa,IAAI,EAAEf,SAAS,CAACE,MAFC;EAGjBqB,cAAc,EAAErB,MAHC;EAIjBgB,IAAI,EAAElB,SAAS,CAACE,MAJC;EAKjBY,IAAI,EAAEd,SAAS,CAACE,MALC;EAMjBc,GAAG,EAAEhB,SAAS,CAACE,MANE;EAOjBmD,IAAI,EAAErD,SAAS,CAACE,MAPC;EAQjBe,IAAI,EAAEjB,SAAS,CAACE,MARC;EASjBiB,KAAK,EAAEnB,SAAS,CAACE,MATA;EAUjBoB,kBAAkB,EAAErB,IAVH;EAWjBmB,QAAQ,EAAEpB,SAAS,CAACsD,SAAV,CAAoB,CAACtD,SAAS,CAACuD,OAAV,CAAkBvD,SAAS,CAACwD,IAA5B,CAAD,EAAoCxD,SAAS,CAACwD,IAA9C,CAApB;AAXO,CAAnB;AAcA5C,MAAM,CAAC6C,YAAP,GAAsB;EACpBpC,WAAW,EAAE,EADO;EAEpBN,IAAI,EAAE,EAFc;EAGpBQ,cAAc,EAAE,EAHI;EAIpBL,IAAI,EAAE,EAJc;EAKpBJ,IAAI,EAAE,EALc;EAMpBE,GAAG,EAAE,IANe;EAOpBqC,IAAI,EAAE,EAPc;EAQpBpC,IAAI,EAAE,EARc;EASpBE,KAAK,EAAE,EATa;EAUpBC,QAAQ,EAAE,EAVU;EAWpBE,kBAAkB,EAAE;AAXA,CAAtB;AAcA,eAAejB,SAAS,CAACO,MAAD,CAAxB"}
1
+ {"version":3,"file":"Button.js","names":["React","useState","Fragment","useEffect","useCookies","useRouter","classnames","BlazeButton","handleLogout","useApolloClient","PropTypes","bool","string","ClickWrapper","BlazeLink","withTitle","getClassModifiers","LOGOUT","renderChildren","updateChildrensParent","hasChildren","getClickWrapperOptions","Button","props","type","text","url","icon","name","style","children","clickAction","childSeoVisibility","afterClickText","otherProps","client","router","isLogoutButton","cookies","blaze_auth","blazeCookie","showChildren","setShowChildren","asPath","checkIfButtonShouldRender","logout","reload","handleClick","buttonType","modifiers","currentProps","href","title","DynamicButton","parent","itemId","itemEntity","renderedChildren","onClose","shouldUseClickWrapper","wrapperProps","Wrapper","contentClassName","propTypes","size","oneOfType","arrayOf","node","defaultProps"],"sources":["../../src/components/Button.js"],"sourcesContent":["import React, { useState, Fragment, useEffect } from 'react';\nimport { useCookies } from 'react-cookie';\nimport { useRouter } from 'next/router';\nimport classnames from 'classnames';\nimport BlazeButton from '@blaze-react/button';\nimport { handleLogout } from '@blaze-cms/core-auth-ui';\nimport { useApolloClient } from '@apollo/client';\nimport PropTypes, { bool, string } from 'prop-types';\nimport ClickWrapper from './ClickWrapper';\nimport BlazeLink from './BlazeLink';\nimport { withTitle } from '../HOC';\nimport { getClassModifiers } from '../utils';\nimport { LOGOUT } from '../constants';\nimport {\n renderChildren,\n updateChildrensParent,\n hasChildren,\n getClickWrapperOptions\n} from '../helpers';\n\nconst Button = props => {\n const {\n type,\n text,\n url,\n icon,\n name,\n style,\n children,\n clickAction,\n childSeoVisibility,\n afterClickText,\n ...otherProps\n } = props;\n const client = useApolloClient();\n const router = useRouter();\n const isLogoutButton = clickAction === LOGOUT;\n const [cookies] = useCookies();\n const { blaze_auth: blazeCookie } = cookies;\n const [showChildren, setShowChildren] = useState(false);\n\n useEffect(\n () => {\n setShowChildren(false);\n },\n [router.asPath]\n );\n\n const checkIfButtonShouldRender = () => {\n if (isLogoutButton) return !!blazeCookie;\n if (!text && !icon) return false;\n return !!(url || hasChildren(children));\n };\n\n const logout = () => {\n handleLogout(client);\n url ? router.reload(url) : router.reload();\n };\n\n const handleClick = () => {\n if (isLogoutButton) logout();\n if (!url && !isLogoutButton) setShowChildren(!showChildren);\n };\n\n if (!checkIfButtonShouldRender()) return null;\n\n const buttonType = !text && icon ? 'icon' : type;\n const modifiers = getClassModifiers(buttonType, { icon, style, ...otherProps });\n const currentProps = url ? { href: url, title: name } : { name };\n const DynamicButton = url && !isLogoutButton ? BlazeLink : BlazeButton;\n updateChildrensParent(children, otherProps.parent.itemId, otherProps.parent.itemEntity);\n\n const renderedChildren = renderChildren(children, { onClose: handleClick });\n const { shouldUseClickWrapper, wrapperProps } = getClickWrapperOptions(children, props);\n const Wrapper = shouldUseClickWrapper ? ClickWrapper : Fragment;\n\n const contentClassName = classnames('button__content', {\n 'button__content--show': showChildren\n });\n\n return (\n <Wrapper {...wrapperProps}>\n {childSeoVisibility && <div className={contentClassName}>{renderedChildren}</div>}\n {!childSeoVisibility && showChildren && renderedChildren}\n <DynamicButton className={modifiers} onClick={handleClick} {...currentProps}>\n {icon && <i className={icon} />}\n {showChildren ? afterClickText : text}\n </DynamicButton>\n </Wrapper>\n );\n};\n\nButton.propTypes = {\n clickAction: PropTypes.string,\n text: PropTypes.string,\n afterClickText: string,\n name: PropTypes.string,\n type: PropTypes.string,\n url: PropTypes.string,\n size: PropTypes.string,\n icon: PropTypes.string,\n style: PropTypes.string,\n childSeoVisibility: bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nButton.defaultProps = {\n clickAction: '',\n text: '',\n afterClickText: '',\n name: '',\n type: '',\n url: null,\n size: '',\n icon: '',\n style: '',\n children: [],\n childSeoVisibility: false\n};\n\nexport default withTitle(Button);\n"],"mappings":"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"}
@@ -100,7 +100,13 @@ const SearchFilterContainer = ({
100
100
  const {
101
101
  docType
102
102
  } = getEntityData(entity);
103
- const filtersQuery = shouldAddFilters ? buildFiltersQuery(filterValues || query, filterBy, filterByProperty, rangeValues) : [];
103
+ const filtersQuery = shouldAddFilters ? buildFiltersQuery({
104
+ query: filterValues,
105
+ filterBy,
106
+ filterByProperty,
107
+ rangeValues,
108
+ queryKeys: Object.keys(query)
109
+ }) : [];
104
110
  const rawQueryStringified = buildRawQueryStringified(checkboxSelectValues, rangeValues, docType, filtersQuery);
105
111
  const {
106
112
  data,
@@ -1 +1 @@
1
- {"version":3,"file":"SearchFilterContainer.js","names":["React","useState","useRef","useReducer","useEffect","useRouter","useQuery","PropTypes","parseUrl","stringify","SearchFilter","withTitle","getSearchPublishedContent","buildNewQuery","buildRawQueryStringified","getInitialFilterValues","buildFiltersQuery","getEntityData","RAW_RESULTS","RANGE","CHECKBOX_SELECT","SCROLL_OFFSET","reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","asPath","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","urlPath","setUrlPath","currentUrl","query","sort","sortby","filterValues","dispatch","hasUrl","sortValues","baseQuery","checkboxSelectValues","rangeValues","forEach","propsToDisplay","includes","push","docType","filtersQuery","rawQueryStringified","data","error","variables","limit","skip","message","length","searchPublishedContent","rawResults","aggregations","filterData","dataNotSet","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"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer, useEffect } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\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 buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } 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: false };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const [urlPath, setUrlPath] = useState(asPath); // used as asPath can take too long to update\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(urlPath);\n const [filterValues, dispatch] = useReducer(\n reducer,\n getInitialFilterValues(null, filters, query)\n );\n\n useEffect(\n () => {\n if (asPath) setUrlPath(asPath);\n },\n [asPath]\n );\n\n const hasUrl = !!url;\n\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\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 const filtersQuery = shouldAddFilters\n ? buildFiltersQuery(filterValues || query, filterBy, filterByProperty, rangeValues)\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = 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 (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (filterValues.dataNotSet && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n setUrlPath(baseQuery);\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 setUrlPath(newUrl);\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 if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\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 filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":"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"}
1
+ {"version":3,"file":"SearchFilterContainer.js","names":["React","useState","useRef","useReducer","useEffect","useRouter","useQuery","PropTypes","parseUrl","stringify","SearchFilter","withTitle","getSearchPublishedContent","buildNewQuery","buildRawQueryStringified","getInitialFilterValues","buildFiltersQuery","getEntityData","RAW_RESULTS","RANGE","CHECKBOX_SELECT","SCROLL_OFFSET","reducer","state","action","newValues","type","shouldSearch","Error","SearchFilterContainer","entity","url","filters","name","isCollapsedOnResponsive","groupAfterMobile","groupAfterDesktop","filterBy","filterByProperty","shouldAddFilters","router","asPath","searchFilterRef","key","setKey","displaySearchFilter","setDisplaySearchFilter","urlPath","setUrlPath","currentUrl","query","sort","sortby","filterValues","dispatch","hasUrl","sortValues","baseQuery","checkboxSelectValues","rangeValues","forEach","propsToDisplay","includes","push","docType","filtersQuery","queryKeys","Object","keys","rawQueryStringified","data","error","variables","limit","skip","message","length","searchPublishedContent","rawResults","aggregations","filterData","dataNotSet","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"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer, useEffect } from 'react';\nimport { useRouter } from 'next/router';\nimport { useQuery } from '@apollo/client';\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 buildFiltersQuery\n} from './helpers';\nimport { getEntityData } from '../../helpers';\nimport { RAW_RESULTS, RANGE, CHECKBOX_SELECT } from './constants';\nimport { SCROLL_OFFSET } 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: false };\n default:\n throw new Error();\n }\n};\n\nconst SearchFilterContainer = ({\n entity,\n url,\n filters,\n name,\n isCollapsedOnResponsive,\n groupAfterMobile,\n groupAfterDesktop,\n filterBy,\n filterByProperty,\n shouldAddFilters\n}) => {\n const router = useRouter();\n const { asPath } = router;\n const searchFilterRef = useRef(null);\n const [key, setKey] = useState(`filter-${name}`);\n const [displaySearchFilter, setDisplaySearchFilter] = useState(false);\n const [urlPath, setUrlPath] = useState(asPath); // used as asPath can take too long to update\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(urlPath);\n const [filterValues, dispatch] = useReducer(\n reducer,\n getInitialFilterValues(null, filters, query)\n );\n\n useEffect(\n () => {\n if (asPath) setUrlPath(asPath);\n },\n [asPath]\n );\n\n const hasUrl = !!url;\n\n const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';\n const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;\n\n const action = getSearchPublishedContent(RAW_RESULTS);\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 const filtersQuery = shouldAddFilters\n ? buildFiltersQuery({\n query: filterValues,\n filterBy,\n filterByProperty,\n rangeValues,\n queryKeys: Object.keys(query)\n })\n : [];\n\n const rawQueryStringified = buildRawQueryStringified(\n checkboxSelectValues,\n rangeValues,\n docType,\n filtersQuery\n );\n\n const { data, error } = 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 (error) return error.message;\n if (!filters.length) return null;\n\n const { searchPublishedContent: { rawResults: { aggregations: filterData } = {} } = {} } =\n data || {};\n\n if (filterValues.dataNotSet && filterData) {\n const initialFilterValues = getInitialFilterValues(filterData, filters, query);\n dispatch({ newValues: initialFilterValues, shouldSearch: false, type: 'update' });\n }\n\n const handleSearch = newQuery => {\n setDisplaySearchFilter(false);\n\n if (!newQuery) {\n scrollToFirstList();\n setUrlPath(baseQuery);\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 setUrlPath(newUrl);\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 if (!filterValues) return '';\n\n return (\n <SearchFilter\n key={key}\n setAppliedFilters={dispatch}\n searchFilterRef={searchFilterRef}\n data={filterData}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n handleSearch={handleSearch}\n filterValues={filterValues}\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 filterBy: PropTypes.array,\n filterByProperty: PropTypes.array,\n shouldAddFilters: PropTypes.bool\n};\n\nSearchFilterContainer.defaultProps = {\n url: null,\n filters: [],\n entity: '',\n isCollapsedOnResponsive: true,\n groupAfterMobile: 0,\n groupAfterDesktop: 0,\n filterBy: [],\n filterByProperty: [],\n shouldAddFilters: false\n};\n\nexport default withTitle(SearchFilterContainer);\n"],"mappings":"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"}
@@ -27,7 +27,7 @@ const Range = ({
27
27
  shouldSearch
28
28
  }) => {
29
29
  const router = useRouter();
30
- const debounceAmount = shouldSearch ? 1200 : 100;
30
+ const debounceAmount = shouldSearch ? 1200 : 400;
31
31
  const {
32
32
  query
33
33
  } = parseUrl(decodeValue(router.asPath));
@@ -48,7 +48,6 @@ const Range = ({
48
48
  min,
49
49
  max
50
50
  } = calculateMinMax(dataAggregations[rangeOption], rangeInterval);
51
- const shouldShowRange = rangeOption && min !== max;
52
51
  const minValue = rangeValue.minValue < min ? min : rangeValue.minValue;
53
52
  const maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;
54
53
 
@@ -87,7 +86,7 @@ const Range = ({
87
86
  });
88
87
  updateFilterValues(updatedOptions, false);
89
88
  }
90
- })), shouldShowRange && /*#__PURE__*/React.createElement(RangeFilter, {
89
+ })), /*#__PURE__*/React.createElement(RangeFilter, {
91
90
  key: `${rangeOption}-${minValue}-${maxValue}`,
92
91
  name: rangeOption,
93
92
  label: hasMultipleOptions ? '' : label,
@@ -1 +1 @@
1
- {"version":3,"file":"Range.js","names":["React","PropTypes","debounce","RangeFilter","useRouter","Select","parseUrl","useGetSingleEntitySchema","withTitle","getSelectOptions","getIntersectedProp","getRangeValue","calculateMinMax","decodeValue","Range","rangeInterval","label","entity","propsToDisplay","dataAggregations","updateFilterValues","filterValues","shouldSearch","router","debounceAmount","query","asPath","hasMultipleOptions","length","initialRangeOption","rangeOption","selectedOption","rangeValue","data","getEntitySchema","loading","options","min","max","shouldShowRange","minValue","maxValue","valueToUse","handleChange","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","propTypes","array","isRequired","string","object","func","bool","number","defaultProps"],"sources":["../../../../src/components/SearchFilter/components/Range.js"],"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, calculateMinMax } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n dataAggregations,\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 // get range from aggregations so it updates\n const { min, max } = calculateMinMax(dataAggregations[rangeOption], rangeInterval);\n const shouldShowRange = rangeOption && min !== max;\n const minValue = rangeValue.minValue < min ? min : rangeValue.minValue;\n const maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;\n const valueToUse = { ...rangeValue, min, max, minValue, maxValue };\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}-${minValue}-${maxValue}`}\n name={rangeOption}\n label={hasMultipleOptions ? '' : label}\n value={valueToUse}\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 dataAggregations: PropTypes.object.isRequired\n};\n\nRange.defaultProps = {\n shouldSearch: false,\n rangeInterval: 1,\n label: ''\n};\n\nexport default withTitle(Range);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Range.js","names":["React","PropTypes","debounce","RangeFilter","useRouter","Select","parseUrl","useGetSingleEntitySchema","withTitle","getSelectOptions","getIntersectedProp","getRangeValue","calculateMinMax","decodeValue","Range","rangeInterval","label","entity","propsToDisplay","dataAggregations","updateFilterValues","filterValues","shouldSearch","router","debounceAmount","query","asPath","hasMultipleOptions","length","initialRangeOption","rangeOption","selectedOption","rangeValue","data","getEntitySchema","loading","options","min","max","minValue","maxValue","valueToUse","handleChange","option","value","updatedOptions","forEach","prop","eMin","eMax","initValue","propTypes","array","isRequired","string","object","func","bool","number","defaultProps"],"sources":["../../../../src/components/SearchFilter/components/Range.js"],"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, calculateMinMax } from '../helpers';\nimport { decodeValue } from '../helpers/decode-encode';\n\nconst Range = ({\n rangeInterval,\n label,\n entity,\n propsToDisplay,\n dataAggregations,\n updateFilterValues,\n filterValues,\n shouldSearch\n}) => {\n const router = useRouter();\n const debounceAmount = shouldSearch ? 1200 : 400;\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 // get range from aggregations so it updates\n const { min, max } = calculateMinMax(dataAggregations[rangeOption], rangeInterval);\n const minValue = rangeValue.minValue < min ? min : rangeValue.minValue;\n const maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;\n const valueToUse = { ...rangeValue, min, max, minValue, maxValue };\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 <RangeFilter\n key={`${rangeOption}-${minValue}-${maxValue}`}\n name={rangeOption}\n label={hasMultipleOptions ? '' : label}\n value={valueToUse}\n id={rangeOption}\n onChange={({ value }) => {\n handleChange(rangeOption, value);\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 dataAggregations: PropTypes.object.isRequired\n};\n\nRange.defaultProps = {\n shouldSearch: false,\n rangeInterval: 1,\n label: ''\n};\n\nexport default withTitle(Range);\n"],"mappings":"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"}
@@ -1,14 +1,20 @@
1
1
  const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];
2
2
 
3
- const builFilterObject = (queryKey, value, filters, isRange) => {
3
+ const builFilterObject = ({
4
+ queryKey,
5
+ value,
6
+ filters,
7
+ isRange,
8
+ isInQuery
9
+ }) => {
4
10
  if (isRange) {
5
11
  // don't add to query if value matches range values
6
- if (value.min !== value.minValue && value.max !== value.maxValue) {
12
+ if (isInQuery || value.min !== value.minValue && value.max !== value.maxValue) {
7
13
  filters.push({
8
14
  range: {
9
15
  [queryKey]: {
10
- gte: Number(value.min),
11
- lte: Number(value.max)
16
+ gte: Number(value.minValue),
17
+ lte: Number(value.maxValue)
12
18
  }
13
19
  }
14
20
  });
@@ -39,14 +45,27 @@ const builFilterObject = (queryKey, value, filters, isRange) => {
39
45
  });
40
46
  };
41
47
 
42
- const buildFiltersQuery = (query, filterBy, filterByProperty, rangeValues) => {
48
+ const buildFiltersQuery = ({
49
+ query,
50
+ filterBy,
51
+ filterByProperty,
52
+ rangeValues,
53
+ queryKeys
54
+ }) => {
43
55
  const mustFilters = [];
44
56
  Object.keys(query).forEach(queryKey => {
45
57
  if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;
46
58
  if (!queryKey || !query[queryKey]) return;
47
59
  const queryValue = query[queryKey];
48
60
  const isRange = rangeValues.includes(queryKey);
49
- builFilterObject(queryKey, queryValue, mustFilters, isRange);
61
+ const isInQuery = queryKeys.includes(queryKey);
62
+ builFilterObject({
63
+ queryKey,
64
+ value: queryValue,
65
+ filters: mustFilters,
66
+ isRange,
67
+ isInQuery
68
+ });
50
69
  });
51
70
 
52
71
  if (filterByProperty && filterByProperty.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"build-filters-query.js","names":["QUERY_KEYS_TO_IGNORE","builFilterObject","queryKey","value","filters","isRange","min","minValue","max","maxValue","push","range","gte","Number","lte","key","isArray","Array","singleFilterObj","match","forEach","filterValue","buildFiltersQuery","query","filterBy","filterByProperty","rangeValues","mustFilters","Object","keys","includes","queryValue","length","filterByPropOption","filterByPropKey","split","filterByOption","indexOf","filteryByValue","filterByKeyword"],"sources":["../../../../src/components/SearchFilter/helpers/build-filters-query.js"],"sourcesContent":["const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];\n\nconst builFilterObject = (queryKey, value, filters, isRange) => {\n if (isRange) {\n // don't add to query if value matches range values\n if (value.min !== value.minValue && value.max !== value.maxValue) {\n filters.push({\n range: {\n [queryKey]: {\n gte: Number(value.min),\n lte: Number(value.max)\n }\n }\n });\n }\n return;\n }\n\n const key = isRange ? queryKey : `${queryKey}.keyword`;\n\n const isArray = Array.isArray(value);\n if (!isArray) {\n const singleFilterObj = { match: { [key]: value } };\n filters.push(singleFilterObj);\n return;\n }\n\n value.forEach(filterValue => {\n filters.push({ match: { [key]: filterValue } });\n });\n};\nconst buildFiltersQuery = (query, filterBy, filterByProperty, rangeValues) => {\n const mustFilters = [];\n Object.keys(query).forEach(queryKey => {\n if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;\n if (!queryKey || !query[queryKey]) return;\n const queryValue = query[queryKey];\n\n const isRange = rangeValues.includes(queryKey);\n builFilterObject(queryKey, queryValue, mustFilters, isRange);\n });\n\n if (filterByProperty && filterByProperty.length) {\n filterByProperty &&\n filterByProperty.forEach(filterByPropOption => {\n const [filterByPropKey] = filterByPropOption.split('/');\n filterBy.forEach(filterByOption => {\n if (filterByOption.indexOf(filterByPropKey) === -1) return;\n const [, filteryByValue] = filterByOption.split('/');\n const filterByKeyword = `${filterByPropKey}.keyword`;\n if (!filteryByValue) return;\n mustFilters.push({ match: { [filterByKeyword]: filteryByValue } });\n });\n });\n }\n\n return mustFilters;\n};\n\nexport default buildFiltersQuery;\n"],"mappings":"AAAA,MAAMA,oBAAoB,GAAG,CAAC,YAAD,EAAe,cAAf,EAA+B,aAA/B,CAA7B;;AAEA,MAAMC,gBAAgB,GAAG,CAACC,QAAD,EAAWC,KAAX,EAAkBC,OAAlB,EAA2BC,OAA3B,KAAuC;EAC9D,IAAIA,OAAJ,EAAa;IACX;IACA,IAAIF,KAAK,CAACG,GAAN,KAAcH,KAAK,CAACI,QAApB,IAAgCJ,KAAK,CAACK,GAAN,KAAcL,KAAK,CAACM,QAAxD,EAAkE;MAChEL,OAAO,CAACM,IAAR,CAAa;QACXC,KAAK,EAAE;UACL,CAACT,QAAD,GAAY;YACVU,GAAG,EAAEC,MAAM,CAACV,KAAK,CAACG,GAAP,CADD;YAEVQ,GAAG,EAAED,MAAM,CAACV,KAAK,CAACK,GAAP;UAFD;QADP;MADI,CAAb;IAQD;;IACD;EACD;;EAED,MAAMO,GAAG,GAAGV,OAAO,GAAGH,QAAH,GAAe,GAAEA,QAAS,UAA7C;EAEA,MAAMc,OAAO,GAAGC,KAAK,CAACD,OAAN,CAAcb,KAAd,CAAhB;;EACA,IAAI,CAACa,OAAL,EAAc;IACZ,MAAME,eAAe,GAAG;MAAEC,KAAK,EAAE;QAAE,CAACJ,GAAD,GAAOZ;MAAT;IAAT,CAAxB;IACAC,OAAO,CAACM,IAAR,CAAaQ,eAAb;IACA;EACD;;EAEDf,KAAK,CAACiB,OAAN,CAAcC,WAAW,IAAI;IAC3BjB,OAAO,CAACM,IAAR,CAAa;MAAES,KAAK,EAAE;QAAE,CAACJ,GAAD,GAAOM;MAAT;IAAT,CAAb;EACD,CAFD;AAGD,CA5BD;;AA6BA,MAAMC,iBAAiB,GAAG,CAACC,KAAD,EAAQC,QAAR,EAAkBC,gBAAlB,EAAoCC,WAApC,KAAoD;EAC5E,MAAMC,WAAW,GAAG,EAApB;EACAC,MAAM,CAACC,IAAP,CAAYN,KAAZ,EAAmBH,OAAnB,CAA2BlB,QAAQ,IAAI;IACrC,IAAIF,oBAAoB,CAAC8B,QAArB,CAA8B5B,QAA9B,CAAJ,EAA6C;IAC7C,IAAI,CAACA,QAAD,IAAa,CAACqB,KAAK,CAACrB,QAAD,CAAvB,EAAmC;IACnC,MAAM6B,UAAU,GAAGR,KAAK,CAACrB,QAAD,CAAxB;IAEA,MAAMG,OAAO,GAAGqB,WAAW,CAACI,QAAZ,CAAqB5B,QAArB,CAAhB;IACAD,gBAAgB,CAACC,QAAD,EAAW6B,UAAX,EAAuBJ,WAAvB,EAAoCtB,OAApC,CAAhB;EACD,CAPD;;EASA,IAAIoB,gBAAgB,IAAIA,gBAAgB,CAACO,MAAzC,EAAiD;IAC/CP,gBAAgB,IACdA,gBAAgB,CAACL,OAAjB,CAAyBa,kBAAkB,IAAI;MAC7C,MAAM,CAACC,eAAD,IAAoBD,kBAAkB,CAACE,KAAnB,CAAyB,GAAzB,CAA1B;MACAX,QAAQ,CAACJ,OAAT,CAAiBgB,cAAc,IAAI;QACjC,IAAIA,cAAc,CAACC,OAAf,CAAuBH,eAAvB,MAA4C,CAAC,CAAjD,EAAoD;QACpD,MAAM,GAAGI,cAAH,IAAqBF,cAAc,CAACD,KAAf,CAAqB,GAArB,CAA3B;QACA,MAAMI,eAAe,GAAI,GAAEL,eAAgB,UAA3C;QACA,IAAI,CAACI,cAAL,EAAqB;QACrBX,WAAW,CAACjB,IAAZ,CAAiB;UAAES,KAAK,EAAE;YAAE,CAACoB,eAAD,GAAmBD;UAArB;QAAT,CAAjB;MACD,CAND;IAOD,CATD,CADF;EAWD;;EAED,OAAOX,WAAP;AACD,CA1BD;;AA4BA,eAAeL,iBAAf"}
1
+ {"version":3,"file":"build-filters-query.js","names":["QUERY_KEYS_TO_IGNORE","builFilterObject","queryKey","value","filters","isRange","isInQuery","min","minValue","max","maxValue","push","range","gte","Number","lte","key","isArray","Array","singleFilterObj","match","forEach","filterValue","buildFiltersQuery","query","filterBy","filterByProperty","rangeValues","queryKeys","mustFilters","Object","keys","includes","queryValue","length","filterByPropOption","filterByPropKey","split","filterByOption","indexOf","filteryByValue","filterByKeyword"],"sources":["../../../../src/components/SearchFilter/helpers/build-filters-query.js"],"sourcesContent":["const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];\n\nconst builFilterObject = ({ queryKey, value, filters, isRange, isInQuery }) => {\n if (isRange) {\n // don't add to query if value matches range values\n if (isInQuery || (value.min !== value.minValue && value.max !== value.maxValue)) {\n filters.push({\n range: {\n [queryKey]: {\n gte: Number(value.minValue),\n lte: Number(value.maxValue)\n }\n }\n });\n }\n return;\n }\n\n const key = isRange ? queryKey : `${queryKey}.keyword`;\n\n const isArray = Array.isArray(value);\n if (!isArray) {\n const singleFilterObj = { match: { [key]: value } };\n filters.push(singleFilterObj);\n return;\n }\n\n value.forEach(filterValue => {\n filters.push({ match: { [key]: filterValue } });\n });\n};\nconst buildFiltersQuery = ({ query, filterBy, filterByProperty, rangeValues, queryKeys }) => {\n const mustFilters = [];\n Object.keys(query).forEach(queryKey => {\n if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;\n if (!queryKey || !query[queryKey]) return;\n const queryValue = query[queryKey];\n\n const isRange = rangeValues.includes(queryKey);\n const isInQuery = queryKeys.includes(queryKey);\n builFilterObject({ queryKey, value: queryValue, filters: mustFilters, isRange, isInQuery });\n });\n\n if (filterByProperty && filterByProperty.length) {\n filterByProperty &&\n filterByProperty.forEach(filterByPropOption => {\n const [filterByPropKey] = filterByPropOption.split('/');\n filterBy.forEach(filterByOption => {\n if (filterByOption.indexOf(filterByPropKey) === -1) return;\n const [, filteryByValue] = filterByOption.split('/');\n const filterByKeyword = `${filterByPropKey}.keyword`;\n if (!filteryByValue) return;\n mustFilters.push({ match: { [filterByKeyword]: filteryByValue } });\n });\n });\n }\n\n return mustFilters;\n};\n\nexport default buildFiltersQuery;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/react-page-builder",
3
- "version": "0.124.1-alpha.2",
3
+ "version": "0.124.1",
4
4
  "description": "Blaze react page builder",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -85,5 +85,5 @@
85
85
  "lib/*",
86
86
  "lib-es/*"
87
87
  ],
88
- "gitHead": "0e1d785e22450229007f0171ed1e204df7963e4f"
88
+ "gitHead": "39d71595e55f54590430121381bdc236ca4341fd"
89
89
  }
@@ -171,11 +171,7 @@ const buildPropsData = (data, props) => {
171
171
  return propsWithData;
172
172
  };
173
173
 
174
- const parseArrayValues = (arr, key) =>
175
- arr
176
- .map(obj => obj[key])
177
- .filter(Boolean)
178
- .join(', ');
174
+ const parseArrayValues = (arr, key) => arr.map(obj => obj[key]).filter(Boolean);
179
175
 
180
176
  const getNestedValue = (keys, object) => {
181
177
  const key = keys.shift();
@@ -1,4 +1,4 @@
1
- import React, { useState, Fragment } from 'react';
1
+ import React, { useState, Fragment, useEffect } from 'react';
2
2
  import { useCookies } from 'react-cookie';
3
3
  import { useRouter } from 'next/router';
4
4
  import classnames from 'classnames';
@@ -39,6 +39,13 @@ const Button = props => {
39
39
  const { blaze_auth: blazeCookie } = cookies;
40
40
  const [showChildren, setShowChildren] = useState(false);
41
41
 
42
+ useEffect(
43
+ () => {
44
+ setShowChildren(false);
45
+ },
46
+ [router.asPath]
47
+ );
48
+
42
49
  const checkIfButtonShouldRender = () => {
43
50
  if (isLogoutButton) return !!blazeCookie;
44
51
  if (!text && !icon) return false;
@@ -86,7 +86,13 @@ const SearchFilterContainer = ({
86
86
  const { docType } = getEntityData(entity);
87
87
 
88
88
  const filtersQuery = shouldAddFilters
89
- ? buildFiltersQuery(filterValues || query, filterBy, filterByProperty, rangeValues)
89
+ ? buildFiltersQuery({
90
+ query: filterValues,
91
+ filterBy,
92
+ filterByProperty,
93
+ rangeValues,
94
+ queryKeys: Object.keys(query)
95
+ })
90
96
  : [];
91
97
 
92
98
  const rawQueryStringified = buildRawQueryStringified(
@@ -21,7 +21,7 @@ const Range = ({
21
21
  shouldSearch
22
22
  }) => {
23
23
  const router = useRouter();
24
- const debounceAmount = shouldSearch ? 1200 : 100;
24
+ const debounceAmount = shouldSearch ? 1200 : 400;
25
25
  const { query } = parseUrl(decodeValue(router.asPath));
26
26
  const hasMultipleOptions = propsToDisplay.length > 1;
27
27
  const initialRangeOption = getIntersectedProp(query, propsToDisplay) || propsToDisplay[0];
@@ -40,7 +40,6 @@ const Range = ({
40
40
  const options = getSelectOptions(getEntitySchema, propsToDisplay);
41
41
  // get range from aggregations so it updates
42
42
  const { min, max } = calculateMinMax(dataAggregations[rangeOption], rangeInterval);
43
- const shouldShowRange = rangeOption && min !== max;
44
43
  const minValue = rangeValue.minValue < min ? min : rangeValue.minValue;
45
44
  const maxValue = rangeValue.maxValue > max ? max : rangeValue.maxValue;
46
45
  const valueToUse = { ...rangeValue, min, max, minValue, maxValue };
@@ -72,18 +71,16 @@ const Range = ({
72
71
  />
73
72
  </>
74
73
  )}
75
- {shouldShowRange && (
76
- <RangeFilter
77
- key={`${rangeOption}-${minValue}-${maxValue}`}
78
- name={rangeOption}
79
- label={hasMultipleOptions ? '' : label}
80
- value={valueToUse}
81
- id={rangeOption}
82
- onChange={({ value }) => {
83
- handleChange(rangeOption, value);
84
- }}
85
- />
86
- )}
74
+ <RangeFilter
75
+ key={`${rangeOption}-${minValue}-${maxValue}`}
76
+ name={rangeOption}
77
+ label={hasMultipleOptions ? '' : label}
78
+ value={valueToUse}
79
+ id={rangeOption}
80
+ onChange={({ value }) => {
81
+ handleChange(rangeOption, value);
82
+ }}
83
+ />
87
84
  </>
88
85
  );
89
86
  };
@@ -1,14 +1,14 @@
1
1
  const QUERY_KEYS_TO_IGNORE = ['dataNotSet', 'shouldSearch', 'search_term'];
2
2
 
3
- const builFilterObject = (queryKey, value, filters, isRange) => {
3
+ const builFilterObject = ({ queryKey, value, filters, isRange, isInQuery }) => {
4
4
  if (isRange) {
5
5
  // don't add to query if value matches range values
6
- if (value.min !== value.minValue && value.max !== value.maxValue) {
6
+ if (isInQuery || (value.min !== value.minValue && value.max !== value.maxValue)) {
7
7
  filters.push({
8
8
  range: {
9
9
  [queryKey]: {
10
- gte: Number(value.min),
11
- lte: Number(value.max)
10
+ gte: Number(value.minValue),
11
+ lte: Number(value.maxValue)
12
12
  }
13
13
  }
14
14
  });
@@ -29,7 +29,7 @@ const builFilterObject = (queryKey, value, filters, isRange) => {
29
29
  filters.push({ match: { [key]: filterValue } });
30
30
  });
31
31
  };
32
- const buildFiltersQuery = (query, filterBy, filterByProperty, rangeValues) => {
32
+ const buildFiltersQuery = ({ query, filterBy, filterByProperty, rangeValues, queryKeys }) => {
33
33
  const mustFilters = [];
34
34
  Object.keys(query).forEach(queryKey => {
35
35
  if (QUERY_KEYS_TO_IGNORE.includes(queryKey)) return;
@@ -37,7 +37,8 @@ const buildFiltersQuery = (query, filterBy, filterByProperty, rangeValues) => {
37
37
  const queryValue = query[queryKey];
38
38
 
39
39
  const isRange = rangeValues.includes(queryKey);
40
- builFilterObject(queryKey, queryValue, mustFilters, isRange);
40
+ const isInQuery = queryKeys.includes(queryKey);
41
+ builFilterObject({ queryKey, value: queryValue, filters: mustFilters, isRange, isInQuery });
41
42
  });
42
43
 
43
44
  if (filterByProperty && filterByProperty.length) {
@@ -166,7 +166,7 @@ describe('buildContextualTargeting helper', () => {
166
166
  { getPages: [{ tags: [{ name: 'tag1' }, { name: 'tag2' }] }] },
167
167
  [{ label: 'tagKey', propertiesToDisplay: ['tags.name'] }]
168
168
  );
169
- expect(contextualTargeting).toEqual({ tagKey: 'tag1, tag2' });
169
+ expect(contextualTargeting).toEqual({ tagKey: ['tag1', 'tag2'] });
170
170
  });
171
171
  });
172
172
 
@@ -8,6 +8,10 @@ jest.mock('@apollo/client', () => ({
8
8
  useApolloClient: jest.fn(() => ({ resetStore: () => null }))
9
9
  }));
10
10
 
11
+ jest.mock('next/router', () => ({
12
+ useRouter: jest.fn(() => ({ asPath: '' }))
13
+ }));
14
+
11
15
  const componentProps = {
12
16
  type: 'icon',
13
17
  text: 'test',