@blaze-cms/react-page-builder 0.124.0-alpha.37 → 0.124.0-alpha.40
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.
- package/CHANGELOG.md +22 -0
- package/lib/components/Carousel/CarouselRender/CarouselRender.js +2 -2
- package/lib/components/Carousel/CarouselRender/CarouselRender.js.map +1 -1
- package/lib/components/CarouselWrapper.js +2 -2
- package/lib/components/CarouselWrapper.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js +6 -7
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib-es/components/Carousel/CarouselRender/CarouselRender.js +2 -2
- package/lib-es/components/Carousel/CarouselRender/CarouselRender.js.map +1 -1
- package/lib-es/components/CarouselWrapper.js +2 -2
- package/lib-es/components/CarouselWrapper.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilterContainer.js +2 -2
- package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/package.json +2 -2
- package/src/components/Carousel/CarouselRender/CarouselRender.js +2 -2
- package/src/components/CarouselWrapper.js +2 -2
- package/src/components/SearchFilter/SearchFilterContainer.js +3 -2
- package/tests/unit/src/components/Carousel/__snapshots__/Carousel.test.js.snap +2 -2
- package/tests/unit/src/components/SearchFilter/__snapshots__/SearchFilterContainer.test.js.snap +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
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.0-alpha.40](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.39...v0.124.0-alpha.40) (2022-07-13)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* revert carousel classes and add card carousel arrow styles ([#3534](https://github.com/thebyte9/blaze/issues/3534)) ([54e8b07](https://github.com/thebyte9/blaze/commit/54e8b078efa9920a502f30dd0e2703e25a5ecf2a))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# [0.124.0-alpha.39](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.38...v0.124.0-alpha.39) (2022-07-13)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* show filters even if no filter values by setting filter values from query ([#3533](https://github.com/thebyte9/blaze/issues/3533)) ([b8a0080](https://github.com/thebyte9/blaze/commit/b8a00804993b49066712dfbb74f20523e8cea764))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
# [0.124.0-alpha.37](https://github.com/thebyte9/blaze/compare/v0.124.0-alpha.36...v0.124.0-alpha.37) (2022-06-29)
|
|
7
29
|
|
|
8
30
|
|
|
@@ -106,7 +106,7 @@ var CarouselRender = function CarouselRender(_ref) {
|
|
|
106
106
|
return handleNavigation(navigation.back);
|
|
107
107
|
}
|
|
108
108
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
109
|
-
className: "
|
|
109
|
+
className: "arrow arrow--left"
|
|
110
110
|
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
111
111
|
className: "carousel__list",
|
|
112
112
|
ref: listRef
|
|
@@ -122,7 +122,7 @@ var CarouselRender = function CarouselRender(_ref) {
|
|
|
122
122
|
return handleNavigation(navigation.next);
|
|
123
123
|
}
|
|
124
124
|
}, shouldDisplayCount && /*#__PURE__*/_react["default"].createElement("p", null, countMessage), /*#__PURE__*/_react["default"].createElement("div", {
|
|
125
|
-
className: "
|
|
125
|
+
className: "arrow arrow--right"
|
|
126
126
|
})));
|
|
127
127
|
};
|
|
128
128
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselRender.js","names":["CarouselRender","imageIds","displayCount","otherProps","useState","showCount","setShowCount","listRef","useRef","getListElement","current","moveScroll","numberOfPixels","isNext","listElement","totalDistance","scrollLeft","offsetWidth","scrollWidth","leftPosition","Math","max","scrollTo","top","left","behavior","handleNavigation","direction","offset","length","navigation","next","back","getDisplayCountData","shouldDisplayCount","countMessage","map","imageId","propTypes","PropTypes","array","bool","defaultProps","withTitle"],"sources":["../../../../src/components/Carousel/CarouselRender/CarouselRender.js"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport CarouselImage from '../CarouselImage';\nimport { withTitle } from '../../../HOC';\nimport { getDisplayCountData } from '../../../helpers';\n\nconst CarouselRender = ({ imageIds, displayCount, ...otherProps }) => {\n const [showCount, setShowCount] = useState(displayCount);\n const listRef = useRef(null);\n\n const getListElement = () => {\n if (!listRef) return null;\n const { current } = listRef;\n return current;\n };\n\n const moveScroll = (numberOfPixels, isNext) => {\n const listElement = getListElement();\n if (!listElement) return;\n\n const totalDistance = listElement.scrollLeft + numberOfPixels;\n const { scrollLeft, offsetWidth, scrollWidth } = listElement;\n if (isNext && offsetWidth + scrollLeft >= scrollWidth) return;\n\n const leftPosition = totalDistance < 0 ? 0 : Math.max(-scrollLeft, totalDistance);\n\n listElement.scrollTo({\n top: 0,\n left: leftPosition,\n behavior: 'smooth'\n });\n };\n\n const handleNavigation = direction => {\n setShowCount(false);\n\n const listElement = getListElement();\n if (!listElement) return;\n\n const { scrollWidth } = listElement;\n const offset = scrollWidth / imageIds.length;\n\n direction ? moveScroll(offset, direction) : moveScroll(-offset, direction);\n };\n\n const navigation = {\n next: true,\n back: false\n };\n\n const { shouldDisplayCount, countMessage } = getDisplayCountData(showCount, imageIds);\n\n return (\n <>\n <div\n className=\"carousel__button carousel__button--previous\"\n role=\"button\"\n onClick={() => handleNavigation(navigation.back)}>\n <div className=\"
|
|
1
|
+
{"version":3,"file":"CarouselRender.js","names":["CarouselRender","imageIds","displayCount","otherProps","useState","showCount","setShowCount","listRef","useRef","getListElement","current","moveScroll","numberOfPixels","isNext","listElement","totalDistance","scrollLeft","offsetWidth","scrollWidth","leftPosition","Math","max","scrollTo","top","left","behavior","handleNavigation","direction","offset","length","navigation","next","back","getDisplayCountData","shouldDisplayCount","countMessage","map","imageId","propTypes","PropTypes","array","bool","defaultProps","withTitle"],"sources":["../../../../src/components/Carousel/CarouselRender/CarouselRender.js"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport CarouselImage from '../CarouselImage';\nimport { withTitle } from '../../../HOC';\nimport { getDisplayCountData } from '../../../helpers';\n\nconst CarouselRender = ({ imageIds, displayCount, ...otherProps }) => {\n const [showCount, setShowCount] = useState(displayCount);\n const listRef = useRef(null);\n\n const getListElement = () => {\n if (!listRef) return null;\n const { current } = listRef;\n return current;\n };\n\n const moveScroll = (numberOfPixels, isNext) => {\n const listElement = getListElement();\n if (!listElement) return;\n\n const totalDistance = listElement.scrollLeft + numberOfPixels;\n const { scrollLeft, offsetWidth, scrollWidth } = listElement;\n if (isNext && offsetWidth + scrollLeft >= scrollWidth) return;\n\n const leftPosition = totalDistance < 0 ? 0 : Math.max(-scrollLeft, totalDistance);\n\n listElement.scrollTo({\n top: 0,\n left: leftPosition,\n behavior: 'smooth'\n });\n };\n\n const handleNavigation = direction => {\n setShowCount(false);\n\n const listElement = getListElement();\n if (!listElement) return;\n\n const { scrollWidth } = listElement;\n const offset = scrollWidth / imageIds.length;\n\n direction ? moveScroll(offset, direction) : moveScroll(-offset, direction);\n };\n\n const navigation = {\n next: true,\n back: false\n };\n\n const { shouldDisplayCount, countMessage } = getDisplayCountData(showCount, imageIds);\n\n return (\n <>\n <div\n className=\"carousel__button carousel__button--previous\"\n role=\"button\"\n onClick={() => handleNavigation(navigation.back)}>\n <div className=\"arrow arrow--left\" />\n </div>\n <div className=\"carousel__list\" ref={listRef}>\n {imageIds.map(imageId => <CarouselImage key={imageId} imageId={imageId} {...otherProps} />)}\n </div>\n <div\n className=\"carousel__button carousel__button--next\"\n role=\"button\"\n onClick={() => handleNavigation(navigation.next)}>\n {shouldDisplayCount && <p>{countMessage}</p>}\n <div className=\"arrow arrow--right\" />\n </div>\n </>\n );\n};\n\nCarouselRender.propTypes = {\n imageIds: PropTypes.array,\n displayCount: PropTypes.bool\n};\n\nCarouselRender.defaultProps = {\n imageIds: [],\n displayCount: false\n};\n\nexport default withTitle(CarouselRender);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAA+C;EAAA,IAA5CC,QAA4C,QAA5CA,QAA4C;EAAA,IAAlCC,YAAkC,QAAlCA,YAAkC;EAAA,IAAjBC,UAAiB;;EACpE,gBAAkC,IAAAC,eAAA,EAASF,YAAT,CAAlC;EAAA;EAAA,IAAOG,SAAP;EAAA,IAAkBC,YAAlB;;EACA,IAAMC,OAAO,GAAG,IAAAC,aAAA,EAAO,IAAP,CAAhB;;EAEA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,GAAM;IAC3B,IAAI,CAACF,OAAL,EAAc,OAAO,IAAP;IACd,IAAQG,OAAR,GAAoBH,OAApB,CAAQG,OAAR;IACA,OAAOA,OAAP;EACD,CAJD;;EAMA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAACC,cAAD,EAAiBC,MAAjB,EAA4B;IAC7C,IAAMC,WAAW,GAAGL,cAAc,EAAlC;IACA,IAAI,CAACK,WAAL,EAAkB;IAElB,IAAMC,aAAa,GAAGD,WAAW,CAACE,UAAZ,GAAyBJ,cAA/C;IACA,IAAQI,UAAR,GAAiDF,WAAjD,CAAQE,UAAR;IAAA,IAAoBC,WAApB,GAAiDH,WAAjD,CAAoBG,WAApB;IAAA,IAAiCC,WAAjC,GAAiDJ,WAAjD,CAAiCI,WAAjC;IACA,IAAIL,MAAM,IAAII,WAAW,GAAGD,UAAd,IAA4BE,WAA1C,EAAuD;IAEvD,IAAMC,YAAY,GAAGJ,aAAa,GAAG,CAAhB,GAAoB,CAApB,GAAwBK,IAAI,CAACC,GAAL,CAAS,CAACL,UAAV,EAAsBD,aAAtB,CAA7C;IAEAD,WAAW,CAACQ,QAAZ,CAAqB;MACnBC,GAAG,EAAE,CADc;MAEnBC,IAAI,EAAEL,YAFa;MAGnBM,QAAQ,EAAE;IAHS,CAArB;EAKD,CAfD;;EAiBA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAC,SAAS,EAAI;IACpCrB,YAAY,CAAC,KAAD,CAAZ;IAEA,IAAMQ,WAAW,GAAGL,cAAc,EAAlC;IACA,IAAI,CAACK,WAAL,EAAkB;IAElB,IAAQI,WAAR,GAAwBJ,WAAxB,CAAQI,WAAR;IACA,IAAMU,MAAM,GAAGV,WAAW,GAAGjB,QAAQ,CAAC4B,MAAtC;IAEAF,SAAS,GAAGhB,UAAU,CAACiB,MAAD,EAASD,SAAT,CAAb,GAAmChB,UAAU,CAAC,CAACiB,MAAF,EAAUD,SAAV,CAAtD;EACD,CAVD;;EAYA,IAAMG,UAAU,GAAG;IACjBC,IAAI,EAAE,IADW;IAEjBC,IAAI,EAAE;EAFW,CAAnB;;EAKA,2BAA6C,IAAAC,4BAAA,EAAoB5B,SAApB,EAA+BJ,QAA/B,CAA7C;EAAA,IAAQiC,kBAAR,wBAAQA,kBAAR;EAAA,IAA4BC,YAA5B,wBAA4BA,YAA5B;;EAEA,oBACE,+EACE;IACE,SAAS,EAAC,6CADZ;IAEE,IAAI,EAAC,QAFP;IAGE,OAAO,EAAE;MAAA,OAAMT,gBAAgB,CAACI,UAAU,CAACE,IAAZ,CAAtB;IAAA;EAHX,gBAIE;IAAK,SAAS,EAAC;EAAf,EAJF,CADF,eAOE;IAAK,SAAS,EAAC,gBAAf;IAAgC,GAAG,EAAEzB;EAArC,GACGN,QAAQ,CAACmC,GAAT,CAAa,UAAAC,OAAO;IAAA,oBAAI,gCAAC,yBAAD;MAAe,GAAG,EAAEA,OAApB;MAA6B,OAAO,EAAEA;IAAtC,GAAmDlC,UAAnD,EAAJ;EAAA,CAApB,CADH,CAPF,eAUE;IACE,SAAS,EAAC,yCADZ;IAEE,IAAI,EAAC,QAFP;IAGE,OAAO,EAAE;MAAA,OAAMuB,gBAAgB,CAACI,UAAU,CAACC,IAAZ,CAAtB;IAAA;EAHX,GAIGG,kBAAkB,iBAAI,2CAAIC,YAAJ,CAJzB,eAKE;IAAK,SAAS,EAAC;EAAf,EALF,CAVF,CADF;AAoBD,CAlED;;AAoEAnC,cAAc,CAACsC,SAAf,GAA2B;EACzBrC,QAAQ,EAAEsC,qBAAA,CAAUC,KADK;EAEzBtC,YAAY,EAAEqC,qBAAA,CAAUE;AAFC,CAA3B;AAKAzC,cAAc,CAAC0C,YAAf,GAA8B;EAC5BzC,QAAQ,EAAE,EADkB;EAE5BC,YAAY,EAAE;AAFc,CAA9B;;eAKe,IAAAyC,cAAA,EAAU3C,cAAV,C"}
|
|
@@ -128,7 +128,7 @@ var CarouselWrapper = function CarouselWrapper(_ref) {
|
|
|
128
128
|
handleButtonNavigation();
|
|
129
129
|
}
|
|
130
130
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
131
|
-
className: "cards-carousel--arrow__left"
|
|
131
|
+
className: "cards-carousel--arrow cards-carousel--arrow__left"
|
|
132
132
|
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
133
133
|
className: "cards-carousel--right-button-wrapper"
|
|
134
134
|
}, displayRight && /*#__PURE__*/_react["default"].createElement("button", {
|
|
@@ -139,7 +139,7 @@ var CarouselWrapper = function CarouselWrapper(_ref) {
|
|
|
139
139
|
handleButtonNavigation(true);
|
|
140
140
|
}
|
|
141
141
|
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
142
|
-
className: "cards-carousel--arrow__right"
|
|
142
|
+
className: "cards-carousel--arrow cards-carousel--arrow__right"
|
|
143
143
|
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
144
144
|
className: contentClassName,
|
|
145
145
|
ref: ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselWrapper.js","names":["CarouselWrapper","children","bannerModifier","itemsPerRow","enableAutoScroll","autoScrollTimer","arrowSize","ref","useRef","useState","displayLeft","displayRight","buttonDisplay","setButtonDisplays","shouldAutoScroll","setShouldAutoScroll","autoScrollRef","useEffect","current","id","setInterval","scrollCheck","clearInterval","handleButtonNavigation","offsetWidth","scrollWidth","handleScroll","scrollLeft","updatedDisplayLeft","updatedDisplayRight","direction","wrapperClassName","contentClassName","propTypes","PropTypes","string","number","oneOfType","arrayOf","node","bool","defaultProps"],"sources":["../../src/components/CarouselWrapper.js"],"sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst CarouselWrapper = ({\n children,\n bannerModifier,\n itemsPerRow,\n enableAutoScroll,\n autoScrollTimer,\n arrowSize\n}) => {\n const ref = useRef();\n const [buttonDisplay, setButtonDisplays] = useState({ displayLeft: false, displayRight: true });\n const [shouldAutoScroll, setShouldAutoScroll] = useState(false);\n const autoScrollRef = useRef();\n\n useEffect(\n () => {\n autoScrollRef.current = shouldAutoScroll;\n const id = setInterval(scrollCheck, autoScrollTimer);\n function scrollCheck() {\n if (!autoScrollRef.current) {\n clearInterval(id);\n } else {\n handleButtonNavigation(true);\n }\n }\n\n return () => clearInterval(id);\n },\n [autoScrollTimer, shouldAutoScroll]\n );\n\n useEffect(\n () => {\n const {\n current: { offsetWidth, scrollWidth }\n } = ref;\n if (scrollWidth <= offsetWidth)\n setButtonDisplays({ displayLeft: false, displayRight: false });\n setShouldAutoScroll(enableAutoScroll);\n },\n [enableAutoScroll]\n );\n\n const handleScroll = () => {\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n const updatedDisplayLeft = !!scrollLeft;\n const updatedDisplayRight = scrollLeft + offsetWidth + 1 < scrollWidth;\n setButtonDisplays({ displayLeft: updatedDisplayLeft, displayRight: updatedDisplayRight });\n };\n\n const handleButtonNavigation = direction => {\n if (!ref || !ref.current) return;\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n\n if (autoScrollRef.current && scrollLeft + offsetWidth >= scrollWidth) {\n ref.current.scrollLeft = 0;\n } else {\n ref.current.scrollLeft = direction ? scrollLeft + offsetWidth : scrollLeft - offsetWidth;\n }\n };\n\n const { displayLeft, displayRight } = buttonDisplay;\n const wrapperClassName = `cards-carousel${bannerModifier}`;\n const contentClassName = `cards-carousel--content items-per-row-${itemsPerRow}`;\n\n return (\n <div className={wrapperClassName}>\n <div className=\"cards-carousel--left-button-wrapper\">\n {displayLeft && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-back icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation();\n }}>\n <i className=\"cards-carousel--arrow__left\" />\n </button>\n )}\n </div>\n <div className=\"cards-carousel--right-button-wrapper\">\n {displayRight && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-forward icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation(true);\n }}>\n <i className=\"cards-carousel--arrow__right\" />\n </button>\n )}\n </div>\n <div className={contentClassName} ref={ref} onScroll={handleScroll}>\n {children}\n </div>\n </div>\n );\n};\n\nCarouselWrapper.propTypes = {\n bannerModifier: PropTypes.string,\n itemsPerRow: PropTypes.number,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n enableAutoScroll: PropTypes.bool,\n autoScrollTimer: PropTypes.number,\n arrowSize: PropTypes.number\n};\n\nCarouselWrapper.defaultProps = {\n itemsPerRow: 0,\n bannerModifier: '',\n children: [],\n enableAutoScroll: false,\n autoScrollTimer: 0,\n arrowSize: 14\n};\n\nexport default CarouselWrapper;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CarouselWrapper.js","names":["CarouselWrapper","children","bannerModifier","itemsPerRow","enableAutoScroll","autoScrollTimer","arrowSize","ref","useRef","useState","displayLeft","displayRight","buttonDisplay","setButtonDisplays","shouldAutoScroll","setShouldAutoScroll","autoScrollRef","useEffect","current","id","setInterval","scrollCheck","clearInterval","handleButtonNavigation","offsetWidth","scrollWidth","handleScroll","scrollLeft","updatedDisplayLeft","updatedDisplayRight","direction","wrapperClassName","contentClassName","propTypes","PropTypes","string","number","oneOfType","arrayOf","node","bool","defaultProps"],"sources":["../../src/components/CarouselWrapper.js"],"sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst CarouselWrapper = ({\n children,\n bannerModifier,\n itemsPerRow,\n enableAutoScroll,\n autoScrollTimer,\n arrowSize\n}) => {\n const ref = useRef();\n const [buttonDisplay, setButtonDisplays] = useState({ displayLeft: false, displayRight: true });\n const [shouldAutoScroll, setShouldAutoScroll] = useState(false);\n const autoScrollRef = useRef();\n\n useEffect(\n () => {\n autoScrollRef.current = shouldAutoScroll;\n const id = setInterval(scrollCheck, autoScrollTimer);\n function scrollCheck() {\n if (!autoScrollRef.current) {\n clearInterval(id);\n } else {\n handleButtonNavigation(true);\n }\n }\n\n return () => clearInterval(id);\n },\n [autoScrollTimer, shouldAutoScroll]\n );\n\n useEffect(\n () => {\n const {\n current: { offsetWidth, scrollWidth }\n } = ref;\n if (scrollWidth <= offsetWidth)\n setButtonDisplays({ displayLeft: false, displayRight: false });\n setShouldAutoScroll(enableAutoScroll);\n },\n [enableAutoScroll]\n );\n\n const handleScroll = () => {\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n const updatedDisplayLeft = !!scrollLeft;\n const updatedDisplayRight = scrollLeft + offsetWidth + 1 < scrollWidth;\n setButtonDisplays({ displayLeft: updatedDisplayLeft, displayRight: updatedDisplayRight });\n };\n\n const handleButtonNavigation = direction => {\n if (!ref || !ref.current) return;\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n\n if (autoScrollRef.current && scrollLeft + offsetWidth >= scrollWidth) {\n ref.current.scrollLeft = 0;\n } else {\n ref.current.scrollLeft = direction ? scrollLeft + offsetWidth : scrollLeft - offsetWidth;\n }\n };\n\n const { displayLeft, displayRight } = buttonDisplay;\n const wrapperClassName = `cards-carousel${bannerModifier}`;\n const contentClassName = `cards-carousel--content items-per-row-${itemsPerRow}`;\n\n return (\n <div className={wrapperClassName}>\n <div className=\"cards-carousel--left-button-wrapper\">\n {displayLeft && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-back icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation();\n }}>\n <i className=\"cards-carousel--arrow cards-carousel--arrow__left\" />\n </button>\n )}\n </div>\n <div className=\"cards-carousel--right-button-wrapper\">\n {displayRight && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-forward icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation(true);\n }}>\n <i className=\"cards-carousel--arrow cards-carousel--arrow__right\" />\n </button>\n )}\n </div>\n <div className={contentClassName} ref={ref} onScroll={handleScroll}>\n {children}\n </div>\n </div>\n );\n};\n\nCarouselWrapper.propTypes = {\n bannerModifier: PropTypes.string,\n itemsPerRow: PropTypes.number,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n enableAutoScroll: PropTypes.bool,\n autoScrollTimer: PropTypes.number,\n arrowSize: PropTypes.number\n};\n\nCarouselWrapper.defaultProps = {\n itemsPerRow: 0,\n bannerModifier: '',\n children: [],\n enableAutoScroll: false,\n autoScrollTimer: 0,\n arrowSize: 14\n};\n\nexport default CarouselWrapper;\n"],"mappings":"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"}
|
|
@@ -141,13 +141,6 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
141
141
|
displaySearchFilter = _useState4[0],
|
|
142
142
|
setDisplaySearchFilter = _useState4[1];
|
|
143
143
|
|
|
144
|
-
var _useReducer = (0, _react.useReducer)(reducer, null),
|
|
145
|
-
_useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2),
|
|
146
|
-
filterValues = _useReducer2[0],
|
|
147
|
-
dispatch = _useReducer2[1];
|
|
148
|
-
|
|
149
|
-
var hasUrl = !!url;
|
|
150
|
-
|
|
151
144
|
var _parseUrl = (0, _queryString.parseUrl)(asPath),
|
|
152
145
|
currentUrl = _parseUrl.url,
|
|
153
146
|
_parseUrl$query = _parseUrl.query,
|
|
@@ -155,6 +148,12 @@ var SearchFilterContainer = function SearchFilterContainer(_ref) {
|
|
|
155
148
|
sortby = _parseUrl$query.sortby,
|
|
156
149
|
query = _parseUrl.query;
|
|
157
150
|
|
|
151
|
+
var _useReducer = (0, _react.useReducer)(reducer, query),
|
|
152
|
+
_useReducer2 = (0, _slicedToArray2["default"])(_useReducer, 2),
|
|
153
|
+
filterValues = _useReducer2[0],
|
|
154
|
+
dispatch = _useReducer2[1];
|
|
155
|
+
|
|
156
|
+
var hasUrl = !!url;
|
|
158
157
|
var sortValues = sort && sortby ? (0, _queryString.stringify)({
|
|
159
158
|
sort: sort,
|
|
160
159
|
sortby: sortby
|
|
@@ -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","useReducer","filterValues","dispatch","hasUrl","parseUrl","currentUrl","query","sort","sortby","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","initialFilterValues","getInitialFilterValues","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 } 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 };\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 [filterValues, dispatch] = useReducer(reducer, null);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\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)\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 && 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 return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n 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","parseUrl","currentUrl","query","sort","sortby","useReducer","filterValues","dispatch","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","initialFilterValues","getInitialFilterValues","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 } 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 };\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 {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\n const [filterValues, dispatch] = useReducer(reducer, query);\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)\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 && 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 return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n 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 @@ const CarouselRender = _ref => {
|
|
|
67
67
|
role: "button",
|
|
68
68
|
onClick: () => handleNavigation(navigation.back)
|
|
69
69
|
}, /*#__PURE__*/React.createElement("div", {
|
|
70
|
-
className: "
|
|
70
|
+
className: "arrow arrow--left"
|
|
71
71
|
})), /*#__PURE__*/React.createElement("div", {
|
|
72
72
|
className: "carousel__list",
|
|
73
73
|
ref: listRef
|
|
@@ -79,7 +79,7 @@ const CarouselRender = _ref => {
|
|
|
79
79
|
role: "button",
|
|
80
80
|
onClick: () => handleNavigation(navigation.next)
|
|
81
81
|
}, shouldDisplayCount && /*#__PURE__*/React.createElement("p", null, countMessage), /*#__PURE__*/React.createElement("div", {
|
|
82
|
-
className: "
|
|
82
|
+
className: "arrow arrow--right"
|
|
83
83
|
})));
|
|
84
84
|
};
|
|
85
85
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselRender.js","names":["React","useRef","useState","PropTypes","CarouselImage","withTitle","getDisplayCountData","CarouselRender","imageIds","displayCount","otherProps","showCount","setShowCount","listRef","getListElement","current","moveScroll","numberOfPixels","isNext","listElement","totalDistance","scrollLeft","offsetWidth","scrollWidth","leftPosition","Math","max","scrollTo","top","left","behavior","handleNavigation","direction","offset","length","navigation","next","back","shouldDisplayCount","countMessage","map","imageId","propTypes","array","bool","defaultProps"],"sources":["../../../../src/components/Carousel/CarouselRender/CarouselRender.js"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport CarouselImage from '../CarouselImage';\nimport { withTitle } from '../../../HOC';\nimport { getDisplayCountData } from '../../../helpers';\n\nconst CarouselRender = ({ imageIds, displayCount, ...otherProps }) => {\n const [showCount, setShowCount] = useState(displayCount);\n const listRef = useRef(null);\n\n const getListElement = () => {\n if (!listRef) return null;\n const { current } = listRef;\n return current;\n };\n\n const moveScroll = (numberOfPixels, isNext) => {\n const listElement = getListElement();\n if (!listElement) return;\n\n const totalDistance = listElement.scrollLeft + numberOfPixels;\n const { scrollLeft, offsetWidth, scrollWidth } = listElement;\n if (isNext && offsetWidth + scrollLeft >= scrollWidth) return;\n\n const leftPosition = totalDistance < 0 ? 0 : Math.max(-scrollLeft, totalDistance);\n\n listElement.scrollTo({\n top: 0,\n left: leftPosition,\n behavior: 'smooth'\n });\n };\n\n const handleNavigation = direction => {\n setShowCount(false);\n\n const listElement = getListElement();\n if (!listElement) return;\n\n const { scrollWidth } = listElement;\n const offset = scrollWidth / imageIds.length;\n\n direction ? moveScroll(offset, direction) : moveScroll(-offset, direction);\n };\n\n const navigation = {\n next: true,\n back: false\n };\n\n const { shouldDisplayCount, countMessage } = getDisplayCountData(showCount, imageIds);\n\n return (\n <>\n <div\n className=\"carousel__button carousel__button--previous\"\n role=\"button\"\n onClick={() => handleNavigation(navigation.back)}>\n <div className=\"
|
|
1
|
+
{"version":3,"file":"CarouselRender.js","names":["React","useRef","useState","PropTypes","CarouselImage","withTitle","getDisplayCountData","CarouselRender","imageIds","displayCount","otherProps","showCount","setShowCount","listRef","getListElement","current","moveScroll","numberOfPixels","isNext","listElement","totalDistance","scrollLeft","offsetWidth","scrollWidth","leftPosition","Math","max","scrollTo","top","left","behavior","handleNavigation","direction","offset","length","navigation","next","back","shouldDisplayCount","countMessage","map","imageId","propTypes","array","bool","defaultProps"],"sources":["../../../../src/components/Carousel/CarouselRender/CarouselRender.js"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport CarouselImage from '../CarouselImage';\nimport { withTitle } from '../../../HOC';\nimport { getDisplayCountData } from '../../../helpers';\n\nconst CarouselRender = ({ imageIds, displayCount, ...otherProps }) => {\n const [showCount, setShowCount] = useState(displayCount);\n const listRef = useRef(null);\n\n const getListElement = () => {\n if (!listRef) return null;\n const { current } = listRef;\n return current;\n };\n\n const moveScroll = (numberOfPixels, isNext) => {\n const listElement = getListElement();\n if (!listElement) return;\n\n const totalDistance = listElement.scrollLeft + numberOfPixels;\n const { scrollLeft, offsetWidth, scrollWidth } = listElement;\n if (isNext && offsetWidth + scrollLeft >= scrollWidth) return;\n\n const leftPosition = totalDistance < 0 ? 0 : Math.max(-scrollLeft, totalDistance);\n\n listElement.scrollTo({\n top: 0,\n left: leftPosition,\n behavior: 'smooth'\n });\n };\n\n const handleNavigation = direction => {\n setShowCount(false);\n\n const listElement = getListElement();\n if (!listElement) return;\n\n const { scrollWidth } = listElement;\n const offset = scrollWidth / imageIds.length;\n\n direction ? moveScroll(offset, direction) : moveScroll(-offset, direction);\n };\n\n const navigation = {\n next: true,\n back: false\n };\n\n const { shouldDisplayCount, countMessage } = getDisplayCountData(showCount, imageIds);\n\n return (\n <>\n <div\n className=\"carousel__button carousel__button--previous\"\n role=\"button\"\n onClick={() => handleNavigation(navigation.back)}>\n <div className=\"arrow arrow--left\" />\n </div>\n <div className=\"carousel__list\" ref={listRef}>\n {imageIds.map(imageId => <CarouselImage key={imageId} imageId={imageId} {...otherProps} />)}\n </div>\n <div\n className=\"carousel__button carousel__button--next\"\n role=\"button\"\n onClick={() => handleNavigation(navigation.next)}>\n {shouldDisplayCount && <p>{countMessage}</p>}\n <div className=\"arrow arrow--right\" />\n </div>\n </>\n );\n};\n\nCarouselRender.propTypes = {\n imageIds: PropTypes.array,\n displayCount: PropTypes.bool\n};\n\nCarouselRender.defaultProps = {\n imageIds: [],\n displayCount: false\n};\n\nexport default withTitle(CarouselRender);\n"],"mappings":"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"}
|
|
@@ -95,7 +95,7 @@ const CarouselWrapper = ({
|
|
|
95
95
|
handleButtonNavigation();
|
|
96
96
|
}
|
|
97
97
|
}, /*#__PURE__*/React.createElement("i", {
|
|
98
|
-
className: "cards-carousel--arrow__left"
|
|
98
|
+
className: "cards-carousel--arrow cards-carousel--arrow__left"
|
|
99
99
|
}))), /*#__PURE__*/React.createElement("div", {
|
|
100
100
|
className: "cards-carousel--right-button-wrapper"
|
|
101
101
|
}, displayRight && /*#__PURE__*/React.createElement("button", {
|
|
@@ -106,7 +106,7 @@ const CarouselWrapper = ({
|
|
|
106
106
|
handleButtonNavigation(true);
|
|
107
107
|
}
|
|
108
108
|
}, /*#__PURE__*/React.createElement("i", {
|
|
109
|
-
className: "cards-carousel--arrow__right"
|
|
109
|
+
className: "cards-carousel--arrow cards-carousel--arrow__right"
|
|
110
110
|
}))), /*#__PURE__*/React.createElement("div", {
|
|
111
111
|
className: contentClassName,
|
|
112
112
|
ref: ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselWrapper.js","names":["React","useRef","useState","useEffect","PropTypes","CarouselWrapper","children","bannerModifier","itemsPerRow","enableAutoScroll","autoScrollTimer","arrowSize","ref","buttonDisplay","setButtonDisplays","displayLeft","displayRight","shouldAutoScroll","setShouldAutoScroll","autoScrollRef","current","id","setInterval","scrollCheck","clearInterval","handleButtonNavigation","offsetWidth","scrollWidth","handleScroll","scrollLeft","updatedDisplayLeft","updatedDisplayRight","direction","wrapperClassName","contentClassName","propTypes","string","number","oneOfType","arrayOf","node","bool","defaultProps"],"sources":["../../src/components/CarouselWrapper.js"],"sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst CarouselWrapper = ({\n children,\n bannerModifier,\n itemsPerRow,\n enableAutoScroll,\n autoScrollTimer,\n arrowSize\n}) => {\n const ref = useRef();\n const [buttonDisplay, setButtonDisplays] = useState({ displayLeft: false, displayRight: true });\n const [shouldAutoScroll, setShouldAutoScroll] = useState(false);\n const autoScrollRef = useRef();\n\n useEffect(\n () => {\n autoScrollRef.current = shouldAutoScroll;\n const id = setInterval(scrollCheck, autoScrollTimer);\n function scrollCheck() {\n if (!autoScrollRef.current) {\n clearInterval(id);\n } else {\n handleButtonNavigation(true);\n }\n }\n\n return () => clearInterval(id);\n },\n [autoScrollTimer, shouldAutoScroll]\n );\n\n useEffect(\n () => {\n const {\n current: { offsetWidth, scrollWidth }\n } = ref;\n if (scrollWidth <= offsetWidth)\n setButtonDisplays({ displayLeft: false, displayRight: false });\n setShouldAutoScroll(enableAutoScroll);\n },\n [enableAutoScroll]\n );\n\n const handleScroll = () => {\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n const updatedDisplayLeft = !!scrollLeft;\n const updatedDisplayRight = scrollLeft + offsetWidth + 1 < scrollWidth;\n setButtonDisplays({ displayLeft: updatedDisplayLeft, displayRight: updatedDisplayRight });\n };\n\n const handleButtonNavigation = direction => {\n if (!ref || !ref.current) return;\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n\n if (autoScrollRef.current && scrollLeft + offsetWidth >= scrollWidth) {\n ref.current.scrollLeft = 0;\n } else {\n ref.current.scrollLeft = direction ? scrollLeft + offsetWidth : scrollLeft - offsetWidth;\n }\n };\n\n const { displayLeft, displayRight } = buttonDisplay;\n const wrapperClassName = `cards-carousel${bannerModifier}`;\n const contentClassName = `cards-carousel--content items-per-row-${itemsPerRow}`;\n\n return (\n <div className={wrapperClassName}>\n <div className=\"cards-carousel--left-button-wrapper\">\n {displayLeft && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-back icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation();\n }}>\n <i className=\"cards-carousel--arrow__left\" />\n </button>\n )}\n </div>\n <div className=\"cards-carousel--right-button-wrapper\">\n {displayRight && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-forward icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation(true);\n }}>\n <i className=\"cards-carousel--arrow__right\" />\n </button>\n )}\n </div>\n <div className={contentClassName} ref={ref} onScroll={handleScroll}>\n {children}\n </div>\n </div>\n );\n};\n\nCarouselWrapper.propTypes = {\n bannerModifier: PropTypes.string,\n itemsPerRow: PropTypes.number,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n enableAutoScroll: PropTypes.bool,\n autoScrollTimer: PropTypes.number,\n arrowSize: PropTypes.number\n};\n\nCarouselWrapper.defaultProps = {\n itemsPerRow: 0,\n bannerModifier: '',\n children: [],\n enableAutoScroll: false,\n autoScrollTimer: 0,\n arrowSize: 14\n};\n\nexport default CarouselWrapper;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CarouselWrapper.js","names":["React","useRef","useState","useEffect","PropTypes","CarouselWrapper","children","bannerModifier","itemsPerRow","enableAutoScroll","autoScrollTimer","arrowSize","ref","buttonDisplay","setButtonDisplays","displayLeft","displayRight","shouldAutoScroll","setShouldAutoScroll","autoScrollRef","current","id","setInterval","scrollCheck","clearInterval","handleButtonNavigation","offsetWidth","scrollWidth","handleScroll","scrollLeft","updatedDisplayLeft","updatedDisplayRight","direction","wrapperClassName","contentClassName","propTypes","string","number","oneOfType","arrayOf","node","bool","defaultProps"],"sources":["../../src/components/CarouselWrapper.js"],"sourcesContent":["import React, { useRef, useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\n\nconst CarouselWrapper = ({\n children,\n bannerModifier,\n itemsPerRow,\n enableAutoScroll,\n autoScrollTimer,\n arrowSize\n}) => {\n const ref = useRef();\n const [buttonDisplay, setButtonDisplays] = useState({ displayLeft: false, displayRight: true });\n const [shouldAutoScroll, setShouldAutoScroll] = useState(false);\n const autoScrollRef = useRef();\n\n useEffect(\n () => {\n autoScrollRef.current = shouldAutoScroll;\n const id = setInterval(scrollCheck, autoScrollTimer);\n function scrollCheck() {\n if (!autoScrollRef.current) {\n clearInterval(id);\n } else {\n handleButtonNavigation(true);\n }\n }\n\n return () => clearInterval(id);\n },\n [autoScrollTimer, shouldAutoScroll]\n );\n\n useEffect(\n () => {\n const {\n current: { offsetWidth, scrollWidth }\n } = ref;\n if (scrollWidth <= offsetWidth)\n setButtonDisplays({ displayLeft: false, displayRight: false });\n setShouldAutoScroll(enableAutoScroll);\n },\n [enableAutoScroll]\n );\n\n const handleScroll = () => {\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n const updatedDisplayLeft = !!scrollLeft;\n const updatedDisplayRight = scrollLeft + offsetWidth + 1 < scrollWidth;\n setButtonDisplays({ displayLeft: updatedDisplayLeft, displayRight: updatedDisplayRight });\n };\n\n const handleButtonNavigation = direction => {\n if (!ref || !ref.current) return;\n const {\n current: { offsetWidth, scrollLeft, scrollWidth }\n } = ref;\n\n if (autoScrollRef.current && scrollLeft + offsetWidth >= scrollWidth) {\n ref.current.scrollLeft = 0;\n } else {\n ref.current.scrollLeft = direction ? scrollLeft + offsetWidth : scrollLeft - offsetWidth;\n }\n };\n\n const { displayLeft, displayRight } = buttonDisplay;\n const wrapperClassName = `cards-carousel${bannerModifier}`;\n const contentClassName = `cards-carousel--content items-per-row-${itemsPerRow}`;\n\n return (\n <div className={wrapperClassName}>\n <div className=\"cards-carousel--left-button-wrapper\">\n {displayLeft && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-back icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation();\n }}>\n <i className=\"cards-carousel--arrow cards-carousel--arrow__left\" />\n </button>\n )}\n </div>\n <div className=\"cards-carousel--right-button-wrapper\">\n {displayRight && (\n <button\n type=\"button\"\n className=\"cards-carousel--button-forward icon-button icon\"\n onClick={() => {\n setShouldAutoScroll(false);\n handleButtonNavigation(true);\n }}>\n <i className=\"cards-carousel--arrow cards-carousel--arrow__right\" />\n </button>\n )}\n </div>\n <div className={contentClassName} ref={ref} onScroll={handleScroll}>\n {children}\n </div>\n </div>\n );\n};\n\nCarouselWrapper.propTypes = {\n bannerModifier: PropTypes.string,\n itemsPerRow: PropTypes.number,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n enableAutoScroll: PropTypes.bool,\n autoScrollTimer: PropTypes.number,\n arrowSize: PropTypes.number\n};\n\nCarouselWrapper.defaultProps = {\n itemsPerRow: 0,\n bannerModifier: '',\n children: [],\n enableAutoScroll: false,\n autoScrollTimer: 0,\n arrowSize: 14\n};\n\nexport default CarouselWrapper;\n"],"mappings":"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"}
|
|
@@ -64,8 +64,6 @@ const SearchFilterContainer = ({
|
|
|
64
64
|
const searchFilterRef = useRef(null);
|
|
65
65
|
const [key, setKey] = useState(`filter-${name}`);
|
|
66
66
|
const [displaySearchFilter, setDisplaySearchFilter] = useState(false);
|
|
67
|
-
const [filterValues, dispatch] = useReducer(reducer, null);
|
|
68
|
-
const hasUrl = !!url;
|
|
69
67
|
const {
|
|
70
68
|
url: currentUrl,
|
|
71
69
|
query: {
|
|
@@ -74,6 +72,8 @@ const SearchFilterContainer = ({
|
|
|
74
72
|
},
|
|
75
73
|
query
|
|
76
74
|
} = parseUrl(asPath);
|
|
75
|
+
const [filterValues, dispatch] = useReducer(reducer, query);
|
|
76
|
+
const hasUrl = !!url;
|
|
77
77
|
const sortValues = sort && sortby ? stringify({
|
|
78
78
|
sort,
|
|
79
79
|
sortby
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchFilterContainer.js","names":["React","useState","useRef","useReducer","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","filterValues","dispatch","hasUrl","currentUrl","query","sort","sortby","sortValues","baseQuery","checkboxSelectValues","rangeValues","forEach","propsToDisplay","includes","push","docType","filtersQuery","rawQueryStringified","data","error","variables","limit","skip","message","length","searchPublishedContent","rawResults","aggregations","filterData","initialFilterValues","handleSearch","newQuery","scrollToFirstList","shallow","scroll","then","Date","now","newUrl","list","document","getElementsByClassName","shouldScrollToFirstList","window","scrollTo","left","top","pageYOffset","getBoundingClientRect","propTypes","string","array","isRequired","bool","number","defaultProps"],"sources":["../../../src/components/SearchFilter/SearchFilterContainer.js"],"sourcesContent":["import React, { useState, useRef, useReducer } 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 };\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 [filterValues, dispatch] = useReducer(reducer, null);\n const hasUrl = !!url;\n const {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\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)\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 && 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 return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n 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","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","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","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 } 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 };\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 {\n url: currentUrl,\n query: { sort, sortby },\n query\n } = parseUrl(asPath);\n const [filterValues, dispatch] = useReducer(reducer, query);\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)\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 && 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 return router.push('/Resolver', baseQuery, { shallow: !hasUrl, scroll: false }).then(() => {\n setKey(`filter-${name}:${Date.now()}`); // remove after range component update\n });\n }\n const newUrl = buildNewQuery(url, currentUrl, newQuery, sortValues);\n scrollToFirstList();\n return router.push('/Resolver', newUrl, { shallow: !hasUrl, scroll: false });\n };\n\n const scrollToFirstList = () => {\n const [list] = document.getElementsByClassName('list-top');\n const shouldScrollToFirstList = !hasUrl && list;\n\n if (shouldScrollToFirstList) {\n window.scrollTo({\n left: 0,\n top: window.pageYOffset - SCROLL_OFFSET + list.getBoundingClientRect().top\n });\n } else {\n window.scrollTo(0, 0);\n }\n };\n 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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "0.124.0-alpha.
|
|
3
|
+
"version": "0.124.0-alpha.40",
|
|
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": "
|
|
88
|
+
"gitHead": "80c3c97c118880be651fd030e7d2ab232d74bf1d"
|
|
89
89
|
}
|
|
@@ -56,7 +56,7 @@ const CarouselRender = ({ imageIds, displayCount, ...otherProps }) => {
|
|
|
56
56
|
className="carousel__button carousel__button--previous"
|
|
57
57
|
role="button"
|
|
58
58
|
onClick={() => handleNavigation(navigation.back)}>
|
|
59
|
-
<div className="
|
|
59
|
+
<div className="arrow arrow--left" />
|
|
60
60
|
</div>
|
|
61
61
|
<div className="carousel__list" ref={listRef}>
|
|
62
62
|
{imageIds.map(imageId => <CarouselImage key={imageId} imageId={imageId} {...otherProps} />)}
|
|
@@ -66,7 +66,7 @@ const CarouselRender = ({ imageIds, displayCount, ...otherProps }) => {
|
|
|
66
66
|
role="button"
|
|
67
67
|
onClick={() => handleNavigation(navigation.next)}>
|
|
68
68
|
{shouldDisplayCount && <p>{countMessage}</p>}
|
|
69
|
-
<div className="
|
|
69
|
+
<div className="arrow arrow--right" />
|
|
70
70
|
</div>
|
|
71
71
|
</>
|
|
72
72
|
);
|
|
@@ -80,7 +80,7 @@ const CarouselWrapper = ({
|
|
|
80
80
|
setShouldAutoScroll(false);
|
|
81
81
|
handleButtonNavigation();
|
|
82
82
|
}}>
|
|
83
|
-
<i className="cards-carousel--arrow__left" />
|
|
83
|
+
<i className="cards-carousel--arrow cards-carousel--arrow__left" />
|
|
84
84
|
</button>
|
|
85
85
|
)}
|
|
86
86
|
</div>
|
|
@@ -93,7 +93,7 @@ const CarouselWrapper = ({
|
|
|
93
93
|
setShouldAutoScroll(false);
|
|
94
94
|
handleButtonNavigation(true);
|
|
95
95
|
}}>
|
|
96
|
-
<i className="cards-carousel--arrow__right" />
|
|
96
|
+
<i className="cards-carousel--arrow cards-carousel--arrow__right" />
|
|
97
97
|
</button>
|
|
98
98
|
)}
|
|
99
99
|
</div>
|
|
@@ -48,13 +48,14 @@ const SearchFilterContainer = ({
|
|
|
48
48
|
const searchFilterRef = useRef(null);
|
|
49
49
|
const [key, setKey] = useState(`filter-${name}`);
|
|
50
50
|
const [displaySearchFilter, setDisplaySearchFilter] = useState(false);
|
|
51
|
-
const [filterValues, dispatch] = useReducer(reducer, null);
|
|
52
|
-
const hasUrl = !!url;
|
|
53
51
|
const {
|
|
54
52
|
url: currentUrl,
|
|
55
53
|
query: { sort, sortby },
|
|
56
54
|
query
|
|
57
55
|
} = parseUrl(asPath);
|
|
56
|
+
const [filterValues, dispatch] = useReducer(reducer, query);
|
|
57
|
+
const hasUrl = !!url;
|
|
58
|
+
|
|
58
59
|
const sortValues = sort && sortby ? stringify({ sort, sortby }) : '';
|
|
59
60
|
const baseQuery = sortValues ? `${currentUrl}?${sortValues}` : currentUrl;
|
|
60
61
|
|
|
@@ -11,7 +11,7 @@ exports[`Carousel component should render carousel and match snapshot 1`] = `
|
|
|
11
11
|
role="button"
|
|
12
12
|
>
|
|
13
13
|
<div
|
|
14
|
-
class="
|
|
14
|
+
class="arrow arrow--left"
|
|
15
15
|
/>
|
|
16
16
|
</div>
|
|
17
17
|
<div
|
|
@@ -28,7 +28,7 @@ exports[`Carousel component should render carousel and match snapshot 1`] = `
|
|
|
28
28
|
role="button"
|
|
29
29
|
>
|
|
30
30
|
<div
|
|
31
|
-
class="
|
|
31
|
+
class="arrow arrow--right"
|
|
32
32
|
/>
|
|
33
33
|
</div>
|
|
34
34
|
</div>
|
package/tests/unit/src/components/SearchFilter/__snapshots__/SearchFilterContainer.test.js.snap
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
-
exports[`SearchFilter container should match snapshot 1`] =
|
|
3
|
+
exports[`SearchFilter container should match snapshot 1`] = `
|
|
4
|
+
<DocumentFragment>
|
|
5
|
+
<div>
|
|
6
|
+
Mocked component
|
|
7
|
+
</div>
|
|
8
|
+
</DocumentFragment>
|
|
9
|
+
`;
|
|
4
10
|
|
|
5
11
|
exports[`SearchFilter container should return null if no filters are passed 1`] = `<DocumentFragment />`;
|