@blaze-cms/react-page-builder 0.146.0-alpha.0 → 0.146.0-alpha.13
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 +86 -0
- package/lib/components/BackToTop/BackToTop.js +8 -13
- package/lib/components/BackToTop/BackToTop.js.map +1 -1
- package/lib/components/Card/Card.js +19 -12
- package/lib/components/Card/Card.js.map +1 -1
- package/lib/components/Card/CardsContainer.js +8 -4
- package/lib/components/Card/CardsContainer.js.map +1 -1
- package/lib/components/Card/CardsFactory.js +37 -7
- package/lib/components/Card/CardsFactory.js.map +1 -1
- package/lib/components/Card/CardsRender.js +8 -4
- package/lib/components/Card/CardsRender.js.map +1 -1
- package/lib/components/Card/helpers/index.js +6 -6
- package/lib/components/Card/helpers/index.js.map +1 -1
- package/lib/components/Carousel/CarouselImage/CarouselImage.js +3 -1
- package/lib/components/Carousel/CarouselImage/CarouselImage.js.map +1 -1
- package/lib/components/Carousel/CarouselImage/constants.js +9 -0
- package/lib/components/Carousel/CarouselImage/constants.js.map +1 -0
- package/lib/components/CarouselWrapper/DefaultCarousel.js +2 -0
- package/lib/components/CarouselWrapper/DefaultCarousel.js.map +1 -1
- package/lib/components/ContentGroup/ContentGroupTabs.js +1 -2
- package/lib/components/ContentGroup/ContentGroupTabs.js.map +1 -1
- package/lib/components/Image/GlobalLightbox/GlobalLightbox.js +3 -3
- package/lib/components/Image/GlobalLightbox/GlobalLightbox.js.map +1 -1
- package/lib/components/Image/GlobalLightbox/NavButton.js +6 -3
- package/lib/components/Image/GlobalLightbox/NavButton.js.map +1 -1
- package/lib/components/Image/Image.js +1 -0
- package/lib/components/Image/Image.js.map +1 -1
- package/lib/components/Image/Lightbox/Lightbox.js +2 -2
- package/lib/components/Image/Lightbox/Lightbox.js.map +1 -1
- package/lib/components/ItemList/ItemListNew/ItemListNew.js +1 -2
- package/lib/components/ItemList/ItemListNew/ItemListNew.js.map +1 -1
- package/lib/components/List/ListRender.js.map +1 -1
- package/lib/components/List/components/Cards/CardsRender.js.map +1 -1
- package/lib/components/List/components/Full/FullRender.js +2 -2
- package/lib/components/List/components/Full/FullRender.js.map +1 -1
- package/lib/components/Menu/Menu.js +1 -1
- package/lib/components/Menu/Menu.js.map +1 -1
- package/lib/components/MenuItem/MenuEntitiesItem.js +203 -0
- package/lib/components/MenuItem/MenuEntitiesItem.js.map +1 -0
- package/lib/components/MenuItem/MenuItem.js +25 -71
- package/lib/components/MenuItem/MenuItem.js.map +1 -1
- package/lib/components/MenuItem/MenuItemRender.js +104 -0
- package/lib/components/MenuItem/MenuItemRender.js.map +1 -0
- package/lib/components/MenuItem/helpers/index.js +15 -0
- package/lib/components/MenuItem/helpers/index.js.map +1 -0
- package/lib/components/MenuItem/helpers/inject-helper-into-template.js +17 -0
- package/lib/components/MenuItem/helpers/inject-helper-into-template.js.map +1 -0
- package/lib/components/Modal/Modal.js +2 -2
- package/lib/components/Modal/Modal.js.map +1 -1
- package/lib/components/ModalAdapter/ModalAdapter.js +21 -0
- package/lib/components/ModalAdapter/ModalAdapter.js.map +1 -0
- package/lib/components/ModalAdapter/index.js +11 -0
- package/lib/components/ModalAdapter/index.js.map +1 -0
- package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/MobileFormToolbar.js +1 -1
- package/lib/components/SearchFilter/SearchFilter/MobileFormToolbar.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/ResetDesktopForm.js +3 -3
- package/lib/components/SearchFilter/SearchFilter/ResetDesktopForm.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +26 -7
- package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib/components/SearchFilter/SearchFilterContainer.js +23 -28
- package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib/components/SearchFilter/components/Checkbox.js +1 -1
- package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib/components/SearchFilter/components/Select.js.map +1 -1
- package/lib/components/SearchFilter/components/TextSearch.js +1 -0
- package/lib/components/SearchFilter/components/TextSearch.js.map +1 -1
- package/lib/components/SearchFilter/helpers/build-list-name-query.js +31 -0
- package/lib/components/SearchFilter/helpers/build-list-name-query.js.map +1 -0
- package/lib/components/SearchFilter/helpers/decode-encode.js.map +1 -1
- package/lib/components/SearchFilter/helpers/index.js +7 -0
- package/lib/components/SearchFilter/helpers/index.js.map +1 -1
- package/lib/components/Video/VideoModal.js +2 -2
- package/lib/components/Video/VideoModal.js.map +1 -1
- package/lib/components/Video/providers/Vimeo/VimeoProvider.js +0 -1
- package/lib/components/Video/providers/Vimeo/VimeoProvider.js.map +1 -1
- package/lib/helpers/build-filters-query.js +1 -2
- package/lib/helpers/build-filters-query.js.map +1 -1
- package/lib/{components/Card/helpers → helpers}/filter-query-setup.js +10 -7
- package/lib/helpers/filter-query-setup.js.map +1 -0
- package/lib/{components/Card/helpers → helpers}/filters-setup.js +8 -5
- package/lib/helpers/filters-setup.js.map +1 -0
- package/lib/helpers/get-updated-items-to-display.js.map +1 -0
- package/lib/helpers/get-updated-sort-properties.js.map +1 -0
- package/lib/helpers/index.js +42 -0
- package/lib/helpers/index.js.map +1 -1
- package/lib/helpers/should-return.js.map +1 -0
- package/lib/{components/Card/helpers → helpers}/should-skip-single-query.js +1 -1
- package/lib/helpers/should-skip-single-query.js.map +1 -0
- package/lib/hooks/index.js +14 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/use-filter-aggregation-values.js +54 -0
- package/lib/hooks/use-filter-aggregation-values.js.map +1 -0
- package/lib/hooks/use-portal.js +30 -0
- package/lib/hooks/use-portal.js.map +1 -0
- package/lib-es/components/BackToTop/BackToTop.js +11 -17
- package/lib-es/components/BackToTop/BackToTop.js.map +1 -1
- package/lib-es/components/Card/Card.js +19 -12
- package/lib-es/components/Card/Card.js.map +1 -1
- package/lib-es/components/Card/CardsContainer.js +9 -5
- package/lib-es/components/Card/CardsContainer.js.map +1 -1
- package/lib-es/components/Card/CardsFactory.js +40 -9
- package/lib-es/components/Card/CardsFactory.js.map +1 -1
- package/lib-es/components/Card/CardsRender.js +9 -5
- package/lib-es/components/Card/CardsRender.js.map +1 -1
- package/lib-es/components/Card/helpers/index.js +6 -6
- package/lib-es/components/Card/helpers/index.js.map +1 -1
- package/lib-es/components/Carousel/CarouselImage/CarouselImage.js +3 -1
- package/lib-es/components/Carousel/CarouselImage/CarouselImage.js.map +1 -1
- package/lib-es/components/Carousel/CarouselImage/constants.js +2 -0
- package/lib-es/components/Carousel/CarouselImage/constants.js.map +1 -0
- package/lib-es/components/CarouselWrapper/DefaultCarousel.js +2 -0
- package/lib-es/components/CarouselWrapper/DefaultCarousel.js.map +1 -1
- package/lib-es/components/ContentGroup/ContentGroupTabs.js +1 -2
- package/lib-es/components/ContentGroup/ContentGroupTabs.js.map +1 -1
- package/lib-es/components/Image/GlobalLightbox/GlobalLightbox.js +3 -3
- package/lib-es/components/Image/GlobalLightbox/GlobalLightbox.js.map +1 -1
- package/lib-es/components/Image/GlobalLightbox/NavButton.js +6 -3
- package/lib-es/components/Image/GlobalLightbox/NavButton.js.map +1 -1
- package/lib-es/components/Image/Image.js +1 -0
- package/lib-es/components/Image/Image.js.map +1 -1
- package/lib-es/components/Image/Lightbox/Lightbox.js +1 -1
- package/lib-es/components/Image/Lightbox/Lightbox.js.map +1 -1
- package/lib-es/components/ItemList/ItemListNew/ItemListNew.js +1 -2
- package/lib-es/components/ItemList/ItemListNew/ItemListNew.js.map +1 -1
- package/lib-es/components/List/ListRender.js.map +1 -1
- package/lib-es/components/List/components/Cards/CardsRender.js.map +1 -1
- package/lib-es/components/List/components/Full/FullRender.js +2 -2
- package/lib-es/components/List/components/Full/FullRender.js.map +1 -1
- package/lib-es/components/Menu/Menu.js +1 -1
- package/lib-es/components/Menu/Menu.js.map +1 -1
- package/lib-es/components/MenuItem/MenuEntitiesItem.js +177 -0
- package/lib-es/components/MenuItem/MenuEntitiesItem.js.map +1 -0
- package/lib-es/components/MenuItem/MenuItem.js +28 -60
- package/lib-es/components/MenuItem/MenuItem.js.map +1 -1
- package/lib-es/components/MenuItem/MenuItemRender.js +84 -0
- package/lib-es/components/MenuItem/MenuItemRender.js.map +1 -0
- package/lib-es/components/MenuItem/helpers/index.js +3 -0
- package/lib-es/components/MenuItem/helpers/index.js.map +1 -0
- package/lib-es/components/MenuItem/helpers/inject-helper-into-template.js +8 -0
- package/lib-es/components/MenuItem/helpers/inject-helper-into-template.js.map +1 -0
- package/lib-es/components/Modal/Modal.js +1 -1
- package/lib-es/components/Modal/Modal.js.map +1 -1
- package/lib-es/components/ModalAdapter/ModalAdapter.js +13 -0
- package/lib-es/components/ModalAdapter/ModalAdapter.js.map +1 -0
- package/lib-es/components/ModalAdapter/index.js +3 -0
- package/lib-es/components/ModalAdapter/index.js.map +1 -0
- package/lib-es/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/MobileFormToolbar.js +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/MobileFormToolbar.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/ResetDesktopForm.js +3 -3
- package/lib-es/components/SearchFilter/SearchFilter/ResetDesktopForm.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js +19 -7
- package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
- package/lib-es/components/SearchFilter/SearchFilterContainer.js +23 -20
- package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Checkbox.js +1 -1
- package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
- package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
- package/lib-es/components/SearchFilter/components/TextSearch.js +1 -0
- package/lib-es/components/SearchFilter/components/TextSearch.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/build-list-name-query.js +15 -0
- package/lib-es/components/SearchFilter/helpers/build-list-name-query.js.map +1 -0
- package/lib-es/components/SearchFilter/helpers/decode-encode.js.map +1 -1
- package/lib-es/components/SearchFilter/helpers/index.js +2 -1
- package/lib-es/components/SearchFilter/helpers/index.js.map +1 -1
- package/lib-es/components/Video/VideoModal.js +1 -1
- package/lib-es/components/Video/VideoModal.js.map +1 -1
- package/lib-es/components/Video/providers/Vimeo/VimeoProvider.js +0 -1
- package/lib-es/components/Video/providers/Vimeo/VimeoProvider.js.map +1 -1
- package/lib-es/helpers/build-filters-query.js +1 -2
- package/lib-es/helpers/build-filters-query.js.map +1 -1
- package/lib-es/{components/Card/helpers → helpers}/filter-query-setup.js +5 -3
- package/lib-es/helpers/filter-query-setup.js.map +1 -0
- package/lib-es/{components/Card/helpers → helpers}/filters-setup.js +4 -2
- package/lib-es/helpers/filters-setup.js.map +1 -0
- package/lib-es/helpers/get-updated-items-to-display.js.map +1 -0
- package/lib-es/helpers/get-updated-sort-properties.js.map +1 -0
- package/lib-es/helpers/index.js +6 -0
- package/lib-es/helpers/index.js.map +1 -1
- package/lib-es/helpers/should-return.js.map +1 -0
- package/lib-es/{components/Card/helpers → helpers}/should-skip-single-query.js +1 -1
- package/lib-es/helpers/should-skip-single-query.js.map +1 -0
- package/lib-es/hooks/index.js +2 -0
- package/lib-es/hooks/index.js.map +1 -1
- package/lib-es/hooks/use-filter-aggregation-values.js +31 -0
- package/lib-es/hooks/use-filter-aggregation-values.js.map +1 -0
- package/lib-es/hooks/use-portal.js +14 -0
- package/lib-es/hooks/use-portal.js.map +1 -0
- package/package.json +5 -5
- package/src/components/BackToTop/BackToTop.js +6 -11
- package/src/components/Card/Card.js +29 -19
- package/src/components/Card/CardsContainer.js +7 -3
- package/src/components/Card/CardsFactory.js +34 -6
- package/src/components/Card/CardsRender.js +6 -2
- package/src/components/Card/helpers/index.js +6 -6
- package/src/components/Carousel/CarouselImage/CarouselImage.js +3 -1
- package/src/components/Carousel/CarouselImage/constants.js +1 -0
- package/src/components/CarouselWrapper/DefaultCarousel.js +2 -0
- package/src/components/ContentGroup/ContentGroupTabs.js +1 -3
- package/src/components/Image/GlobalLightbox/GlobalLightbox.js +3 -3
- package/src/components/Image/GlobalLightbox/NavButton.js +5 -3
- package/src/components/Image/Image.js +1 -0
- package/src/components/Image/Lightbox/Lightbox.js +1 -1
- package/src/components/ItemList/ItemListNew/ItemListNew.js +1 -4
- package/src/components/List/ListRender.js +0 -1
- package/src/components/List/components/Cards/CardsRender.js +2 -0
- package/src/components/List/components/Full/FullRender.js +2 -1
- package/src/components/Menu/Menu.js +1 -1
- package/src/components/MenuItem/MenuEntitiesItem.js +202 -0
- package/src/components/MenuItem/MenuItem.js +15 -65
- package/src/components/MenuItem/MenuItemRender.js +92 -0
- package/src/components/MenuItem/helpers/index.js +3 -0
- package/src/components/MenuItem/helpers/inject-helper-into-template.js +11 -0
- package/src/components/Modal/Modal.js +1 -1
- package/src/components/ModalAdapter/ModalAdapter.js +12 -0
- package/src/components/ModalAdapter/index.js +3 -0
- package/src/components/SearchFilter/SearchFilter/FiltersList.js +3 -0
- package/src/components/SearchFilter/SearchFilter/MobileFormToolbar.js +1 -1
- package/src/components/SearchFilter/SearchFilter/ResetDesktopForm.js +3 -2
- package/src/components/SearchFilter/SearchFilter/SearchFilter.js +26 -10
- package/src/components/SearchFilter/SearchFilterContainer.js +21 -22
- package/src/components/SearchFilter/components/Checkbox.js +3 -1
- package/src/components/SearchFilter/components/Select.js +2 -0
- package/src/components/SearchFilter/components/TextSearch.js +1 -0
- package/src/components/SearchFilter/helpers/build-list-name-query.js +18 -0
- package/src/components/SearchFilter/helpers/decode-encode.js +0 -1
- package/src/components/SearchFilter/helpers/index.js +2 -0
- package/src/components/Video/VideoModal.js +1 -1
- package/src/components/Video/providers/Vimeo/VimeoProvider.js +0 -1
- package/src/helpers/build-filters-query.js +1 -3
- package/src/{components/Card/helpers → helpers}/filter-query-setup.js +5 -3
- package/src/{components/Card/helpers → helpers}/filters-setup.js +5 -2
- package/src/helpers/index.js +6 -0
- package/src/{components/Card/helpers → helpers}/should-skip-single-query.js +1 -1
- package/src/hooks/index.js +2 -0
- package/src/hooks/use-filter-aggregation-values.js +37 -0
- package/src/hooks/use-portal.js +18 -0
- package/tests/unit/src/components/BackToTop/BackToTop.test.js +9 -5
- package/tests/unit/src/components/BackToTop/__snapshots__/BackToTop.test.js.snap +1 -1
- package/tests/unit/src/components/Card/Card.test.js +16 -1
- package/tests/unit/src/components/Card/__snapshots__/Card.test.js.snap +83 -0
- package/tests/unit/src/components/Card/helpers/get-updated-items-to-display.test.js +1 -1
- package/tests/unit/src/components/Carousel/CarouselImage/__snapshots__/CarouselImage.test.js.snap +1 -1
- package/tests/unit/src/components/Carousel/__snapshots__/Carousel.test.js.snap +1 -1
- package/tests/unit/src/components/ContentGroup/__snapshots__/ContentGroupTabs.test.js.snap +4 -4
- package/tests/unit/src/components/Image/Lightbox/Lightbox.test.js +4 -0
- package/tests/unit/src/components/Image/Lightbox/__snapshots__/Lightbox.test.js.snap +3 -38
- package/tests/unit/src/components/ItemList/__snapshots__/ItemListNew.test.js.snap +0 -2
- package/tests/unit/src/components/MenuItem/MenuEntitiesItem.test.js +23 -0
- package/tests/unit/src/components/MenuItem/MenuItem.test.js +30 -11
- package/tests/unit/src/components/MenuItem/MenuItemRender.test.js +55 -0
- package/tests/unit/src/components/MenuItem/__snapshots__/MenuEntitiesItem.test.js.snap +3 -0
- package/tests/unit/src/components/MenuItem/__snapshots__/MenuItem.test.js.snap +5 -56
- package/tests/unit/src/components/MenuItem/helpers/inject-helper-into-template.test.js +44 -0
- package/tests/unit/src/components/MenuItem/mocks.js +71 -0
- package/tests/unit/src/components/Modal/Modal.test.js +4 -0
- package/tests/unit/src/components/Modal/__snapshots__/Modal.test.js.snap +7 -42
- package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/MobileFormToolbar.test.js.snap +1 -1
- package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/ResetDesktopForm.test.js.snap +1 -1
- package/tests/unit/src/components/SearchFilter/SearchFilter/__snapshots__/SearchFilter.test.js.snap +19 -17
- package/tests/unit/src/components/SearchFilter/__snapshots__/SearchFilterContainer.test.js.snap +7 -1
- package/tests/unit/src/components/SearchFilter/components/__snapshots__/Select.test.js.snap +1 -0
- package/tests/unit/src/components/SearchFilter/components/__snapshots__/TextSearch.test.js.snap +1 -0
- package/tests/unit/src/components/SearchFilterSort/__snapshots__/SearchFilterSort.test.js.snap +1 -0
- package/tests/unit/src/components/Video/providers/Vimeo/__snapshots__/Vimeo.test.js.snap +0 -1
- package/lib/components/Card/helpers/filter-query-setup.js.map +0 -1
- package/lib/components/Card/helpers/filters-setup.js.map +0 -1
- package/lib/components/Card/helpers/get-updated-items-to-display.js.map +0 -1
- package/lib/components/Card/helpers/get-updated-sort-properties.js.map +0 -1
- package/lib/components/Card/helpers/should-return.js.map +0 -1
- package/lib/components/Card/helpers/should-skip-single-query.js.map +0 -1
- package/lib-es/components/Card/helpers/filter-query-setup.js.map +0 -1
- package/lib-es/components/Card/helpers/filters-setup.js.map +0 -1
- package/lib-es/components/Card/helpers/get-updated-items-to-display.js.map +0 -1
- package/lib-es/components/Card/helpers/get-updated-sort-properties.js.map +0 -1
- package/lib-es/components/Card/helpers/should-return.js.map +0 -1
- package/lib-es/components/Card/helpers/should-skip-single-query.js.map +0 -1
- /package/lib/{components/Card/helpers → helpers}/get-updated-items-to-display.js +0 -0
- /package/lib/{components/Card/helpers → helpers}/get-updated-sort-properties.js +0 -0
- /package/lib/{components/Card/helpers → helpers}/should-return.js +0 -0
- /package/lib-es/{components/Card/helpers → helpers}/get-updated-items-to-display.js +0 -0
- /package/lib-es/{components/Card/helpers → helpers}/get-updated-sort-properties.js +0 -0
- /package/lib-es/{components/Card/helpers → helpers}/should-return.js +0 -0
- /package/src/{components/Card/helpers → helpers}/get-updated-items-to-display.js +0 -0
- /package/src/{components/Card/helpers → helpers}/get-updated-sort-properties.js +0 -0
- /package/src/{components/Card/helpers → helpers}/should-return.js +0 -0
|
@@ -1,73 +1,41 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
+
const _excluded = ["entities", "parent"];
|
|
4
|
+
import React from 'react';
|
|
2
5
|
import PropTypes from 'prop-types';
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
if (!showMobileMenu) setDisplayChildren(false);
|
|
21
|
-
}, [showMobileMenu]);
|
|
22
|
-
const isHoverEvent = eventType === HOVER;
|
|
23
|
-
const childrenDisplayClass = displayChildren ? '' : HIDDEN;
|
|
24
|
-
const handleItemEvent = ({
|
|
25
|
-
type
|
|
26
|
-
}) => {
|
|
27
|
-
if (isHoverEvent) {
|
|
28
|
-
if (type === MOUSE_ENTER) {
|
|
29
|
-
setDisplayChildren(true);
|
|
30
|
-
}
|
|
31
|
-
if (type === MOUSE_LEAVE) {
|
|
32
|
-
setDisplayChildren(false);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const hasValidChildren = hasChildren(children);
|
|
37
|
-
return /*#__PURE__*/React.createElement("li", {
|
|
38
|
-
className: modifier,
|
|
39
|
-
onMouseEnter: handleItemEvent,
|
|
40
|
-
onMouseLeave: handleItemEvent,
|
|
41
|
-
"aria-label": text
|
|
42
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
43
|
-
className: "menu--item--link"
|
|
44
|
-
}, url ? /*#__PURE__*/React.createElement(BlazeLink, {
|
|
45
|
-
href: url
|
|
46
|
-
}, text) : /*#__PURE__*/React.createElement("span", {
|
|
47
|
-
role: "button",
|
|
48
|
-
onClick: handleItemEvent,
|
|
49
|
-
"aria-label": text
|
|
50
|
-
}, text), hasValidChildren && /*#__PURE__*/React.createElement("i", {
|
|
51
|
-
role: "button",
|
|
52
|
-
"aria-label": displayChildren ? `Collapse ${text} menu items` : `Expand ${text} menu items`,
|
|
53
|
-
className: "menu--item--link--icon",
|
|
54
|
-
onClick: () => setDisplayChildren(!displayChildren)
|
|
55
|
-
}, displayChildren ? /*#__PURE__*/React.createElement(FaChevronUp, null) : /*#__PURE__*/React.createElement(FaChevronDown, null))), hasValidChildren && /*#__PURE__*/React.createElement("div", {
|
|
56
|
-
className: `menu--item-children ${childrenDisplayClass}`
|
|
57
|
-
}, children));
|
|
6
|
+
import MenuItemRender from './MenuItemRender';
|
|
7
|
+
import MenuEntitiesItem from './MenuEntitiesItem';
|
|
8
|
+
const MenuItem = _ref => {
|
|
9
|
+
let {
|
|
10
|
+
entities,
|
|
11
|
+
parent
|
|
12
|
+
} = _ref,
|
|
13
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
14
|
+
const hasEntities = entities && entities.length;
|
|
15
|
+
if (!hasEntities) return /*#__PURE__*/React.createElement(MenuItemRender, _extends({
|
|
16
|
+
parent: parent
|
|
17
|
+
}, props));
|
|
18
|
+
return /*#__PURE__*/React.createElement(MenuEntitiesItem, _extends({
|
|
19
|
+
entities: entities,
|
|
20
|
+
parent: parent
|
|
21
|
+
}, props));
|
|
58
22
|
};
|
|
59
23
|
MenuItem.propTypes = {
|
|
24
|
+
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),
|
|
25
|
+
eventType: PropTypes.string.isRequired,
|
|
60
26
|
modifier: PropTypes.string,
|
|
27
|
+
parent: PropTypes.object,
|
|
61
28
|
text: PropTypes.string,
|
|
62
29
|
url: PropTypes.string,
|
|
63
|
-
|
|
64
|
-
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])
|
|
30
|
+
entities: PropTypes.array
|
|
65
31
|
};
|
|
66
32
|
MenuItem.defaultProps = {
|
|
67
|
-
|
|
33
|
+
children: null,
|
|
68
34
|
modifier: '',
|
|
35
|
+
parent: {},
|
|
69
36
|
text: '',
|
|
70
|
-
|
|
37
|
+
url: '',
|
|
38
|
+
entities: []
|
|
71
39
|
};
|
|
72
40
|
export default MenuItem;
|
|
73
41
|
//# sourceMappingURL=MenuItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.js","names":["React","
|
|
1
|
+
{"version":3,"file":"MenuItem.js","names":["React","PropTypes","MenuItemRender","MenuEntitiesItem","MenuItem","_ref","entities","parent","props","_objectWithoutProperties","_excluded","hasEntities","length","createElement","_extends","propTypes","children","oneOfType","arrayOf","node","eventType","string","isRequired","modifier","object","text","url","array","defaultProps"],"sources":["../../../src/components/MenuItem/MenuItem.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport MenuItemRender from './MenuItemRender';\nimport MenuEntitiesItem from './MenuEntitiesItem';\n\nconst MenuItem = ({ entities, parent, ...props }) => {\n const hasEntities = entities && entities.length;\n\n if (!hasEntities) return <MenuItemRender parent={parent} {...props} />;\n\n return <MenuEntitiesItem entities={entities} parent={parent} {...props} />;\n};\n\nMenuItem.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n eventType: PropTypes.string.isRequired,\n modifier: PropTypes.string,\n parent: PropTypes.object,\n text: PropTypes.string,\n url: PropTypes.string,\n entities: PropTypes.array\n};\n\nMenuItem.defaultProps = {\n children: null,\n modifier: '',\n parent: {},\n text: '',\n url: '',\n entities: []\n};\n\nexport default MenuItem;\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,cAAc,MAAM,kBAAkB;AAC7C,OAAOC,gBAAgB,MAAM,oBAAoB;AAEjD,MAAMC,QAAQ,GAAGC,IAAA,IAAoC;EAAA,IAAnC;MAAEC,QAAQ;MAAEC;IAAiB,CAAC,GAAAF,IAAA;IAAPG,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAC5C,MAAMC,WAAW,GAAGL,QAAQ,IAAIA,QAAQ,CAACM,MAAM;EAE/C,IAAI,CAACD,WAAW,EAAE,oBAAOX,KAAA,CAAAa,aAAA,CAACX,cAAc,EAAAY,QAAA;IAACP,MAAM,EAAEA;EAAO,GAAKC,KAAK,CAAG,CAAC;EAEtE,oBAAOR,KAAA,CAAAa,aAAA,CAACV,gBAAgB,EAAAW,QAAA;IAACR,QAAQ,EAAEA,QAAS;IAACC,MAAM,EAAEA;EAAO,GAAKC,KAAK,CAAG,CAAC;AAC5E,CAAC;AAEDJ,QAAQ,CAACW,SAAS,GAAG;EACnBC,QAAQ,EAAEf,SAAS,CAACgB,SAAS,CAAC,CAAChB,SAAS,CAACiB,OAAO,CAACjB,SAAS,CAACkB,IAAI,CAAC,EAAElB,SAAS,CAACkB,IAAI,CAAC,CAAC;EAClFC,SAAS,EAAEnB,SAAS,CAACoB,MAAM,CAACC,UAAU;EACtCC,QAAQ,EAAEtB,SAAS,CAACoB,MAAM;EAC1Bd,MAAM,EAAEN,SAAS,CAACuB,MAAM;EACxBC,IAAI,EAAExB,SAAS,CAACoB,MAAM;EACtBK,GAAG,EAAEzB,SAAS,CAACoB,MAAM;EACrBf,QAAQ,EAAEL,SAAS,CAAC0B;AACtB,CAAC;AAEDvB,QAAQ,CAACwB,YAAY,GAAG;EACtBZ,QAAQ,EAAE,IAAI;EACdO,QAAQ,EAAE,EAAE;EACZhB,MAAM,EAAE,CAAC,CAAC;EACVkB,IAAI,EAAE,EAAE;EACRC,GAAG,EAAE,EAAE;EACPpB,QAAQ,EAAE;AACZ,CAAC;AAED,eAAeF,QAAQ"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import React, { useState, useContext, useEffect } from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { FaChevronDown, FaChevronUp } from 'react-icons/fa';
|
|
4
|
+
import { useStringTemplate } from '@blaze-cms/utils-handlebars';
|
|
5
|
+
import { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN } from '../../constants';
|
|
6
|
+
import { hasChildren } from '../../helpers';
|
|
7
|
+
import BlazeLink from '../BlazeLink';
|
|
8
|
+
import MenuContext from '../Menu/MenuContext';
|
|
9
|
+
import { injectHelperIntoTemplate } from './helpers';
|
|
10
|
+
const MenuItemRender = ({
|
|
11
|
+
children,
|
|
12
|
+
eventType,
|
|
13
|
+
text,
|
|
14
|
+
modifier,
|
|
15
|
+
url,
|
|
16
|
+
parent
|
|
17
|
+
}) => {
|
|
18
|
+
const [displayChildren, setDisplayChildren] = useState(false);
|
|
19
|
+
const {
|
|
20
|
+
showMobileMenu
|
|
21
|
+
} = useContext(MenuContext);
|
|
22
|
+
const {
|
|
23
|
+
loading: loadingText,
|
|
24
|
+
data: [textToUse]
|
|
25
|
+
} = useStringTemplate(parent, [text]);
|
|
26
|
+
const {
|
|
27
|
+
loading: loadingUrl,
|
|
28
|
+
data: [urlToUse]
|
|
29
|
+
} = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (!showMobileMenu) setDisplayChildren(false);
|
|
32
|
+
}, [showMobileMenu]);
|
|
33
|
+
if (loadingUrl || loadingText) return '';
|
|
34
|
+
const isHoverEvent = eventType === HOVER;
|
|
35
|
+
const childrenDisplayClass = displayChildren ? '' : HIDDEN;
|
|
36
|
+
const handleItemEvent = ({
|
|
37
|
+
type
|
|
38
|
+
}) => {
|
|
39
|
+
if (isHoverEvent) {
|
|
40
|
+
if (type === MOUSE_ENTER) {
|
|
41
|
+
setDisplayChildren(true);
|
|
42
|
+
}
|
|
43
|
+
if (type === MOUSE_LEAVE) {
|
|
44
|
+
setDisplayChildren(false);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const hasValidChildren = hasChildren(children);
|
|
49
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
50
|
+
className: modifier,
|
|
51
|
+
onMouseEnter: handleItemEvent,
|
|
52
|
+
onMouseLeave: handleItemEvent
|
|
53
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
54
|
+
className: "menu--item--link"
|
|
55
|
+
}, urlToUse ? /*#__PURE__*/React.createElement(BlazeLink, {
|
|
56
|
+
href: urlToUse
|
|
57
|
+
}, textToUse) : /*#__PURE__*/React.createElement("span", {
|
|
58
|
+
role: "button",
|
|
59
|
+
onClick: handleItemEvent
|
|
60
|
+
}, textToUse), hasValidChildren && /*#__PURE__*/React.createElement("i", {
|
|
61
|
+
role: "button",
|
|
62
|
+
className: "menu--item--link--icon",
|
|
63
|
+
onClick: () => setDisplayChildren(!displayChildren)
|
|
64
|
+
}, displayChildren ? /*#__PURE__*/React.createElement(FaChevronUp, null) : /*#__PURE__*/React.createElement(FaChevronDown, null))), hasValidChildren && /*#__PURE__*/React.createElement("div", {
|
|
65
|
+
className: `menu--item-children ${childrenDisplayClass}`
|
|
66
|
+
}, children));
|
|
67
|
+
};
|
|
68
|
+
MenuItemRender.propTypes = {
|
|
69
|
+
modifier: PropTypes.string,
|
|
70
|
+
text: PropTypes.string,
|
|
71
|
+
url: PropTypes.string,
|
|
72
|
+
eventType: PropTypes.string.isRequired,
|
|
73
|
+
parent: PropTypes.object,
|
|
74
|
+
children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])
|
|
75
|
+
};
|
|
76
|
+
MenuItemRender.defaultProps = {
|
|
77
|
+
url: '',
|
|
78
|
+
modifier: '',
|
|
79
|
+
text: '',
|
|
80
|
+
children: null,
|
|
81
|
+
parent: {}
|
|
82
|
+
};
|
|
83
|
+
export default MenuItemRender;
|
|
84
|
+
//# sourceMappingURL=MenuItemRender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuItemRender.js","names":["React","useState","useContext","useEffect","PropTypes","FaChevronDown","FaChevronUp","useStringTemplate","HOVER","MOUSE_ENTER","MOUSE_LEAVE","HIDDEN","hasChildren","BlazeLink","MenuContext","injectHelperIntoTemplate","MenuItemRender","children","eventType","text","modifier","url","parent","displayChildren","setDisplayChildren","showMobileMenu","loading","loadingText","data","textToUse","loadingUrl","urlToUse","isHoverEvent","childrenDisplayClass","handleItemEvent","type","hasValidChildren","createElement","className","onMouseEnter","onMouseLeave","href","role","onClick","propTypes","string","isRequired","object","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/MenuItem/MenuItemRender.js"],"sourcesContent":["import React, { useState, useContext, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FaChevronDown, FaChevronUp } from 'react-icons/fa';\nimport { useStringTemplate } from '@blaze-cms/utils-handlebars';\nimport { HOVER, MOUSE_ENTER, MOUSE_LEAVE, HIDDEN } from '../../constants';\nimport { hasChildren } from '../../helpers';\nimport BlazeLink from '../BlazeLink';\nimport MenuContext from '../Menu/MenuContext';\nimport { injectHelperIntoTemplate } from './helpers';\n\nconst MenuItemRender = ({ children, eventType, text, modifier, url, parent }) => {\n const [displayChildren, setDisplayChildren] = useState(false);\n const { showMobileMenu } = useContext(MenuContext);\n const {\n loading: loadingText,\n data: [textToUse]\n } = useStringTemplate(parent, [text]);\n\n const {\n loading: loadingUrl,\n data: [urlToUse]\n } = useStringTemplate(parent, [injectHelperIntoTemplate(url, 'url_encode')]);\n\n useEffect(\n () => {\n if (!showMobileMenu) setDisplayChildren(false);\n },\n [showMobileMenu]\n );\n\n if (loadingUrl || loadingText) return '';\n\n const isHoverEvent = eventType === HOVER;\n const childrenDisplayClass = displayChildren ? '' : HIDDEN;\n\n const handleItemEvent = ({ type }) => {\n if (isHoverEvent) {\n if (type === MOUSE_ENTER) {\n setDisplayChildren(true);\n }\n if (type === MOUSE_LEAVE) {\n setDisplayChildren(false);\n }\n }\n };\n const hasValidChildren = hasChildren(children);\n\n return (\n <li className={modifier} onMouseEnter={handleItemEvent} onMouseLeave={handleItemEvent}>\n <div className=\"menu--item--link\">\n {urlToUse ? (\n <BlazeLink href={urlToUse}>{textToUse}</BlazeLink>\n ) : (\n <span role=\"button\" onClick={handleItemEvent}>\n {textToUse}\n </span>\n )}\n {hasValidChildren && (\n <i\n role=\"button\"\n className=\"menu--item--link--icon\"\n onClick={() => setDisplayChildren(!displayChildren)}>\n {displayChildren ? <FaChevronUp /> : <FaChevronDown />}\n </i>\n )}\n </div>\n\n {hasValidChildren && (\n <div className={`menu--item-children ${childrenDisplayClass}`}>{children}</div>\n )}\n </li>\n );\n};\n\nMenuItemRender.propTypes = {\n modifier: PropTypes.string,\n text: PropTypes.string,\n url: PropTypes.string,\n eventType: PropTypes.string.isRequired,\n parent: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenuItemRender.defaultProps = {\n url: '',\n modifier: '',\n text: '',\n children: null,\n parent: {}\n};\n\nexport default MenuItemRender;\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["injectHelperIntoTemplate"],"sources":["../../../../src/components/MenuItem/helpers/index.js"],"sourcesContent":["import injectHelperIntoTemplate from './inject-helper-into-template';\n\nexport { injectHelperIntoTemplate };\n"],"mappings":"AAAA,OAAOA,wBAAwB,MAAM,+BAA+B;AAEpE,SAASA,wBAAwB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const injectHelperIntoTemplate = (template, helper) => {
|
|
2
|
+
if (!helper || !template) return template;
|
|
3
|
+
let result = template.replace(/{{{([^{}]+)}}}/g, `{{{${helper} $1}}}`);
|
|
4
|
+
result = result.replace(/{{([^{}]+)}}(?!})/g, `{{${helper} $1}}`);
|
|
5
|
+
return result;
|
|
6
|
+
};
|
|
7
|
+
export default injectHelperIntoTemplate;
|
|
8
|
+
//# sourceMappingURL=inject-helper-into-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-helper-into-template.js","names":["injectHelperIntoTemplate","template","helper","result","replace"],"sources":["../../../../src/components/MenuItem/helpers/inject-helper-into-template.js"],"sourcesContent":["const injectHelperIntoTemplate = (template, helper) => {\n if (!helper || !template) return template;\n\n let result = template.replace(/{{{([^{}]+)}}}/g, `{{{${helper} $1}}}`);\n\n result = result.replace(/{{([^{}]+)}}(?!})/g, `{{${helper} $1}}`);\n\n return result;\n};\n\nexport default injectHelperIntoTemplate;\n"],"mappings":"AAAA,MAAMA,wBAAwB,GAAGA,CAACC,QAAQ,EAAEC,MAAM,KAAK;EACrD,IAAI,CAACA,MAAM,IAAI,CAACD,QAAQ,EAAE,OAAOA,QAAQ;EAEzC,IAAIE,MAAM,GAAGF,QAAQ,CAACG,OAAO,CAAC,iBAAiB,EAAG,MAAKF,MAAO,QAAO,CAAC;EAEtEC,MAAM,GAAGA,MAAM,CAACC,OAAO,CAAC,oBAAoB,EAAG,KAAIF,MAAO,OAAM,CAAC;EAEjE,OAAOC,MAAM;AACf,CAAC;AAED,eAAeH,wBAAwB"}
|
|
@@ -2,7 +2,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
|
|
|
2
2
|
const _excluded = ["children", "elementTitle", "onClose"];
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
|
-
import BlazeModal from '
|
|
5
|
+
import BlazeModal from '../ModalAdapter';
|
|
6
6
|
import { renderChildren, updateChildrensParent, hasChildren } from '../../helpers';
|
|
7
7
|
const Modal = _ref => {
|
|
8
8
|
let {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","names":["React","PropTypes","BlazeModal","renderChildren","updateChildrensParent","hasChildren","Modal","_ref","children","elementTitle","onClose","otherProps","_objectWithoutProperties","_excluded","parent","itemId","itemEntity","createElement","title","propTypes","func","string","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/Modal/Modal.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport BlazeModal from '
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["React","PropTypes","BlazeModal","renderChildren","updateChildrensParent","hasChildren","Modal","_ref","children","elementTitle","onClose","otherProps","_objectWithoutProperties","_excluded","parent","itemId","itemEntity","createElement","title","propTypes","func","string","oneOfType","arrayOf","node","defaultProps"],"sources":["../../../src/components/Modal/Modal.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport BlazeModal from '../ModalAdapter';\nimport { renderChildren, updateChildrensParent, hasChildren } from '../../helpers';\n\nconst Modal = ({ children, elementTitle, onClose, ...otherProps }) => {\n if (!hasChildren(children)) return null;\n\n updateChildrensParent(children, otherProps.parent.itemId, otherProps.parent.itemEntity);\n return (\n <BlazeModal title={elementTitle} onClose={onClose}>\n {renderChildren(children)}\n </BlazeModal>\n );\n};\n\nModal.propTypes = {\n onClose: PropTypes.func,\n elementTitle: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nModal.defaultProps = {\n onClose: () => {},\n elementTitle: '',\n children: []\n};\n\nexport default Modal;\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,iBAAiB;AACxC,SAASC,cAAc,EAAEC,qBAAqB,EAAEC,WAAW,QAAQ,eAAe;AAElF,MAAMC,KAAK,GAAGC,IAAA,IAAwD;EAAA,IAAvD;MAAEC,QAAQ;MAAEC,YAAY;MAAEC;IAAuB,CAAC,GAAAH,IAAA;IAAZI,UAAU,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAC7D,IAAI,CAACR,WAAW,CAACG,QAAQ,CAAC,EAAE,OAAO,IAAI;EAEvCJ,qBAAqB,CAACI,QAAQ,EAAEG,UAAU,CAACG,MAAM,CAACC,MAAM,EAAEJ,UAAU,CAACG,MAAM,CAACE,UAAU,CAAC;EACvF,oBACEhB,KAAA,CAAAiB,aAAA,CAACf,UAAU;IAACgB,KAAK,EAAET,YAAa;IAACC,OAAO,EAAEA;EAAQ,GAC/CP,cAAc,CAACK,QAAQ,CACd,CAAC;AAEjB,CAAC;AAEDF,KAAK,CAACa,SAAS,GAAG;EAChBT,OAAO,EAAET,SAAS,CAACmB,IAAI;EACvBX,YAAY,EAAER,SAAS,CAACoB,MAAM;EAC9Bb,QAAQ,EAAEP,SAAS,CAACqB,SAAS,CAAC,CAACrB,SAAS,CAACsB,OAAO,CAACtB,SAAS,CAACuB,IAAI,CAAC,EAAEvB,SAAS,CAACuB,IAAI,CAAC;AACnF,CAAC;AAEDlB,KAAK,CAACmB,YAAY,GAAG;EACnBf,OAAO,EAAEA,CAAA,KAAM,CAAC,CAAC;EACjBD,YAAY,EAAE,EAAE;EAChBD,QAAQ,EAAE;AACZ,CAAC;AAED,eAAeF,KAAK"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import _objectDestructuringEmpty from "@babel/runtime/helpers/objectDestructuringEmpty";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/extends";
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import Modal from '@blaze-react/modal';
|
|
5
|
+
import ReactDOM from 'react-dom';
|
|
6
|
+
import { usePortal } from '../../hooks';
|
|
7
|
+
const ModalAdapter = _ref => {
|
|
8
|
+
let props = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
|
|
9
|
+
const target = usePortal();
|
|
10
|
+
return ReactDOM.createPortal( /*#__PURE__*/React.createElement(Modal, props), target);
|
|
11
|
+
};
|
|
12
|
+
export default ModalAdapter;
|
|
13
|
+
//# sourceMappingURL=ModalAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalAdapter.js","names":["React","Modal","ReactDOM","usePortal","ModalAdapter","_ref","props","_extends","_objectDestructuringEmpty","target","createPortal","createElement"],"sources":["../../../src/components/ModalAdapter/ModalAdapter.js"],"sourcesContent":["import React from 'react';\nimport Modal from '@blaze-react/modal';\nimport ReactDOM from 'react-dom';\nimport { usePortal } from '../../hooks';\n\nconst ModalAdapter = ({ ...props }) => {\n const target = usePortal();\n\n return ReactDOM.createPortal(<Modal {...props} />, target);\n};\n\nexport default ModalAdapter;\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,MAAM,oBAAoB;AACtC,OAAOC,QAAQ,MAAM,WAAW;AAChC,SAASC,SAAS,QAAQ,aAAa;AAEvC,MAAMC,YAAY,GAAGC,IAAA,IAAkB;EAAA,IAAZC,KAAK,GAAAC,QAAA,MAAAC,yBAAA,CAAAH,IAAA,GAAAA,IAAA;EAC9B,MAAMI,MAAM,GAAGN,SAAS,CAAC,CAAC;EAE1B,OAAOD,QAAQ,CAACQ,YAAY,eAACV,KAAA,CAAAW,aAAA,CAACV,KAAK,EAAKK,KAAQ,CAAC,EAAEG,MAAM,CAAC;AAC5D,CAAC;AAED,eAAeL,YAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["ModalAdapter"],"sources":["../../../src/components/ModalAdapter/index.js"],"sourcesContent":["import ModalAdapter from './ModalAdapter';\n\nexport default ModalAdapter;\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,gBAAgB;AAEzC,eAAeA,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FiltersList.js","names":["React","useContext","PropTypes","MainContext","TextSearch","Checkbox","SelectFilter","Range","CHECKBOX","SELECT","TEXT_SEARCH","RANGE","SEARCH_TERM","FiltersList","data","filters","hasUrl","entity","filterValues","updateFilterValues","shouldSearch","itemId","map","_ref","index","type","label","propsToDisplay","elementTitle","otherProps","_objectWithoutProperties","_excluded","length","dynamicKey","join","isDataAvailable","Object","keys","dataAggregations","areAggregationsAvailable","createElement","key","className","_extends","searchValue","prop","propTypes","bool","isRequired","string","object","func","array","defaultProps"],"sources":["../../../../src/components/SearchFilter/SearchFilter/FiltersList.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { TextSearch, Checkbox, SelectFilter, Range } from '../components';\nimport { CHECKBOX, SELECT, TEXT_SEARCH, RANGE, SEARCH_TERM } from '../constants';\n\nconst FiltersList = ({\n data,\n filters,\n hasUrl,\n entity,\n filterValues,\n updateFilterValues,\n shouldSearch\n}) => {\n const { itemId } = useContext(MainContext);\n\n return filters.map(({ type, label, propsToDisplay, elementTitle, ...otherProps }, index) => {\n if (!propsToDisplay && !propsToDisplay.length) return null;\n const dynamicKey = [itemId, index].join('-');\n const isDataAvailable = !!data && Object.keys(data).length;\n const dataAggregations = isDataAvailable ? data : null;\n const areAggregationsAvailable = isDataAvailable && !!dataAggregations;\n\n switch (type) {\n case TEXT_SEARCH:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--search\">\n <TextSearch\n {...otherProps}\n label={label}\n elementTitle={elementTitle}\n searchValue={filterValues[SEARCH_TERM]}\n updateFilterValues={updateFilterValues}\n filterValues={filterValues}\n />\n </div>\n );\n case CHECKBOX:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--checkboxes\">\n <Checkbox\n {...otherProps}\n data={data}\n prop={propsToDisplay[0]}\n label={label}\n elementTitle={elementTitle}\n hasUrl={hasUrl}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n );\n case SELECT:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--selects\">\n <SelectFilter\n {...otherProps}\n data={data}\n prop={propsToDisplay[0]}\n label={label}\n elementTitle={elementTitle}\n hasUrl={hasUrl}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n );\n case RANGE:\n return (\n !!areAggregationsAvailable && (\n <div key={dynamicKey} className=\"range-slider__wrapper\">\n <Range\n {...otherProps}\n dataAggregations={dataAggregations}\n propsToDisplay={propsToDisplay}\n label={label}\n elementTitle={elementTitle}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n )\n );\n default:\n return null;\n }\n });\n};\n\nFiltersList.propTypes = {\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n data: PropTypes.object,\n filters: PropTypes.array,\n shouldSearch: PropTypes.bool\n};\n\nFiltersList.defaultProps = {\n shouldSearch: false,\n data: {},\n filters: []\n};\n\nexport default FiltersList;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,UAAU,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,KAAK,QAAQ,eAAe;AACzE,SAASC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,EAAEC,KAAK,EAAEC,WAAW,QAAQ,cAAc;AAEhF,MAAMC,WAAW,GAAGA,CAAC;EACnBC,IAAI;EACJC,OAAO;EACPC,MAAM;EACNC,MAAM;EACNC,YAAY;EACZC,kBAAkB;EAClBC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAO,CAAC,GAAGpB,UAAU,CAACE,WAAW,CAAC;EAE1C,OAAOY,OAAO,CAACO,GAAG,CAAC,CAAAC,IAAA,EAA+DC,KAAK,KAAK;IAAA,IAAxE;QAAEC,IAAI;QAAEC,KAAK;QAAEC,cAAc;QAAEC;MAA4B,CAAC,GAAAL,IAAA;MAAZM,UAAU,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA;IAC5E,IAAI,CAACJ,cAAc,IAAI,CAACA,cAAc,CAACK,MAAM,EAAE,OAAO,IAAI;IAC1D,MAAMC,UAAU,GAAG,CAACZ,MAAM,EAAEG,KAAK,CAAC,CAACU,IAAI,CAAC,GAAG,CAAC;IAC5C,MAAMC,eAAe,GAAG,CAAC,CAACrB,IAAI,IAAIsB,MAAM,CAACC,IAAI,CAACvB,IAAI,CAAC,CAACkB,MAAM;IAC1D,MAAMM,gBAAgB,GAAGH,eAAe,GAAGrB,IAAI,GAAG,IAAI;IACtD,MAAMyB,wBAAwB,GAAGJ,eAAe,IAAI,CAAC,CAACG,gBAAgB;IAEtE,QAAQb,IAAI;MACV,KAAKf,WAAW;QACd,oBACEV,KAAA,CAAAwC,aAAA;UACEC,GAAG,EAAER,UAAW;UAChBS,SAAS,EAAC;QAAwE,gBAClF1C,KAAA,CAAAwC,aAAA,CAACpC,UAAU,EAAAuC,QAAA,KACLd,UAAU;UACdH,KAAK,EAAEA,KAAM;UACbE,YAAY,EAAEA,YAAa;UAC3BgB,WAAW,EAAE1B,YAAY,CAACN,WAAW,CAAE;UACvCO,kBAAkB,EAAEA,kBAAmB;UACvCD,YAAY,EAAEA;QAAa,EAC5B,CACE,CAAC;
|
|
1
|
+
{"version":3,"file":"FiltersList.js","names":["React","useContext","PropTypes","MainContext","TextSearch","Checkbox","SelectFilter","Range","CHECKBOX","SELECT","TEXT_SEARCH","RANGE","SEARCH_TERM","FiltersList","data","filters","hasUrl","entity","filterValues","updateFilterValues","shouldSearch","itemId","map","_ref","index","type","label","propsToDisplay","elementTitle","otherProps","_objectWithoutProperties","_excluded","length","dynamicKey","join","isDataAvailable","Object","keys","dataAggregations","areAggregationsAvailable","createElement","key","className","_extends","searchValue","prop","propTypes","bool","isRequired","string","object","func","array","defaultProps"],"sources":["../../../../src/components/SearchFilter/SearchFilter/FiltersList.js"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { MainContext } from '@blaze-cms/nextjs-components';\nimport { TextSearch, Checkbox, SelectFilter, Range } from '../components';\nimport { CHECKBOX, SELECT, TEXT_SEARCH, RANGE, SEARCH_TERM } from '../constants';\n\nconst FiltersList = ({\n data,\n filters,\n hasUrl,\n entity,\n filterValues,\n updateFilterValues,\n shouldSearch\n}) => {\n const { itemId } = useContext(MainContext);\n\n return filters.map(({ type, label, propsToDisplay, elementTitle, ...otherProps }, index) => {\n if (!propsToDisplay && !propsToDisplay.length) return null;\n const dynamicKey = [itemId, index].join('-');\n const isDataAvailable = !!data && Object.keys(data).length;\n const dataAggregations = isDataAvailable ? data : null;\n const areAggregationsAvailable = isDataAvailable && !!dataAggregations;\n\n switch (type) {\n case TEXT_SEARCH:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--search\">\n <TextSearch\n {...otherProps}\n label={label}\n elementTitle={elementTitle}\n searchValue={filterValues[SEARCH_TERM]}\n updateFilterValues={updateFilterValues}\n filterValues={filterValues}\n />\n </div>\n );\n\n case CHECKBOX:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--checkboxes\">\n <Checkbox\n {...otherProps}\n data={data}\n prop={propsToDisplay[0]}\n label={label}\n elementTitle={elementTitle}\n hasUrl={hasUrl}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n );\n\n case SELECT:\n return (\n <div\n key={dynamicKey}\n className=\"filter__section filter__section--search-refine filter__section--selects\">\n <SelectFilter\n {...otherProps}\n data={data}\n prop={propsToDisplay[0]}\n label={label}\n elementTitle={elementTitle}\n hasUrl={hasUrl}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n );\n\n case RANGE:\n return (\n !!areAggregationsAvailable && (\n <div key={dynamicKey} className=\"range-slider__wrapper\">\n <Range\n {...otherProps}\n dataAggregations={dataAggregations}\n propsToDisplay={propsToDisplay}\n label={label}\n elementTitle={elementTitle}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n shouldSearch={shouldSearch}\n />\n </div>\n )\n );\n default:\n return null;\n }\n });\n};\n\nFiltersList.propTypes = {\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n filterValues: PropTypes.object.isRequired,\n updateFilterValues: PropTypes.func.isRequired,\n data: PropTypes.object,\n filters: PropTypes.array,\n shouldSearch: PropTypes.bool\n};\n\nFiltersList.defaultProps = {\n shouldSearch: false,\n data: {},\n filters: []\n};\n\nexport default FiltersList;\n"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ const MobileFormToolbar = ({
|
|
|
11
11
|
"data-testid": "reset-button",
|
|
12
12
|
role: "button",
|
|
13
13
|
onClick: handleReset,
|
|
14
|
-
"aria-label": "Reset
|
|
14
|
+
"aria-label": "Reset search filters"
|
|
15
15
|
}, RESET), /*#__PURE__*/React.createElement("button", {
|
|
16
16
|
className: "search",
|
|
17
17
|
type: "submit",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileFormToolbar.js","names":["React","PropTypes","RESET","SEARCH","MobileFormToolbar","formId","handleReset","createElement","className","role","onClick","type","form","propTypes","string","isRequired","func"],"sources":["../../../../src/components/SearchFilter/SearchFilter/MobileFormToolbar.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { RESET, SEARCH } from '../constants';\n\nconst MobileFormToolbar = ({ formId, handleReset }) => (\n <div className=\"filter__refine filter__refine--mobile-open\">\n <div\n className=\"reset\"\n data-testid=\"reset-button\"\n role=\"button\"\n onClick={handleReset}\n aria-label=\"Reset
|
|
1
|
+
{"version":3,"file":"MobileFormToolbar.js","names":["React","PropTypes","RESET","SEARCH","MobileFormToolbar","formId","handleReset","createElement","className","role","onClick","type","form","propTypes","string","isRequired","func"],"sources":["../../../../src/components/SearchFilter/SearchFilter/MobileFormToolbar.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { RESET, SEARCH } from '../constants';\n\nconst MobileFormToolbar = ({ formId, handleReset }) => (\n <div className=\"filter__refine filter__refine--mobile-open\">\n <div\n className=\"reset\"\n data-testid=\"reset-button\"\n role=\"button\"\n onClick={handleReset}\n aria-label=\"Reset search filters\">\n {RESET}\n </div>\n\n <button className=\"search\" type=\"submit\" form={formId}>\n {SEARCH}\n </button>\n </div>\n);\n\nMobileFormToolbar.propTypes = {\n formId: PropTypes.string.isRequired,\n handleReset: PropTypes.func.isRequired\n};\n\nexport default MobileFormToolbar;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,KAAK,EAAEC,MAAM,QAAQ,cAAc;AAE5C,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,MAAM;EAAEC;AAAY,CAAC,kBAChDN,KAAA,CAAAO,aAAA;EAAKC,SAAS,EAAC;AAA4C,gBACzDR,KAAA,CAAAO,aAAA;EACEC,SAAS,EAAC,OAAO;EACjB,eAAY,cAAc;EAC1BC,IAAI,EAAC,QAAQ;EACbC,OAAO,EAAEJ,WAAY;EACrB,cAAW;AAAsB,GAChCJ,KACE,CAAC,eAENF,KAAA,CAAAO,aAAA;EAAQC,SAAS,EAAC,QAAQ;EAACG,IAAI,EAAC,QAAQ;EAACC,IAAI,EAAEP;AAAO,GACnDF,MACK,CACL,CACN;AAEDC,iBAAiB,CAACS,SAAS,GAAG;EAC5BR,MAAM,EAAEJ,SAAS,CAACa,MAAM,CAACC,UAAU;EACnCT,WAAW,EAAEL,SAAS,CAACe,IAAI,CAACD;AAC9B,CAAC;AAED,eAAeX,iBAAiB"}
|
|
@@ -11,12 +11,12 @@ const ResetDesktopForm = ({
|
|
|
11
11
|
className: "icon-button icon-button--reset",
|
|
12
12
|
title: "reset--button",
|
|
13
13
|
"data-testid": "reset-icon",
|
|
14
|
-
onClick: handleReset
|
|
14
|
+
onClick: handleReset,
|
|
15
|
+
"aria-label": "Reset search filters"
|
|
15
16
|
}, /*#__PURE__*/React.createElement("i", null, /*#__PURE__*/React.createElement(FaRedoAlt, null))), /*#__PURE__*/React.createElement("div", {
|
|
16
17
|
role: "button",
|
|
17
18
|
onClick: handleReset,
|
|
18
|
-
"data-testid": "reset-button"
|
|
19
|
-
"aria-label": "Reset Filters"
|
|
19
|
+
"data-testid": "reset-button"
|
|
20
20
|
}, RESET));
|
|
21
21
|
ResetDesktopForm.propTypes = {
|
|
22
22
|
handleReset: PropTypes.func.isRequired
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResetDesktopForm.js","names":["React","PropTypes","FaRedoAlt","RESET","ResetDesktopForm","handleReset","createElement","className","type","title","onClick","role","propTypes","func","isRequired"],"sources":["../../../../src/components/SearchFilter/SearchFilter/ResetDesktopForm.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FaRedoAlt } from 'react-icons/fa';\nimport { RESET } from '../constants';\n\nconst ResetDesktopForm = ({ handleReset }) => (\n <div className=\"filter__reset\">\n <button\n type=\"button\"\n className=\"icon-button icon-button--reset\"\n title=\"reset--button\"\n data-testid=\"reset-icon\"\n onClick={handleReset}>\n <i>\n <FaRedoAlt />\n </i>\n </button>\n\n <div role=\"button\" onClick={handleReset} data-testid=\"reset-button\"
|
|
1
|
+
{"version":3,"file":"ResetDesktopForm.js","names":["React","PropTypes","FaRedoAlt","RESET","ResetDesktopForm","handleReset","createElement","className","type","title","onClick","role","propTypes","func","isRequired"],"sources":["../../../../src/components/SearchFilter/SearchFilter/ResetDesktopForm.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FaRedoAlt } from 'react-icons/fa';\nimport { RESET } from '../constants';\n\nconst ResetDesktopForm = ({ handleReset }) => (\n <div className=\"filter__reset\">\n <button\n type=\"button\"\n className=\"icon-button icon-button--reset\"\n title=\"reset--button\"\n data-testid=\"reset-icon\"\n onClick={handleReset}\n aria-label=\"Reset search filters\">\n <i>\n <FaRedoAlt />\n </i>\n </button>\n\n <div role=\"button\" onClick={handleReset} data-testid=\"reset-button\">\n {RESET}\n </div>\n </div>\n);\n\nResetDesktopForm.propTypes = {\n handleReset: PropTypes.func.isRequired\n};\n\nexport default ResetDesktopForm;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,SAAS,QAAQ,gBAAgB;AAC1C,SAASC,KAAK,QAAQ,cAAc;AAEpC,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC;AAAY,CAAC,kBACvCL,KAAA,CAAAM,aAAA;EAAKC,SAAS,EAAC;AAAe,gBAC5BP,KAAA,CAAAM,aAAA;EACEE,IAAI,EAAC,QAAQ;EACbD,SAAS,EAAC,gCAAgC;EAC1CE,KAAK,EAAC,eAAe;EACrB,eAAY,YAAY;EACxBC,OAAO,EAAEL,WAAY;EACrB,cAAW;AAAsB,gBACjCL,KAAA,CAAAM,aAAA,yBACEN,KAAA,CAAAM,aAAA,CAACJ,SAAS,MAAE,CACX,CACG,CAAC,eAETF,KAAA,CAAAM,aAAA;EAAKK,IAAI,EAAC,QAAQ;EAACD,OAAO,EAAEL,WAAY;EAAC,eAAY;AAAc,GAChEF,KACE,CACF,CACN;AAEDC,gBAAgB,CAACQ,SAAS,GAAG;EAC3BP,WAAW,EAAEJ,SAAS,CAACY,IAAI,CAACC;AAC9B,CAAC;AAED,eAAeV,gBAAgB"}
|
|
@@ -3,15 +3,16 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import classnames from 'classnames';
|
|
4
4
|
import debounce from 'lodash.debounce';
|
|
5
5
|
import FiltersList from './FiltersList';
|
|
6
|
-
import { isDeviceDesktop, getResponsiveFilterClassnames, buildUrlQuery } from '../helpers';
|
|
7
6
|
import CloseMobileForm from './CloseMobileForm';
|
|
8
7
|
import ResetDesktopForm from './ResetDesktopForm';
|
|
9
8
|
import MobileFormToolbar from './MobileFormToolbar';
|
|
9
|
+
import { useFilterAggregationValues } from '../../../hooks';
|
|
10
|
+
import { isDeviceDesktop, getResponsiveFilterClassnames, buildUrlQuery } from '../helpers';
|
|
10
11
|
import { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';
|
|
11
12
|
const SearchFilter = ({
|
|
12
13
|
searchFilterRef,
|
|
13
14
|
listComponentName,
|
|
14
|
-
data,
|
|
15
|
+
data: filterData,
|
|
15
16
|
filters,
|
|
16
17
|
hasUrl,
|
|
17
18
|
entity,
|
|
@@ -24,10 +25,15 @@ const SearchFilter = ({
|
|
|
24
25
|
groupAfterMobile,
|
|
25
26
|
filterValues,
|
|
26
27
|
setAppliedFilters,
|
|
28
|
+
mobileRefineButtonText,
|
|
27
29
|
query
|
|
28
30
|
}) => {
|
|
29
31
|
const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);
|
|
30
32
|
const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);
|
|
33
|
+
const [data, setStateValues, setSelectProp] = useFilterAggregationValues({
|
|
34
|
+
data: filterData,
|
|
35
|
+
filterValues
|
|
36
|
+
});
|
|
31
37
|
const doSubmit = newValues => {
|
|
32
38
|
const newQuery = filterValues ? buildUrlQuery(newValues, filters, listComponentName, query) : '';
|
|
33
39
|
handleSearch(newQuery);
|
|
@@ -63,6 +69,8 @@ const SearchFilter = ({
|
|
|
63
69
|
doSubmit();
|
|
64
70
|
};
|
|
65
71
|
const updateFilterValues = (newValues, shouldSubmit) => {
|
|
72
|
+
const [lastChangedFilter] = Object.keys(newValues);
|
|
73
|
+
setSelectProp(lastChangedFilter);
|
|
66
74
|
setAppliedFilters({
|
|
67
75
|
newValues,
|
|
68
76
|
shouldSearch: shouldSubmit,
|
|
@@ -78,6 +86,7 @@ const SearchFilter = ({
|
|
|
78
86
|
onSubmit: e => {
|
|
79
87
|
e.preventDefault();
|
|
80
88
|
doSubmit(filterValues);
|
|
89
|
+
setStateValues(filterData);
|
|
81
90
|
}
|
|
82
91
|
}, displaySearchFilter && /*#__PURE__*/React.createElement(CloseMobileForm, {
|
|
83
92
|
handleClose: () => setDisplaySearchFilter(false)
|
|
@@ -124,6 +133,7 @@ const SearchFilter = ({
|
|
|
124
133
|
"data-testId": "search-filter-desktop-toggler",
|
|
125
134
|
className: moreFiltersDesktopTogglerClass,
|
|
126
135
|
type: "button",
|
|
136
|
+
"aria-label": moreFiltersDesktopCollapsed ? 'Show more search filters' : 'Show less search filters',
|
|
127
137
|
onClick: () => setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)
|
|
128
138
|
}, moreFiltersDesktopCollapsed ? 'More filters' : 'Less filters'), /*#__PURE__*/React.createElement("div", {
|
|
129
139
|
className: moreFiltersDesktopWrapperClass
|
|
@@ -159,12 +169,12 @@ const SearchFilter = ({
|
|
|
159
169
|
handleReset: handleReset
|
|
160
170
|
})), isCollapsedOnResponsive && !displaySearchFilter && /*#__PURE__*/React.createElement("div", {
|
|
161
171
|
className: "filter__refine filter__refine--mobile-close",
|
|
162
|
-
"data-testid": "refine-mobile"
|
|
172
|
+
"data-testid": "refine-mobile",
|
|
173
|
+
"aria-label": "Toggle Search Filter"
|
|
163
174
|
}, /*#__PURE__*/React.createElement("div", {
|
|
164
175
|
role: "button",
|
|
165
|
-
onClick: () => setDisplaySearchFilter(true)
|
|
166
|
-
|
|
167
|
-
}, REFINE)));
|
|
176
|
+
onClick: () => setDisplaySearchFilter(true)
|
|
177
|
+
}, mobileRefineButtonText || REFINE)));
|
|
168
178
|
};
|
|
169
179
|
SearchFilter.propTypes = {
|
|
170
180
|
data: PropTypes.object.isRequired,
|
|
@@ -182,9 +192,11 @@ SearchFilter.propTypes = {
|
|
|
182
192
|
filterValues: PropTypes.object.isRequired,
|
|
183
193
|
setAppliedFilters: PropTypes.func.isRequired,
|
|
184
194
|
listComponentName: PropTypes.string,
|
|
185
|
-
query: PropTypes.object
|
|
195
|
+
query: PropTypes.object,
|
|
196
|
+
mobileRefineButtonText: PropTypes.string
|
|
186
197
|
};
|
|
187
198
|
SearchFilter.defaultProps = {
|
|
199
|
+
mobileRefineButtonText: '',
|
|
188
200
|
listComponentName: '',
|
|
189
201
|
query: {}
|
|
190
202
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchFilter.js","names":["React","useState","useEffect","PropTypes","classnames","debounce","FiltersList","isDeviceDesktop","getResponsiveFilterClassnames","buildUrlQuery","CloseMobileForm","ResetDesktopForm","MobileFormToolbar","SEARCH","REFINE","MORE_FILTERS_CLASSES","SearchFilter","searchFilterRef","listComponentName","data","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","groupAfterDesktop","groupAfterMobile","filterValues","setAppliedFilters","query","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","doSubmit","newValues","newQuery","handleSubmit","shouldSearch","type","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","shouldGroup","createElement","Fragment","ref","className","id","onSubmit","e","preventDefault","handleClose","slice","onClick","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","MOBILE_BUTTONS","role","propTypes","object","isRequired","array","bool","string","func","number","defaultProps"],"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport { isDeviceDesktop, getResponsiveFilterClassnames, buildUrlQuery } from '../helpers';\n\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst SearchFilter = ({\n searchFilterRef,\n listComponentName,\n data,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n groupAfterDesktop,\n groupAfterMobile,\n filterValues,\n setAppliedFilters,\n query\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n\n const doSubmit = newValues => {\n const newQuery = filterValues\n ? buildUrlQuery(newValues, filters, listComponentName, query)\n : '';\n handleSearch(newQuery);\n setMoreFiltersDesktopCollapsed(true);\n setMoreFiltersMobileCollapsed(true);\n };\n\n const handleSubmit = debounce(newValues => {\n doSubmit(newValues);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n setAppliedFilters({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit, setAppliedFilters]\n );\n\n const formClass = classnames('filter__form filter__form--initial', {\n 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,\n 'filter__form--collapsible': isCollapsedOnResponsive\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n setAppliedFilters({ type: 'reset' });\n doSubmit();\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n setAppliedFilters({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n\n return (\n <>\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n doSubmit(filterValues);\n }}>\n {displaySearchFilter && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!shouldGroup && (\n <FiltersList\n shouldSearch={!hasUrl}\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {shouldGroup && (\n <>\n <FiltersList\n shouldSearch={!hasUrl}\n data={data}\n filters={filters.slice(0, groupAfterMobile)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterMobile && (\n <button\n data-testId=\"search-filter-mobile-toggler\"\n className={moreFiltersMobileTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>\n Filters\n </button>\n )}\n\n <div className={moreFiltersMobileWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>\n <FiltersList\n shouldSearch={!hasUrl && isDeviceDesktop()}\n data={data}\n filters={filters.slice(\n groupAfterMobile,\n groupAfterDesktop ? groupAfterDesktop - 1 : 0\n )}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterDesktop && (\n <button\n data-testId=\"search-filter-desktop-toggler\"\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n {moreFiltersDesktopCollapsed ? 'More filters' : 'Less filters'}\n </button>\n )}\n\n <div className={moreFiltersDesktopWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>\n <FiltersList\n shouldSearch={false}\n data={data}\n filters={filters.slice(groupAfterDesktop)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </div>\n\n <div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n {!displaySearchFilter && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {displaySearchFilter && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n\n {isCollapsedOnResponsive &&\n !displaySearchFilter && (\n <div className=\"filter__refine filter__refine--mobile-close\" data-testid=\"refine-mobile\">\n <div\n role=\"button\"\n onClick={() => setDisplaySearchFilter(true)}\n aria-label=\"Toggle Search Filter\">\n {REFINE}\n </div>\n </div>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfterDesktop: PropTypes.number.isRequired,\n groupAfterMobile: PropTypes.number.isRequired,\n filterValues: PropTypes.object.isRequired,\n setAppliedFilters: PropTypes.func.isRequired,\n listComponentName: PropTypes.string,\n query: PropTypes.object\n};\n\nSearchFilter.defaultProps = {\n listComponentName: '',\n query: {}\n};\n\nexport default SearchFilter;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SearchFilter.js","names":["React","useState","useEffect","PropTypes","classnames","debounce","FiltersList","CloseMobileForm","ResetDesktopForm","MobileFormToolbar","useFilterAggregationValues","isDeviceDesktop","getResponsiveFilterClassnames","buildUrlQuery","SEARCH","REFINE","MORE_FILTERS_CLASSES","SearchFilter","searchFilterRef","listComponentName","data","filterData","filters","hasUrl","entity","handleSearch","name","isCollapsedOnResponsive","displaySearchFilter","setDisplaySearchFilter","groupAfterDesktop","groupAfterMobile","filterValues","setAppliedFilters","mobileRefineButtonText","query","moreFiltersMobileCollapsed","setMoreFiltersMobileCollapsed","moreFiltersDesktopCollapsed","setMoreFiltersDesktopCollapsed","setStateValues","setSelectProp","doSubmit","newValues","newQuery","handleSubmit","shouldSearch","type","formClass","moreFiltersMobileWrapperClass","moreFiltersMobileTogglerClass","moreFiltersDesktopWrapperClass","moreFiltersDesktopTogglerClass","formId","handleReset","updateFilterValues","shouldSubmit","lastChangedFilter","Object","keys","shouldGroup","createElement","Fragment","ref","className","id","onSubmit","e","preventDefault","handleClose","slice","onClick","MOBILE_CONTENT","DESKTOP_CONTENT","DESKTOP_BUTTONS","MOBILE_BUTTONS","role","propTypes","object","isRequired","array","bool","string","func","number","defaultProps"],"sources":["../../../../src/components/SearchFilter/SearchFilter/SearchFilter.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport FiltersList from './FiltersList';\nimport CloseMobileForm from './CloseMobileForm';\nimport ResetDesktopForm from './ResetDesktopForm';\nimport MobileFormToolbar from './MobileFormToolbar';\nimport { useFilterAggregationValues } from '../../../hooks';\nimport { isDeviceDesktop, getResponsiveFilterClassnames, buildUrlQuery } from '../helpers';\nimport { SEARCH, REFINE, MORE_FILTERS_CLASSES } from '../constants';\n\nconst SearchFilter = ({\n searchFilterRef,\n listComponentName,\n data: filterData,\n filters,\n hasUrl,\n entity,\n handleSearch,\n name,\n isCollapsedOnResponsive,\n displaySearchFilter,\n setDisplaySearchFilter,\n groupAfterDesktop,\n groupAfterMobile,\n filterValues,\n setAppliedFilters,\n mobileRefineButtonText,\n query\n}) => {\n const [moreFiltersMobileCollapsed, setMoreFiltersMobileCollapsed] = useState(true);\n const [moreFiltersDesktopCollapsed, setMoreFiltersDesktopCollapsed] = useState(true);\n\n const [data, setStateValues, setSelectProp] = useFilterAggregationValues({\n data: filterData,\n filterValues\n });\n\n const doSubmit = newValues => {\n const newQuery = filterValues\n ? buildUrlQuery(newValues, filters, listComponentName, query)\n : '';\n handleSearch(newQuery);\n setMoreFiltersDesktopCollapsed(true);\n setMoreFiltersMobileCollapsed(true);\n };\n\n const handleSubmit = debounce(newValues => {\n doSubmit(newValues);\n }, 200);\n\n useEffect(\n () => {\n if (filterValues.shouldSearch) {\n handleSubmit(filterValues);\n setAppliedFilters({ type: 'resetSearch' });\n }\n },\n [filterValues, handleSubmit, setAppliedFilters]\n );\n\n const formClass = classnames('filter__form filter__form--initial', {\n 'filter__form--mobile': isCollapsedOnResponsive && displaySearchFilter,\n 'filter__form--collapsible': isCollapsedOnResponsive\n });\n\n const {\n moreFiltersMobileWrapperClass,\n moreFiltersMobileTogglerClass,\n moreFiltersDesktopWrapperClass,\n moreFiltersDesktopTogglerClass\n } = getResponsiveFilterClassnames(moreFiltersDesktopCollapsed, moreFiltersMobileCollapsed);\n\n const formId = `filter-${name}-form`;\n\n const handleReset = () => {\n setAppliedFilters({ type: 'reset' });\n doSubmit();\n };\n\n const updateFilterValues = (newValues, shouldSubmit) => {\n const [lastChangedFilter] = Object.keys(newValues);\n setSelectProp(lastChangedFilter);\n setAppliedFilters({ newValues, shouldSearch: shouldSubmit, type: 'update' });\n };\n\n const shouldGroup = !!(groupAfterDesktop || groupAfterMobile);\n\n return (\n <>\n <form\n ref={searchFilterRef}\n className={formClass}\n data-testid={formId}\n id={formId}\n onSubmit={e => {\n e.preventDefault();\n doSubmit(filterValues);\n setStateValues(filterData);\n }}>\n {displaySearchFilter && (\n <CloseMobileForm handleClose={() => setDisplaySearchFilter(false)} />\n )}\n\n <div className=\"filter filter--search-refine\">\n <ResetDesktopForm handleReset={handleReset} />\n\n <div className=\"filter__wrapper filter__wrapper--search-refine\">\n {!shouldGroup && (\n <FiltersList\n shouldSearch={!hasUrl}\n data={data}\n filters={filters}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n )}\n\n {shouldGroup && (\n <>\n <FiltersList\n shouldSearch={!hasUrl}\n data={data}\n filters={filters.slice(0, groupAfterMobile)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterMobile && (\n <button\n data-testId=\"search-filter-mobile-toggler\"\n className={moreFiltersMobileTogglerClass}\n type=\"button\"\n onClick={() => setMoreFiltersMobileCollapsed(!moreFiltersMobileCollapsed)}>\n Filters\n </button>\n )}\n\n <div className={moreFiltersMobileWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.MOBILE_CONTENT}>\n <FiltersList\n shouldSearch={!hasUrl && isDeviceDesktop()}\n data={data}\n filters={filters.slice(\n groupAfterMobile,\n groupAfterDesktop ? groupAfterDesktop - 1 : 0\n )}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n\n {!!groupAfterDesktop && (\n <button\n data-testId=\"search-filter-desktop-toggler\"\n className={moreFiltersDesktopTogglerClass}\n type=\"button\"\n aria-label={\n moreFiltersDesktopCollapsed\n ? 'Show more search filters'\n : 'Show less search filters'\n }\n onClick={() =>\n setMoreFiltersDesktopCollapsed(!moreFiltersDesktopCollapsed)\n }>\n {moreFiltersDesktopCollapsed ? 'More filters' : 'Less filters'}\n </button>\n )}\n\n <div className={moreFiltersDesktopWrapperClass}>\n <div className={MORE_FILTERS_CLASSES.DESKTOP_CONTENT}>\n <FiltersList\n shouldSearch={false}\n data={data}\n filters={filters.slice(groupAfterDesktop)}\n hasUrl={hasUrl}\n entity={entity}\n filterValues={filterValues}\n updateFilterValues={updateFilterValues}\n />\n </div>\n\n <div className={MORE_FILTERS_CLASSES.DESKTOP_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </div>\n\n <div className={MORE_FILTERS_CLASSES.MOBILE_BUTTONS}>\n <ResetDesktopForm handleReset={handleReset} />\n\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n </div>\n </div>\n </>\n )}\n\n {!displaySearchFilter && (\n <button className=\"button button--full-width\" type=\"submit\">\n {SEARCH}\n </button>\n )}\n </div>\n </div>\n\n {displaySearchFilter && <MobileFormToolbar formId={formId} handleReset={handleReset} />}\n </form>\n\n {isCollapsedOnResponsive &&\n !displaySearchFilter && (\n <div\n className=\"filter__refine filter__refine--mobile-close\"\n data-testid=\"refine-mobile\"\n aria-label=\"Toggle Search Filter\">\n <div role=\"button\" onClick={() => setDisplaySearchFilter(true)}>\n {mobileRefineButtonText || REFINE}\n </div>\n </div>\n )}\n </>\n );\n};\n\nSearchFilter.propTypes = {\n data: PropTypes.object.isRequired,\n filters: PropTypes.array.isRequired,\n searchFilterRef: PropTypes.object.isRequired,\n hasUrl: PropTypes.bool.isRequired,\n entity: PropTypes.string.isRequired,\n handleSearch: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n displaySearchFilter: PropTypes.bool.isRequired,\n setDisplaySearchFilter: PropTypes.func.isRequired,\n isCollapsedOnResponsive: PropTypes.bool.isRequired,\n groupAfterDesktop: PropTypes.number.isRequired,\n groupAfterMobile: PropTypes.number.isRequired,\n filterValues: PropTypes.object.isRequired,\n setAppliedFilters: PropTypes.func.isRequired,\n listComponentName: PropTypes.string,\n query: PropTypes.object,\n mobileRefineButtonText: PropTypes.string\n};\n\nSearchFilter.defaultProps = {\n mobileRefineButtonText: '',\n listComponentName: '',\n query: {}\n};\n\nexport default SearchFilter;\n"],"mappings":"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"}
|