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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/lib/application/query/index.js +7 -1
  3. package/lib/application/query/index.js.map +1 -1
  4. package/lib/components/DataSummary/helpers/get-link-to-published-content.js +5 -2
  5. package/lib/components/DataSummary/helpers/get-link-to-published-content.js.map +1 -1
  6. package/lib/components/Menu/Menu.js +35 -4
  7. package/lib/components/Menu/Menu.js.map +1 -1
  8. package/lib/components/SearchContent/index.js +195 -0
  9. package/lib/components/SearchContent/index.js.map +1 -0
  10. package/lib/components/index.js +5 -5
  11. package/lib/components/index.js.map +1 -1
  12. package/lib/helpers/get-filter-props.js +3 -1
  13. package/lib/helpers/get-filter-props.js.map +1 -1
  14. package/lib-es/application/query/index.js +29 -1
  15. package/lib-es/application/query/index.js.map +1 -1
  16. package/lib-es/components/DataSummary/helpers/get-link-to-published-content.js +3 -2
  17. package/lib-es/components/DataSummary/helpers/get-link-to-published-content.js.map +1 -1
  18. package/lib-es/components/Menu/Menu.js +35 -5
  19. package/lib-es/components/Menu/Menu.js.map +1 -1
  20. package/lib-es/components/SearchContent/index.js +149 -0
  21. package/lib-es/components/SearchContent/index.js.map +1 -0
  22. package/lib-es/components/index.js +4 -4
  23. package/lib-es/components/index.js.map +1 -1
  24. package/lib-es/helpers/get-filter-props.js +2 -1
  25. package/lib-es/helpers/get-filter-props.js.map +1 -1
  26. package/package.json +2 -2
  27. package/src/application/query/index.js +29 -0
  28. package/src/components/DataSummary/helpers/get-link-to-published-content.js +4 -2
  29. package/src/components/Menu/Menu.js +32 -2
  30. package/src/components/SearchContent/index.js +146 -0
  31. package/src/components/index.js +4 -2
  32. package/src/helpers/get-filter-props.js +4 -1
  33. package/tests/helpers/mocks.js +6 -0
  34. package/tests/unit/src/components/DataSummary/helpers/get-link-to-published-content.test.js +18 -4
  35. package/tests/unit/src/components/Menu/__snapshots__/Menu.test.js.snap +11 -7
  36. package/tests/unit/src/components/__snapshots__/index.test.js.snap +4 -4
  37. package/tests/unit/src/helpers/get-filter-props.test.js +10 -0
@@ -1,8 +1,9 @@
1
1
  const getLinkToPublishedContent = (key = '', props = {}) => {
2
2
  if (key.includes('published')) {
3
3
  const [baseKey] = key.split('.');
4
- const content = props[baseKey] && props[baseKey][0];
5
- return content ? content.url : '';
4
+ if (!props[baseKey]) return '';
5
+ const content = Array.isArray(props[baseKey]) ? props[baseKey][0] : props[baseKey];
6
+ return content && content.url ? content.url : '';
6
7
  }
7
8
 
8
9
  return '';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/DataSummary/helpers/get-link-to-published-content.js"],"names":["getLinkToPublishedContent","key","props","includes","baseKey","split","content","url"],"mappings":"AAAA,MAAMA,yBAAyB,GAAG,CAACC,GAAG,GAAG,EAAP,EAAWC,KAAK,GAAG,EAAnB,KAA0B;AAC1D,MAAID,GAAG,CAACE,QAAJ,CAAa,WAAb,CAAJ,EAA+B;AAC7B,UAAM,CAACC,OAAD,IAAYH,GAAG,CAACI,KAAJ,CAAU,GAAV,CAAlB;AACA,UAAMC,OAAO,GAAGJ,KAAK,CAACE,OAAD,CAAL,IAAkBF,KAAK,CAACE,OAAD,CAAL,CAAe,CAAf,CAAlC;AACA,WAAOE,OAAO,GAAGA,OAAO,CAACC,GAAX,GAAiB,EAA/B;AACD;;AACD,SAAO,EAAP;AACD,CAPD;;AASA,eAAeP,yBAAf","sourcesContent":["const getLinkToPublishedContent = (key = '', props = {}) => {\n if (key.includes('published')) {\n const [baseKey] = key.split('.');\n const content = props[baseKey] && props[baseKey][0];\n return content ? content.url : '';\n }\n return '';\n};\n\nexport default getLinkToPublishedContent;\n"],"file":"get-link-to-published-content.js"}
1
+ {"version":3,"sources":["../../../../src/components/DataSummary/helpers/get-link-to-published-content.js"],"names":["getLinkToPublishedContent","key","props","includes","baseKey","split","content","Array","isArray","url"],"mappings":"AAAA,MAAMA,yBAAyB,GAAG,CAACC,GAAG,GAAG,EAAP,EAAWC,KAAK,GAAG,EAAnB,KAA0B;AAC1D,MAAID,GAAG,CAACE,QAAJ,CAAa,WAAb,CAAJ,EAA+B;AAC7B,UAAM,CAACC,OAAD,IAAYH,GAAG,CAACI,KAAJ,CAAU,GAAV,CAAlB;AACA,QAAI,CAACH,KAAK,CAACE,OAAD,CAAV,EAAqB,OAAO,EAAP;AAErB,UAAME,OAAO,GAAGC,KAAK,CAACC,OAAN,CAAcN,KAAK,CAACE,OAAD,CAAnB,IAAgCF,KAAK,CAACE,OAAD,CAAL,CAAe,CAAf,CAAhC,GAAoDF,KAAK,CAACE,OAAD,CAAzE;AACA,WAAOE,OAAO,IAAIA,OAAO,CAACG,GAAnB,GAAyBH,OAAO,CAACG,GAAjC,GAAuC,EAA9C;AACD;;AACD,SAAO,EAAP;AACD,CATD;;AAWA,eAAeT,yBAAf","sourcesContent":["const getLinkToPublishedContent = (key = '', props = {}) => {\n if (key.includes('published')) {\n const [baseKey] = key.split('.');\n if (!props[baseKey]) return '';\n\n const content = Array.isArray(props[baseKey]) ? props[baseKey][0] : props[baseKey];\n return content && content.url ? content.url : '';\n }\n return '';\n};\n\nexport default getLinkToPublishedContent;\n"],"file":"get-link-to-published-content.js"}
@@ -1,11 +1,12 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
2
- const _excluded = ["children", "collapse", "modifier", "mobileMenuModifier", "mobileMenuChildrenModifier", "mobileIconAlignment", "mobileButtonModifier", "hamburgerIconModifier", "closeIconModifier"];
2
+ const _excluded = ["children", "collapse", "modifier", "mobileMenuModifier", "mobileMenuChildrenModifier", "mobileIconAlignment", "mobileButtonModifier", "hamburgerIconModifier", "searchInputAlignment", "logoOnMobile", "logoOnMobileUrl", "logoOnMobileAlt", "logoOnMobileModifier", "closeIconModifier", "entity", "router"];
3
3
  import React, { useState } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import BlazeButton from '@blaze-react/button';
6
6
  import { MdMenu, MdClose } from 'react-icons/md';
7
7
  import { useCheckMobileScreen } from '../../hooks';
8
8
  import { HIDDEN } from '../../constants';
9
+ import SearchContent from '../SearchContent';
9
10
 
10
11
  const Menu = _ref => {
11
12
  let {
@@ -17,7 +18,14 @@ const Menu = _ref => {
17
18
  mobileIconAlignment,
18
19
  mobileButtonModifier,
19
20
  hamburgerIconModifier,
20
- closeIconModifier
21
+ searchInputAlignment,
22
+ logoOnMobile,
23
+ logoOnMobileUrl,
24
+ logoOnMobileAlt,
25
+ logoOnMobileModifier,
26
+ closeIconModifier,
27
+ entity,
28
+ router
21
29
  } = _ref,
22
30
  rest = _objectWithoutProperties(_ref, _excluded);
23
31
 
@@ -30,7 +38,7 @@ const Menu = _ref => {
30
38
  const childrenMobileModifier = shouldDisplayChildren && isMobile ? `${mobileMenuChildrenModifier}` : ` ${HIDDEN}`;
31
39
  const isMobileMenuExpanded = showMobileMenu ? `${mobileMenuModifier}` : '';
32
40
  return /*#__PURE__*/React.createElement(React.Fragment, null, collapse && /*#__PURE__*/React.createElement("div", {
33
- className: "top-0 absolute z-50"
41
+ className: "menu--mobile-wrapper"
34
42
  }, /*#__PURE__*/React.createElement("div", {
35
43
  className: `flex w-screen z-50 justify-${mobileIconAlignment} ${isMobileMenuExpanded}`
36
44
  }, /*#__PURE__*/React.createElement(BlazeButton, {
@@ -40,13 +48,28 @@ const Menu = _ref => {
40
48
  className: closeIconModifier
41
49
  }) : /*#__PURE__*/React.createElement(MdMenu, {
42
50
  className: hamburgerIconModifier
43
- }))))), /*#__PURE__*/React.createElement("ul", {
51
+ }))), showMobileMenu && /*#__PURE__*/React.createElement(SearchContent, {
52
+ searchInputAlignment: searchInputAlignment,
53
+ entity: entity
54
+ }))), logoOnMobile && !showMobileMenu && /*#__PURE__*/React.createElement("a", {
55
+ href: "/"
56
+ }, /*#__PURE__*/React.createElement("img", {
57
+ src: logoOnMobileUrl,
58
+ alt: logoOnMobileAlt,
59
+ className: logoOnMobileModifier
60
+ })), /*#__PURE__*/React.createElement("div", {
61
+ className: "menu--desktop-wrapper"
62
+ }, /*#__PURE__*/React.createElement("ul", {
44
63
  className: isMobile ? childrenMobileModifier : childrenDesktopModifier
45
- }, children));
64
+ }, children)));
46
65
  };
47
66
 
48
67
  Menu.propTypes = {
49
68
  collapse: PropTypes.bool.isRequired,
69
+ logoOnMobile: PropTypes.bool.isRequired,
70
+ logoOnMobileUrl: PropTypes.string,
71
+ logoOnMobileAlt: PropTypes.string,
72
+ logoOnMobileModifier: PropTypes.string,
50
73
  hamburgerIconModifier: PropTypes.string,
51
74
  closeIconModifier: PropTypes.string,
52
75
  mobileButtonModifier: PropTypes.string,
@@ -54,16 +77,23 @@ Menu.propTypes = {
54
77
  mobileMenuChildrenModifier: PropTypes.string,
55
78
  modifier: PropTypes.string,
56
79
  mobileIconAlignment: PropTypes.string,
80
+ searchInputAlignment: PropTypes.string,
81
+ entity: PropTypes.string,
57
82
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])
58
83
  };
59
84
  Menu.defaultProps = {
85
+ logoOnMobileUrl: '',
86
+ logoOnMobileAlt: '',
87
+ logoOnMobileModifier: '',
60
88
  hamburgerIconModifier: '',
61
89
  closeIconModifier: '',
62
90
  mobileButtonModifier: '',
63
91
  mobileIconAlignment: '',
64
92
  mobileMenuModifier: '',
65
93
  mobileMenuChildrenModifier: '',
94
+ searchInputAlignment: '',
66
95
  modifier: '',
96
+ entity: 'PublishedPage',
67
97
  children: []
68
98
  };
69
99
  export default Menu;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/Menu/Menu.js"],"names":["React","useState","PropTypes","BlazeButton","MdMenu","MdClose","useCheckMobileScreen","HIDDEN","Menu","children","collapse","modifier","mobileMenuModifier","mobileMenuChildrenModifier","mobileIconAlignment","mobileButtonModifier","hamburgerIconModifier","closeIconModifier","rest","isMobile","showMobileMenu","setShowMobileMenu","shouldDisplayCollapsed","mobileButtonClass","shouldDisplayChildren","childrenDesktopModifier","childrenMobileModifier","isMobileMenuExpanded","propTypes","bool","isRequired","string","oneOfType","arrayOf","node","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport BlazeButton from '@blaze-react/button';\nimport { MdMenu, MdClose } from 'react-icons/md';\nimport { useCheckMobileScreen } from '../../hooks';\nimport { HIDDEN } from '../../constants';\n\nconst Menu = ({\n children,\n collapse,\n modifier,\n mobileMenuModifier,\n mobileMenuChildrenModifier,\n mobileIconAlignment,\n mobileButtonModifier,\n hamburgerIconModifier,\n closeIconModifier,\n ...rest\n}) => {\n const isMobile = useCheckMobileScreen();\n const [showMobileMenu, setShowMobileMenu] = useState(false);\n\n const shouldDisplayCollapsed = collapse && isMobile;\n const mobileButtonClass = shouldDisplayCollapsed && isMobile ? mobileButtonModifier : HIDDEN;\n const shouldDisplayChildren = shouldDisplayCollapsed ? showMobileMenu : true;\n const childrenDesktopModifier =\n shouldDisplayChildren && !isMobile ? modifier : `${modifier} ${HIDDEN}`;\n\n const childrenMobileModifier =\n shouldDisplayChildren && isMobile ? `${mobileMenuChildrenModifier}` : ` ${HIDDEN}`;\n\n const isMobileMenuExpanded = showMobileMenu ? `${mobileMenuModifier}` : '';\n\n return (\n <>\n {collapse && (\n <div className=\"top-0 absolute z-50\">\n <div\n className={`flex w-screen z-50 justify-${mobileIconAlignment} ${isMobileMenuExpanded}`}>\n <BlazeButton\n className={mobileButtonClass}\n onClick={() => setShowMobileMenu(!showMobileMenu)}>\n <i>\n {showMobileMenu ? (\n <MdClose className={closeIconModifier} />\n ) : (\n <MdMenu className={hamburgerIconModifier} />\n )}\n </i>\n </BlazeButton>\n </div>\n </div>\n )}\n <ul className={isMobile ? childrenMobileModifier : childrenDesktopModifier}>{children}</ul>\n </>\n );\n};\n\nMenu.propTypes = {\n collapse: PropTypes.bool.isRequired,\n hamburgerIconModifier: PropTypes.string,\n closeIconModifier: PropTypes.string,\n mobileButtonModifier: PropTypes.string,\n mobileMenuModifier: PropTypes.string,\n mobileMenuChildrenModifier: PropTypes.string,\n modifier: PropTypes.string,\n mobileIconAlignment: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenu.defaultProps = {\n hamburgerIconModifier: '',\n closeIconModifier: '',\n mobileButtonModifier: '',\n mobileIconAlignment: '',\n mobileMenuModifier: '',\n mobileMenuChildrenModifier: '',\n modifier: '',\n children: []\n};\n\nexport default Menu;\n"],"file":"Menu.js"}
1
+ {"version":3,"sources":["../../../src/components/Menu/Menu.js"],"names":["React","useState","PropTypes","BlazeButton","MdMenu","MdClose","useCheckMobileScreen","HIDDEN","SearchContent","Menu","children","collapse","modifier","mobileMenuModifier","mobileMenuChildrenModifier","mobileIconAlignment","mobileButtonModifier","hamburgerIconModifier","searchInputAlignment","logoOnMobile","logoOnMobileUrl","logoOnMobileAlt","logoOnMobileModifier","closeIconModifier","entity","router","rest","isMobile","showMobileMenu","setShowMobileMenu","shouldDisplayCollapsed","mobileButtonClass","shouldDisplayChildren","childrenDesktopModifier","childrenMobileModifier","isMobileMenuExpanded","propTypes","bool","isRequired","string","oneOfType","arrayOf","node","defaultProps"],"mappings":"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","sourcesContent":["import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport BlazeButton from '@blaze-react/button';\nimport { MdMenu, MdClose } from 'react-icons/md';\nimport { useCheckMobileScreen } from '../../hooks';\nimport { HIDDEN } from '../../constants';\nimport SearchContent from '../SearchContent';\n\nconst Menu = ({\n children,\n collapse,\n modifier,\n mobileMenuModifier,\n mobileMenuChildrenModifier,\n mobileIconAlignment,\n mobileButtonModifier,\n hamburgerIconModifier,\n searchInputAlignment,\n logoOnMobile,\n logoOnMobileUrl,\n logoOnMobileAlt,\n logoOnMobileModifier,\n closeIconModifier,\n entity,\n router,\n ...rest\n}) => {\n const isMobile = useCheckMobileScreen();\n const [showMobileMenu, setShowMobileMenu] = useState(false);\n\n const shouldDisplayCollapsed = collapse && isMobile;\n const mobileButtonClass = shouldDisplayCollapsed && isMobile ? mobileButtonModifier : HIDDEN;\n const shouldDisplayChildren = shouldDisplayCollapsed ? showMobileMenu : true;\n const childrenDesktopModifier =\n shouldDisplayChildren && !isMobile ? modifier : `${modifier} ${HIDDEN}`;\n\n const childrenMobileModifier =\n shouldDisplayChildren && isMobile ? `${mobileMenuChildrenModifier}` : ` ${HIDDEN}`;\n\n const isMobileMenuExpanded = showMobileMenu ? `${mobileMenuModifier}` : '';\n\n return (\n <>\n {collapse && (\n <div className=\"menu--mobile-wrapper\">\n <div\n className={`flex w-screen z-50 justify-${mobileIconAlignment} ${isMobileMenuExpanded}`}>\n <BlazeButton\n className={mobileButtonClass}\n onClick={() => setShowMobileMenu(!showMobileMenu)}>\n <i>\n {showMobileMenu ? (\n <MdClose className={closeIconModifier} />\n ) : (\n <MdMenu className={hamburgerIconModifier} />\n )}\n </i>\n </BlazeButton>\n {showMobileMenu && (\n <SearchContent searchInputAlignment={searchInputAlignment} entity={entity} />\n )}\n </div>\n </div>\n )}\n {logoOnMobile &&\n !showMobileMenu && (\n <a href=\"/\">\n <img src={logoOnMobileUrl} alt={logoOnMobileAlt} className={logoOnMobileModifier} />\n </a>\n )}\n <div className=\"menu--desktop-wrapper\">\n <ul className={isMobile ? childrenMobileModifier : childrenDesktopModifier}>{children}</ul>\n </div>\n </>\n );\n};\n\nMenu.propTypes = {\n collapse: PropTypes.bool.isRequired,\n logoOnMobile: PropTypes.bool.isRequired,\n logoOnMobileUrl: PropTypes.string,\n logoOnMobileAlt: PropTypes.string,\n logoOnMobileModifier: PropTypes.string,\n hamburgerIconModifier: PropTypes.string,\n closeIconModifier: PropTypes.string,\n mobileButtonModifier: PropTypes.string,\n mobileMenuModifier: PropTypes.string,\n mobileMenuChildrenModifier: PropTypes.string,\n modifier: PropTypes.string,\n mobileIconAlignment: PropTypes.string,\n searchInputAlignment: PropTypes.string,\n entity: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nMenu.defaultProps = {\n logoOnMobileUrl: '',\n logoOnMobileAlt: '',\n logoOnMobileModifier: '',\n hamburgerIconModifier: '',\n closeIconModifier: '',\n mobileButtonModifier: '',\n mobileIconAlignment: '',\n mobileMenuModifier: '',\n mobileMenuChildrenModifier: '',\n searchInputAlignment: '',\n modifier: '',\n entity: 'PublishedPage',\n children: []\n};\n\nexport default Menu;\n"],"file":"Menu.js"}
@@ -0,0 +1,149 @@
1
+ import { useState } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { gql, useQuery } from '@apollo/client';
4
+ import { useRouter } from 'next/router';
5
+ import { getPublishedContent } from '../../application/query';
6
+
7
+ const SearchContent = ({
8
+ searchInputAlignment,
9
+ entityName,
10
+ entityField
11
+ }) => {
12
+ const [collapsed, setCollapsed] = useState(true);
13
+ const [searchTerm, setSearchTerm] = useState(null);
14
+ const router = useRouter();
15
+ let alignmentModifier = '';
16
+
17
+ if (searchInputAlignment && searchInputAlignment !== '') {
18
+ alignmentModifier = searchInputAlignment === 'left' ? 'left-6' : 'right-16';
19
+ }
20
+
21
+ const rawQueryStringified = JSON.stringify({
22
+ size: 0,
23
+ query: {
24
+ bool: {
25
+ filter: {
26
+ bool: {
27
+ should: [{
28
+ match: {
29
+ docType: entityField
30
+ }
31
+ }],
32
+ minimum_should_match: 1
33
+ }
34
+ }
35
+ }
36
+ }
37
+ });
38
+ const query = gql`
39
+ ${getPublishedContent(entityName)}
40
+ `;
41
+ const {
42
+ loading,
43
+ error,
44
+ data
45
+ } = useQuery(query, {
46
+ variables: {
47
+ rawQueryStringified,
48
+ offset: 0,
49
+ limit: 5
50
+ }
51
+ });
52
+ if (loading) return null;
53
+ if (error) return `Error! ${error}`;
54
+
55
+ const renderResults = () => {
56
+ // eslint-disable-next-line no-undef
57
+ const {
58
+ results
59
+ } = data === null || data === void 0 ? void 0 : data.searchPublishedContent;
60
+
61
+ const handleClick = (e, url) => {
62
+ e.preventDefault();
63
+ router.push(url);
64
+ };
65
+
66
+ if (results && searchTerm && searchTerm !== '') {
67
+ return results.map(({
68
+ name,
69
+ url
70
+ }) => {
71
+ if (name.match(searchTerm)) {
72
+ return /*#__PURE__*/React.createElement("a", {
73
+ href: url,
74
+ onClick: e => handleClick(e, url)
75
+ }, name);
76
+ }
77
+
78
+ return null;
79
+ });
80
+ }
81
+
82
+ return [];
83
+ };
84
+
85
+ return collapsed ? /*#__PURE__*/React.createElement("div", {
86
+ className: `absolute rounded-3xl overflow-auto top-3 ${alignmentModifier}`
87
+ }, /*#__PURE__*/React.createElement("div", {
88
+ className: "w-11 mx-auto"
89
+ }, /*#__PURE__*/React.createElement("label", {
90
+ className: "relative block"
91
+ }, /*#__PURE__*/React.createElement("span", {
92
+ className: "absolute inset-y-0 right-3 flex items-center pl-2 cursor-pointer"
93
+ }, /*#__PURE__*/React.createElement("svg", {
94
+ className: "h-5 w-5 fill-slate-300",
95
+ viewBox: "0 0 20 20"
96
+ }, /*#__PURE__*/React.createElement("path", {
97
+ fillRule: "evenodd",
98
+ d: "M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z",
99
+ clipRule: "evenodd"
100
+ }))), /*#__PURE__*/React.createElement("span", {
101
+ className: "sr-only"
102
+ }, "Search"), /*#__PURE__*/React.createElement("input", {
103
+ onFocus: () => setCollapsed(false),
104
+ onChange: e => setSearchTerm(e.target.value),
105
+ type: "text",
106
+ name: "search",
107
+ value: "",
108
+ className: "disabled:bg-white block bg-white w-full rounded-full py-2 pl-5 pr-3 placeholder:italic placeholder:text-gray-400 focus:outline-none sm:text-sm"
109
+ })))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
110
+ className: `absolute overflow-auto top-3 ${alignmentModifier}`
111
+ }, /*#__PURE__*/React.createElement("div", {
112
+ className: "w-96 mx-auto rounded-3xl"
113
+ }, /*#__PURE__*/React.createElement("label", {
114
+ className: "relative block"
115
+ }, /*#__PURE__*/React.createElement("span", {
116
+ className: "absolute inset-y-0 right-3 flex items-center pl-2"
117
+ }, /*#__PURE__*/React.createElement("svg", {
118
+ className: "h-5 w-5 fill-slate-300",
119
+ viewBox: "0 0 20 20"
120
+ }, /*#__PURE__*/React.createElement("path", {
121
+ fillRule: "evenodd",
122
+ d: "M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z",
123
+ clipRule: "evenodd"
124
+ }))), /*#__PURE__*/React.createElement("span", {
125
+ className: "sr-only"
126
+ }, "Search"), /*#__PURE__*/React.createElement("input", {
127
+ type: "text",
128
+ name: "search",
129
+ onChange: e => setSearchTerm(e.target.value),
130
+ className: "block bg-white w-full rounded-full py-2 pl-3 pr-3 placeholder:italic placeholder:text-slate-400 focus:outline-none sm:text-sm",
131
+ placeholder: "Search for anything...",
132
+ onBlur: () => setCollapsed(true)
133
+ }))), /*#__PURE__*/React.createElement("div", {
134
+ className: "bg-white ml-3 mr-3 relative"
135
+ }, /*#__PURE__*/React.createElement("div", null, "Search Results"), data && renderResults())));
136
+ };
137
+
138
+ SearchContent.propTypes = {
139
+ searchInputAlignment: PropTypes.string,
140
+ entityName: PropTypes.string,
141
+ entityField: PropTypes.string
142
+ };
143
+ SearchContent.defaultProps = {
144
+ searchInputAlignment: '',
145
+ entityName: 'PublishedPage',
146
+ entityField: 'published_page'
147
+ };
148
+ export default SearchContent;
149
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["useState","PropTypes","gql","useQuery","useRouter","getPublishedContent","SearchContent","searchInputAlignment","entityName","entityField","collapsed","setCollapsed","searchTerm","setSearchTerm","router","alignmentModifier","rawQueryStringified","JSON","stringify","size","query","bool","filter","should","match","docType","minimum_should_match","loading","error","data","variables","offset","limit","renderResults","results","searchPublishedContent","handleClick","e","url","preventDefault","push","map","name","target","value","propTypes","string","defaultProps"],"mappings":"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","sourcesContent":["import { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { gql, useQuery } from '@apollo/client';\nimport { useRouter } from 'next/router';\nimport { getPublishedContent } from '../../application/query';\n\nconst SearchContent = ({ searchInputAlignment, entityName, entityField }) => {\n const [collapsed, setCollapsed] = useState(true);\n const [searchTerm, setSearchTerm] = useState(null);\n const router = useRouter();\n\n let alignmentModifier = '';\n\n if (searchInputAlignment && searchInputAlignment !== '') {\n alignmentModifier = searchInputAlignment === 'left' ? 'left-6' : 'right-16';\n }\n\n const rawQueryStringified = JSON.stringify({\n size: 0,\n query: {\n bool: {\n filter: {\n bool: {\n should: [\n {\n match: {\n docType: entityField\n }\n }\n ],\n minimum_should_match: 1\n }\n }\n }\n }\n });\n\n const query = gql`\n ${getPublishedContent(entityName)}\n `;\n\n const { loading, error, data } = useQuery(query, {\n variables: { rawQueryStringified, offset: 0, limit: 5 }\n });\n\n if (loading) return null;\n if (error) return `Error! ${error}`;\n\n const renderResults = () => {\n // eslint-disable-next-line no-undef\n const { results } = data?.searchPublishedContent;\n\n const handleClick = (e, url) => {\n e.preventDefault();\n router.push(url);\n };\n\n if (results && searchTerm && searchTerm !== '') {\n return results.map(({ name, url }) => {\n if (name.match(searchTerm)) {\n return (\n <a href={url} onClick={e => handleClick(e, url)}>\n {name}\n </a>\n );\n }\n\n return null;\n });\n }\n\n return [];\n };\n\n return collapsed ? (\n <div className={`absolute rounded-3xl overflow-auto top-3 ${alignmentModifier}`}>\n <div className=\"w-11 mx-auto\">\n <label className=\"relative block\">\n <span className=\"absolute inset-y-0 right-3 flex items-center pl-2 cursor-pointer\">\n <svg className=\"h-5 w-5 fill-slate-300\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <span className=\"sr-only\">Search</span>\n <input\n onFocus={() => setCollapsed(false)}\n onChange={e => setSearchTerm(e.target.value)}\n type=\"text\"\n name=\"search\"\n value=\"\"\n className=\"disabled:bg-white block bg-white w-full rounded-full py-2 pl-5 pr-3 placeholder:italic placeholder:text-gray-400 focus:outline-none sm:text-sm\"\n />\n </label>\n </div>\n </div>\n ) : (\n <>\n <div className={`absolute overflow-auto top-3 ${alignmentModifier}`}>\n <div className=\"w-96 mx-auto rounded-3xl\">\n <label className=\"relative block\">\n <span className=\"absolute inset-y-0 right-3 flex items-center pl-2\">\n <svg className=\"h-5 w-5 fill-slate-300\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M8 4a4 4 0 100 8 4 4 0 000-8zM2 8a6 6 0 1110.89 3.476l4.817 4.817a1 1 0 01-1.414 1.414l-4.816-4.816A6 6 0 012 8z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </span>\n <span className=\"sr-only\">Search</span>\n <input\n type=\"text\"\n name=\"search\"\n onChange={e => setSearchTerm(e.target.value)}\n className=\"block bg-white w-full rounded-full py-2 pl-3 pr-3 placeholder:italic placeholder:text-slate-400 focus:outline-none sm:text-sm\"\n placeholder=\"Search for anything...\"\n onBlur={() => setCollapsed(true)}\n />\n </label>\n </div>\n <div className=\"bg-white ml-3 mr-3 relative\">\n <div>Search Results</div>\n {data && renderResults()}\n </div>\n </div>\n </>\n );\n};\n\nSearchContent.propTypes = {\n searchInputAlignment: PropTypes.string,\n entityName: PropTypes.string,\n entityField: PropTypes.string\n};\n\nSearchContent.defaultProps = {\n searchInputAlignment: '',\n entityName: 'PublishedPage',\n entityField: 'published_page'\n};\n\nexport default SearchContent;\n"],"file":"index.js"}
@@ -38,6 +38,9 @@ export default {
38
38
  wrapper: dynamic(() => import(
39
39
  /* webpackChunkName: "blazePbWrapper" */
40
40
  './Wrapper')),
41
+ searchcontent: dynamic(() => import(
42
+ /* webpackChunkName: "blazePbSearchFilter" */
43
+ './SearchContent')),
41
44
  searchfilter: dynamic(() => import(
42
45
  /* webpackChunkName: "blazePbSearchFilter" */
43
46
  './SearchFilter')),
@@ -70,9 +73,6 @@ export default {
70
73
  './PasswordReset')),
71
74
  passwordresetrequest: dynamic(() => import(
72
75
  /* webpackChunkName: "blazePbPasswordResetRequest" */
73
- './PasswordResetRequest')),
74
- breadcrumb: dynamic(() => import(
75
- /* webpackChunkName: "blazePbBreadcrumb" */
76
- './Breadcrumb'))
76
+ './PasswordResetRequest'))
77
77
  };
78
78
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/index.js"],"names":["dynamic","Banner","banner","button","card","carousel","column","datasummary","image","row","list","socialfollow","textblock","video","wrapper","searchfilter","searchfiltersort","modal","code","login","menu","menuitem","submenu","emailconfirm","passwordreset","passwordresetrequest","breadcrumb"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,cAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe;AACbC,EAAAA,MAAM,EAAED,MADK;AAEbE,EAAAA,MAAM,EAAEH,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CAFF;AAGbI,EAAAA,IAAI,EAAEJ,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAHA;AAIbK,EAAAA,QAAQ,EAAEL,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CAJJ;AAKbM,EAAAA,MAAM,EAAEN,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CALF;AAMbO,EAAAA,WAAW,EAAEP,OAAO,CAAC,MAAM;AAAO;AAA6C,iBAApD,CAAP,CANP;AAObQ,EAAAA,KAAK,EAAER,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAPD;AAQbS,EAAAA,GAAG,EAAET,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CARC;AASbU,EAAAA,IAAI,EAAEV,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CATA;AAUbW,EAAAA,YAAY,EAAEX,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAVR;AAabY,EAAAA,SAAS,EAAEZ,OAAO,CAAC,MAAM;AAAO;AAA2C,eAAlD,CAAP,CAbL;AAcba,EAAAA,KAAK,EAAEb,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAdD;AAebc,EAAAA,OAAO,EAAEd,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CAfH;AAgBbe,EAAAA,YAAY,EAAEf,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAhBR;AAmBbgB,EAAAA,gBAAgB,EAAEhB,OAAO,CAAC,MACxB;AAAO;AAAiD,sBAAxD,CADuB,CAnBZ;AAsBbiB,EAAAA,KAAK,EAAEjB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAtBD;AAuBbkB,EAAAA,IAAI,EAAElB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAvBA;AAwBbmB,EAAAA,KAAK,EAAEnB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAxBD;AAyBboB,EAAAA,IAAI,EAAEpB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAzBA;AA0BbqB,EAAAA,QAAQ,EAAErB,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CA1BJ;AA2BbsB,EAAAA,OAAO,EAAEtB,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CA3BH;AA4BbuB,EAAAA,YAAY,EAAEvB,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CA5BR;AA+BbwB,EAAAA,aAAa,EAAExB,OAAO,CAAC,MACrB;AAAO;AAA+C,mBAAtD,CADoB,CA/BT;AAkCbyB,EAAAA,oBAAoB,EAAEzB,OAAO,CAAC,MAC5B;AAAO;AAAsD,0BAA7D,CAD2B,CAlChB;AAqCb0B,EAAAA,UAAU,EAAE1B,OAAO,CAAC,MAAM;AAAO;AAA4C,gBAAnD,CAAP;AArCN,CAAf","sourcesContent":["import dynamic from 'next/dynamic';\nimport Banner from './Banner';\n\nexport default {\n banner: Banner,\n button: dynamic(() => import(/* webpackChunkName: \"blazePbButton\" */ './Button')),\n card: dynamic(() => import(/* webpackChunkName: \"blazePbCard\" */ './Card')),\n carousel: dynamic(() => import(/* webpackChunkName: \"blazePbCarousel\" */ './Carousel')),\n column: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n datasummary: dynamic(() => import(/* webpackChunkName: \"blazePbDataSummary\" */ './DataSummary')),\n image: dynamic(() => import(/* webpackChunkName: \"blazePbImage\" */ './Image')),\n row: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n list: dynamic(() => import(/* webpackChunkName: \"blazePbList\" */ './List')),\n socialfollow: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSocialFollow\" */ './SocialFollow')\n ),\n textblock: dynamic(() => import(/* webpackChunkName: \"blazePbTextBlock\" */ './TextBlock')),\n video: dynamic(() => import(/* webpackChunkName: \"blazePbVideo\" */ './Video')),\n wrapper: dynamic(() => import(/* webpackChunkName: \"blazePbWrapper\" */ './Wrapper')),\n searchfilter: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilter\" */ './SearchFilter')\n ),\n searchfiltersort: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilteSort\" */ './SearchFilterSort')\n ),\n modal: dynamic(() => import(/* webpackChunkName: \"blazePbModal\" */ './Modal')),\n code: dynamic(() => import(/* webpackChunkName: \"blazePbCode\" */ './Code')),\n login: dynamic(() => import(/* webpackChunkName: \"blazePbLogin\" */ './Login')),\n menu: dynamic(() => import(/* webpackChunkName: \"blazePbMenu\" */ './Menu')),\n menuitem: dynamic(() => import(/* webpackChunkName: \"blazePbMenuItem\" */ './MenuItem')),\n submenu: dynamic(() => import(/* webpackChunkName: \"blazePbSubMenu\" */ './SubMenu')),\n emailconfirm: dynamic(() =>\n import(/* webpackChunkName: \"blazePbEmailConfirm\" */ './EmailConfirm')\n ),\n passwordreset: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordReset\" */ './PasswordReset')\n ),\n passwordresetrequest: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordResetRequest\" */ './PasswordResetRequest')\n ),\n breadcrumb: dynamic(() => import(/* webpackChunkName: \"blazePbBreadcrumb\" */ './Breadcrumb'))\n};\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/components/index.js"],"names":["dynamic","Banner","banner","button","card","carousel","column","datasummary","image","row","list","socialfollow","textblock","video","wrapper","searchcontent","searchfilter","searchfiltersort","modal","code","login","menu","menuitem","submenu","emailconfirm","passwordreset","passwordresetrequest"],"mappings":"AAAA,OAAOA,OAAP,MAAoB,cAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA,eAAe;AACbC,EAAAA,MAAM,EAAED,MADK;AAEbE,EAAAA,MAAM,EAAEH,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CAFF;AAGbI,EAAAA,IAAI,EAAEJ,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CAHA;AAIbK,EAAAA,QAAQ,EAAEL,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CAJJ;AAKbM,EAAAA,MAAM,EAAEN,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CALF;AAMbO,EAAAA,WAAW,EAAEP,OAAO,CAAC,MAAM;AAAO;AAA6C,iBAApD,CAAP,CANP;AAObQ,EAAAA,KAAK,EAAER,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAPD;AAQbS,EAAAA,GAAG,EAAET,OAAO,CAAC,MAAM;AAAO;AAAwC,YAA/C,CAAP,CARC;AASbU,EAAAA,IAAI,EAAEV,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CATA;AAUbW,EAAAA,YAAY,EAAEX,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAVR;AAabY,EAAAA,SAAS,EAAEZ,OAAO,CAAC,MAAM;AAAO;AAA2C,eAAlD,CAAP,CAbL;AAcba,EAAAA,KAAK,EAAEb,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAdD;AAebc,EAAAA,OAAO,EAAEd,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CAfH;AAgBbe,EAAAA,aAAa,EAAEf,OAAO,CAAC,MACrB;AAAO;AAA8C,mBAArD,CADoB,CAhBT;AAmBbgB,EAAAA,YAAY,EAAEhB,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CAnBR;AAsBbiB,EAAAA,gBAAgB,EAAEjB,OAAO,CAAC,MACxB;AAAO;AAAiD,sBAAxD,CADuB,CAtBZ;AAyBbkB,EAAAA,KAAK,EAAElB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CAzBD;AA0BbmB,EAAAA,IAAI,EAAEnB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CA1BA;AA2BboB,EAAAA,KAAK,EAAEpB,OAAO,CAAC,MAAM;AAAO;AAAuC,WAA9C,CAAP,CA3BD;AA4BbqB,EAAAA,IAAI,EAAErB,OAAO,CAAC,MAAM;AAAO;AAAsC,UAA7C,CAAP,CA5BA;AA6BbsB,EAAAA,QAAQ,EAAEtB,OAAO,CAAC,MAAM;AAAO;AAA0C,cAAjD,CAAP,CA7BJ;AA8BbuB,EAAAA,OAAO,EAAEvB,OAAO,CAAC,MAAM;AAAO;AAAyC,aAAhD,CAAP,CA9BH;AA+BbwB,EAAAA,YAAY,EAAExB,OAAO,CAAC,MACpB;AAAO;AAA8C,kBAArD,CADmB,CA/BR;AAkCbyB,EAAAA,aAAa,EAAEzB,OAAO,CAAC,MACrB;AAAO;AAA+C,mBAAtD,CADoB,CAlCT;AAqCb0B,EAAAA,oBAAoB,EAAE1B,OAAO,CAAC,MAC5B;AAAO;AAAsD,0BAA7D,CAD2B;AArChB,CAAf","sourcesContent":["import dynamic from 'next/dynamic';\nimport Banner from './Banner';\n\nexport default {\n banner: Banner,\n button: dynamic(() => import(/* webpackChunkName: \"blazePbButton\" */ './Button')),\n card: dynamic(() => import(/* webpackChunkName: \"blazePbCard\" */ './Card')),\n carousel: dynamic(() => import(/* webpackChunkName: \"blazePbCarousel\" */ './Carousel')),\n column: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n datasummary: dynamic(() => import(/* webpackChunkName: \"blazePbDataSummary\" */ './DataSummary')),\n image: dynamic(() => import(/* webpackChunkName: \"blazePbImage\" */ './Image')),\n row: dynamic(() => import(/* webpackChunkName: \"blazePbLayout\" */ './Layout')),\n list: dynamic(() => import(/* webpackChunkName: \"blazePbList\" */ './List')),\n socialfollow: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSocialFollow\" */ './SocialFollow')\n ),\n textblock: dynamic(() => import(/* webpackChunkName: \"blazePbTextBlock\" */ './TextBlock')),\n video: dynamic(() => import(/* webpackChunkName: \"blazePbVideo\" */ './Video')),\n wrapper: dynamic(() => import(/* webpackChunkName: \"blazePbWrapper\" */ './Wrapper')),\n searchcontent: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilter\" */ './SearchContent')\n ),\n searchfilter: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilter\" */ './SearchFilter')\n ),\n searchfiltersort: dynamic(() =>\n import(/* webpackChunkName: \"blazePbSearchFilteSort\" */ './SearchFilterSort')\n ),\n modal: dynamic(() => import(/* webpackChunkName: \"blazePbModal\" */ './Modal')),\n code: dynamic(() => import(/* webpackChunkName: \"blazePbCode\" */ './Code')),\n login: dynamic(() => import(/* webpackChunkName: \"blazePbLogin\" */ './Login')),\n menu: dynamic(() => import(/* webpackChunkName: \"blazePbMenu\" */ './Menu')),\n menuitem: dynamic(() => import(/* webpackChunkName: \"blazePbMenuItem\" */ './MenuItem')),\n submenu: dynamic(() => import(/* webpackChunkName: \"blazePbSubMenu\" */ './SubMenu')),\n emailconfirm: dynamic(() =>\n import(/* webpackChunkName: \"blazePbEmailConfirm\" */ './EmailConfirm')\n ),\n passwordreset: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordReset\" */ './PasswordReset')\n ),\n passwordresetrequest: dynamic(() =>\n import(/* webpackChunkName: \"blazePbPasswordResetRequest\" */ './PasswordResetRequest')\n )\n};\n"],"file":"index.js"}
@@ -21,6 +21,7 @@ const getRelationEntity = (filterName, filterEntityRelations) => {
21
21
  const getFilterProps = (filter, {
22
22
  relations: currentEntityRelations = [],
23
23
  properties: currentEntityProperties = {},
24
+ dynamicProperties: currentEntityDynamicProperties = {},
24
25
  identifier: currentEntityId
25
26
  } = {}, {
26
27
  relations: filterEntityRelations = [],
@@ -28,7 +29,7 @@ const getFilterProps = (filter, {
28
29
  } = {}) => {
29
30
  const [filterName] = filter.split('/');
30
31
  const [relationName, relationProp] = filterName.split('.');
31
- const hasProperty = !!currentEntityProperties[filterName];
32
+ const hasProperty = !!(currentEntityProperties[filterName] || currentEntityDynamicProperties[filterName]);
32
33
  const relationEntityName = relationProp ? getFilterLocalKeys(relationName, currentEntityRelations) : null;
33
34
  const filterNameEntity = getRelationEntity(filterName, filterEntityRelations);
34
35
  const propertyEntityName = relationEntityName || filterNameEntity;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/helpers/get-filter-props.js"],"names":["getFilterRelationKeys","getFilterLocalKeys","relationName","relations","entityIdentifier","find","localField","getRelationEntity","filterName","filterEntityRelations","foreignKey","getFilterProps","filter","currentEntityRelations","properties","currentEntityProperties","identifier","currentEntityId","filteryEntityId","split","relationProp","hasProperty","relationEntityName","filterNameEntity","propertyEntityName","entityName","isEntityItself","shouldCheckRelationNames","relationForeignKeys","shouldIgnoreFilter","length"],"mappings":"AAAA,OAAOA,qBAAP,MAAkC,4BAAlC;;AAEA,MAAMC,kBAAkB,GAAG,CAACC,YAAD,EAAeC,SAAf,KAA6B;AACtD,QAAM;AAAEC,IAAAA;AAAF,MACJD,SAAS,CAACE,IAAV,CAAe,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAoBA,UAAU,KAAKJ,YAAlD,KAAmE,EADrE;AAEA,SAAOE,gBAAP;AACD,CAJD;;AAMA,MAAMG,iBAAiB,GAAG,CAACC,UAAD,EAAaC,qBAAb,KAAuC;AAC/D,QAAM;AAAEL,IAAAA;AAAF,MACJK,qBAAqB,CAACJ,IAAtB,CAA2B,CAAC;AAAEK,IAAAA;AAAF,GAAD,KAAoBA,UAAU,KAAKF,UAA9D,KAA6E,EAD/E;AAEA,SAAOJ,gBAAP;AACD,CAJD;;AAMA,MAAMO,cAAc,GAAG,CACrBC,MADqB,EAErB;AACET,EAAAA,SAAS,EAAEU,sBAAsB,GAAG,EADtC;AAEEC,EAAAA,UAAU,EAAEC,uBAAuB,GAAG,EAFxC;AAGEC,EAAAA,UAAU,EAAEC;AAHd,IAII,EANiB,EAOrB;AAAEd,EAAAA,SAAS,EAAEM,qBAAqB,GAAG,EAArC;AAAyCO,EAAAA,UAAU,EAAEE;AAArD,IAAyE,EAPpD,KAQlB;AACH,QAAM,CAACV,UAAD,IAAeI,MAAM,CAACO,KAAP,CAAa,GAAb,CAArB;AACA,QAAM,CAACjB,YAAD,EAAekB,YAAf,IAA+BZ,UAAU,CAACW,KAAX,CAAiB,GAAjB,CAArC;AACA,QAAME,WAAW,GAAG,CAAC,CAACN,uBAAuB,CAACP,UAAD,CAA7C;AACA,QAAMc,kBAAkB,GAAGF,YAAY,GACnCnB,kBAAkB,CAACC,YAAD,EAAeW,sBAAf,CADiB,GAEnC,IAFJ;AAGA,QAAMU,gBAAgB,GAAGhB,iBAAiB,CAACC,UAAD,EAAaC,qBAAb,CAA1C;AAEA,QAAMe,kBAAkB,GAAGF,kBAAkB,IAAIC,gBAAjD;AACA,QAAME,UAAU,GAAGF,gBAAgB,GAAGL,eAAH,GAAqBI,kBAAxD;AACA,QAAMI,cAAc,GAAGT,eAAe,KAAKO,kBAA3C;AACA,QAAMG,wBAAwB,GAAG,CAACN,WAAD,IAAgB,CAACC,kBAAlD;AACA,QAAMM,mBAAmB,GAAGD,wBAAwB,GAChD3B,qBAAqB,CAACwB,kBAAD,EAAqBX,sBAArB,EAA6CE,uBAA7C,CAD2B,GAEhD,EAFJ;AAGA,QAAMc,kBAAkB,GAAGF,wBAAwB,IAAI,CAACC,mBAAmB,CAACE,MAA5E;AAEA,SAAO;AACLtB,IAAAA,UADK;AAELiB,IAAAA,UAFK;AAGLvB,IAAAA,YAHK;AAILkB,IAAAA,YAJK;AAKLC,IAAAA,WALK;AAMLC,IAAAA,kBANK;AAOLI,IAAAA,cAPK;AAQLE,IAAAA,mBARK;AASLC,IAAAA;AATK,GAAP;AAWD,CArCD;;AAuCA,eAAelB,cAAf","sourcesContent":["import getFilterRelationKeys from './get-filter-relation-keys';\n\nconst getFilterLocalKeys = (relationName, relations) => {\n const { entityIdentifier } =\n relations.find(({ localField }) => localField === relationName) || {};\n return entityIdentifier;\n};\n\nconst getRelationEntity = (filterName, filterEntityRelations) => {\n const { entityIdentifier } =\n filterEntityRelations.find(({ foreignKey }) => foreignKey === filterName) || {};\n return entityIdentifier;\n};\n\nconst getFilterProps = (\n filter,\n {\n relations: currentEntityRelations = [],\n properties: currentEntityProperties = {},\n identifier: currentEntityId\n } = {},\n { relations: filterEntityRelations = [], identifier: filteryEntityId } = {}\n) => {\n const [filterName] = filter.split('/');\n const [relationName, relationProp] = filterName.split('.');\n const hasProperty = !!currentEntityProperties[filterName];\n const relationEntityName = relationProp\n ? getFilterLocalKeys(relationName, currentEntityRelations)\n : null;\n const filterNameEntity = getRelationEntity(filterName, filterEntityRelations);\n\n const propertyEntityName = relationEntityName || filterNameEntity;\n const entityName = filterNameEntity ? filteryEntityId : relationEntityName;\n const isEntityItself = currentEntityId === propertyEntityName;\n const shouldCheckRelationNames = !hasProperty && !relationEntityName;\n const relationForeignKeys = shouldCheckRelationNames\n ? getFilterRelationKeys(propertyEntityName, currentEntityRelations, currentEntityProperties)\n : [];\n const shouldIgnoreFilter = shouldCheckRelationNames && !relationForeignKeys.length;\n\n return {\n filterName,\n entityName,\n relationName,\n relationProp,\n hasProperty,\n relationEntityName,\n isEntityItself,\n relationForeignKeys,\n shouldIgnoreFilter\n };\n};\n\nexport default getFilterProps;\n"],"file":"get-filter-props.js"}
1
+ {"version":3,"sources":["../../src/helpers/get-filter-props.js"],"names":["getFilterRelationKeys","getFilterLocalKeys","relationName","relations","entityIdentifier","find","localField","getRelationEntity","filterName","filterEntityRelations","foreignKey","getFilterProps","filter","currentEntityRelations","properties","currentEntityProperties","dynamicProperties","currentEntityDynamicProperties","identifier","currentEntityId","filteryEntityId","split","relationProp","hasProperty","relationEntityName","filterNameEntity","propertyEntityName","entityName","isEntityItself","shouldCheckRelationNames","relationForeignKeys","shouldIgnoreFilter","length"],"mappings":"AAAA,OAAOA,qBAAP,MAAkC,4BAAlC;;AAEA,MAAMC,kBAAkB,GAAG,CAACC,YAAD,EAAeC,SAAf,KAA6B;AACtD,QAAM;AAAEC,IAAAA;AAAF,MACJD,SAAS,CAACE,IAAV,CAAe,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAoBA,UAAU,KAAKJ,YAAlD,KAAmE,EADrE;AAEA,SAAOE,gBAAP;AACD,CAJD;;AAMA,MAAMG,iBAAiB,GAAG,CAACC,UAAD,EAAaC,qBAAb,KAAuC;AAC/D,QAAM;AAAEL,IAAAA;AAAF,MACJK,qBAAqB,CAACJ,IAAtB,CAA2B,CAAC;AAAEK,IAAAA;AAAF,GAAD,KAAoBA,UAAU,KAAKF,UAA9D,KAA6E,EAD/E;AAEA,SAAOJ,gBAAP;AACD,CAJD;;AAMA,MAAMO,cAAc,GAAG,CACrBC,MADqB,EAErB;AACET,EAAAA,SAAS,EAAEU,sBAAsB,GAAG,EADtC;AAEEC,EAAAA,UAAU,EAAEC,uBAAuB,GAAG,EAFxC;AAGEC,EAAAA,iBAAiB,EAAEC,8BAA8B,GAAG,EAHtD;AAIEC,EAAAA,UAAU,EAAEC;AAJd,IAKI,EAPiB,EAQrB;AAAEhB,EAAAA,SAAS,EAAEM,qBAAqB,GAAG,EAArC;AAAyCS,EAAAA,UAAU,EAAEE;AAArD,IAAyE,EARpD,KASlB;AACH,QAAM,CAACZ,UAAD,IAAeI,MAAM,CAACS,KAAP,CAAa,GAAb,CAArB;AACA,QAAM,CAACnB,YAAD,EAAeoB,YAAf,IAA+Bd,UAAU,CAACa,KAAX,CAAiB,GAAjB,CAArC;AACA,QAAME,WAAW,GAAG,CAAC,EACnBR,uBAAuB,CAACP,UAAD,CAAvB,IAAuCS,8BAA8B,CAACT,UAAD,CADlD,CAArB;AAGA,QAAMgB,kBAAkB,GAAGF,YAAY,GACnCrB,kBAAkB,CAACC,YAAD,EAAeW,sBAAf,CADiB,GAEnC,IAFJ;AAGA,QAAMY,gBAAgB,GAAGlB,iBAAiB,CAACC,UAAD,EAAaC,qBAAb,CAA1C;AAEA,QAAMiB,kBAAkB,GAAGF,kBAAkB,IAAIC,gBAAjD;AACA,QAAME,UAAU,GAAGF,gBAAgB,GAAGL,eAAH,GAAqBI,kBAAxD;AACA,QAAMI,cAAc,GAAGT,eAAe,KAAKO,kBAA3C;AACA,QAAMG,wBAAwB,GAAG,CAACN,WAAD,IAAgB,CAACC,kBAAlD;AACA,QAAMM,mBAAmB,GAAGD,wBAAwB,GAChD7B,qBAAqB,CAAC0B,kBAAD,EAAqBb,sBAArB,EAA6CE,uBAA7C,CAD2B,GAEhD,EAFJ;AAGA,QAAMgB,kBAAkB,GAAGF,wBAAwB,IAAI,CAACC,mBAAmB,CAACE,MAA5E;AAEA,SAAO;AACLxB,IAAAA,UADK;AAELmB,IAAAA,UAFK;AAGLzB,IAAAA,YAHK;AAILoB,IAAAA,YAJK;AAKLC,IAAAA,WALK;AAMLC,IAAAA,kBANK;AAOLI,IAAAA,cAPK;AAQLE,IAAAA,mBARK;AASLC,IAAAA;AATK,GAAP;AAWD,CAxCD;;AA0CA,eAAepB,cAAf","sourcesContent":["import getFilterRelationKeys from './get-filter-relation-keys';\n\nconst getFilterLocalKeys = (relationName, relations) => {\n const { entityIdentifier } =\n relations.find(({ localField }) => localField === relationName) || {};\n return entityIdentifier;\n};\n\nconst getRelationEntity = (filterName, filterEntityRelations) => {\n const { entityIdentifier } =\n filterEntityRelations.find(({ foreignKey }) => foreignKey === filterName) || {};\n return entityIdentifier;\n};\n\nconst getFilterProps = (\n filter,\n {\n relations: currentEntityRelations = [],\n properties: currentEntityProperties = {},\n dynamicProperties: currentEntityDynamicProperties = {},\n identifier: currentEntityId\n } = {},\n { relations: filterEntityRelations = [], identifier: filteryEntityId } = {}\n) => {\n const [filterName] = filter.split('/');\n const [relationName, relationProp] = filterName.split('.');\n const hasProperty = !!(\n currentEntityProperties[filterName] || currentEntityDynamicProperties[filterName]\n );\n const relationEntityName = relationProp\n ? getFilterLocalKeys(relationName, currentEntityRelations)\n : null;\n const filterNameEntity = getRelationEntity(filterName, filterEntityRelations);\n\n const propertyEntityName = relationEntityName || filterNameEntity;\n const entityName = filterNameEntity ? filteryEntityId : relationEntityName;\n const isEntityItself = currentEntityId === propertyEntityName;\n const shouldCheckRelationNames = !hasProperty && !relationEntityName;\n const relationForeignKeys = shouldCheckRelationNames\n ? getFilterRelationKeys(propertyEntityName, currentEntityRelations, currentEntityProperties)\n : [];\n const shouldIgnoreFilter = shouldCheckRelationNames && !relationForeignKeys.length;\n\n return {\n filterName,\n entityName,\n relationName,\n relationProp,\n hasProperty,\n relationEntityName,\n isEntityItself,\n relationForeignKeys,\n shouldIgnoreFilter\n };\n};\n\nexport default getFilterProps;\n"],"file":"get-filter-props.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blaze-cms/react-page-builder",
3
- "version": "0.122.0",
3
+ "version": "0.123.0-alpha.2",
4
4
  "description": "Blaze react page builder",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
@@ -84,5 +84,5 @@
84
84
  "lib/*",
85
85
  "lib-es/*"
86
86
  ],
87
- "gitHead": "6b11475b1ebacbfc1435fe85b2c82fdf342568fd"
87
+ "gitHead": "a25b864f90f7b3ed4778d38c42ecd9071ef54fca"
88
88
  }
@@ -139,6 +139,34 @@ const getAction = (action, props) => {
139
139
  `;
140
140
  };
141
141
 
142
+ const getPublishedContent = entity => `
143
+ query searchPublishedContent(
144
+ $rawQueryStringified: String!
145
+ $offset: Int
146
+ $limit: Int
147
+ $sort: String
148
+ ) {
149
+ searchPublishedContent(
150
+ rawQueryStringified: $rawQueryStringified
151
+ offset: $offset
152
+ limit: $limit
153
+ sort: $sort
154
+ ) {
155
+ results {
156
+ ... on ${entity} {
157
+ id
158
+ name
159
+ url
160
+ __typename
161
+ }
162
+ __typename
163
+ }
164
+ total
165
+ __typename
166
+ }
167
+ }
168
+ `;
169
+
142
170
  export {
143
171
  getEntitySchema,
144
172
  getSingleEntitySchema,
@@ -147,6 +175,7 @@ export {
147
175
  getFileById,
148
176
  generateMultiItemQuery,
149
177
  generateSingleItemQuery,
178
+ getPublishedContent,
150
179
  getSearchPublishedContent,
151
180
  getCount,
152
181
  getMultipleSchema,
@@ -1,8 +1,10 @@
1
1
  const getLinkToPublishedContent = (key = '', props = {}) => {
2
2
  if (key.includes('published')) {
3
3
  const [baseKey] = key.split('.');
4
- const content = props[baseKey] && props[baseKey][0];
5
- return content ? content.url : '';
4
+ if (!props[baseKey]) return '';
5
+
6
+ const content = Array.isArray(props[baseKey]) ? props[baseKey][0] : props[baseKey];
7
+ return content && content.url ? content.url : '';
6
8
  }
7
9
  return '';
8
10
  };
@@ -4,6 +4,7 @@ import BlazeButton from '@blaze-react/button';
4
4
  import { MdMenu, MdClose } from 'react-icons/md';
5
5
  import { useCheckMobileScreen } from '../../hooks';
6
6
  import { HIDDEN } from '../../constants';
7
+ import SearchContent from '../SearchContent';
7
8
 
8
9
  const Menu = ({
9
10
  children,
@@ -14,7 +15,14 @@ const Menu = ({
14
15
  mobileIconAlignment,
15
16
  mobileButtonModifier,
16
17
  hamburgerIconModifier,
18
+ searchInputAlignment,
19
+ logoOnMobile,
20
+ logoOnMobileUrl,
21
+ logoOnMobileAlt,
22
+ logoOnMobileModifier,
17
23
  closeIconModifier,
24
+ entity,
25
+ router,
18
26
  ...rest
19
27
  }) => {
20
28
  const isMobile = useCheckMobileScreen();
@@ -34,7 +42,7 @@ const Menu = ({
34
42
  return (
35
43
  <>
36
44
  {collapse && (
37
- <div className="top-0 absolute z-50">
45
+ <div className="menu--mobile-wrapper">
38
46
  <div
39
47
  className={`flex w-screen z-50 justify-${mobileIconAlignment} ${isMobileMenuExpanded}`}>
40
48
  <BlazeButton
@@ -48,16 +56,31 @@ const Menu = ({
48
56
  )}
49
57
  </i>
50
58
  </BlazeButton>
59
+ {showMobileMenu && (
60
+ <SearchContent searchInputAlignment={searchInputAlignment} entity={entity} />
61
+ )}
51
62
  </div>
52
63
  </div>
53
64
  )}
54
- <ul className={isMobile ? childrenMobileModifier : childrenDesktopModifier}>{children}</ul>
65
+ {logoOnMobile &&
66
+ !showMobileMenu && (
67
+ <a href="/">
68
+ <img src={logoOnMobileUrl} alt={logoOnMobileAlt} className={logoOnMobileModifier} />
69
+ </a>
70
+ )}
71
+ <div className="menu--desktop-wrapper">
72
+ <ul className={isMobile ? childrenMobileModifier : childrenDesktopModifier}>{children}</ul>
73
+ </div>
55
74
  </>
56
75
  );
57
76
  };
58
77
 
59
78
  Menu.propTypes = {
60
79
  collapse: PropTypes.bool.isRequired,
80
+ logoOnMobile: PropTypes.bool.isRequired,
81
+ logoOnMobileUrl: PropTypes.string,
82
+ logoOnMobileAlt: PropTypes.string,
83
+ logoOnMobileModifier: PropTypes.string,
61
84
  hamburgerIconModifier: PropTypes.string,
62
85
  closeIconModifier: PropTypes.string,
63
86
  mobileButtonModifier: PropTypes.string,
@@ -65,17 +88,24 @@ Menu.propTypes = {
65
88
  mobileMenuChildrenModifier: PropTypes.string,
66
89
  modifier: PropTypes.string,
67
90
  mobileIconAlignment: PropTypes.string,
91
+ searchInputAlignment: PropTypes.string,
92
+ entity: PropTypes.string,
68
93
  children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])
69
94
  };
70
95
 
71
96
  Menu.defaultProps = {
97
+ logoOnMobileUrl: '',
98
+ logoOnMobileAlt: '',
99
+ logoOnMobileModifier: '',
72
100
  hamburgerIconModifier: '',
73
101
  closeIconModifier: '',
74
102
  mobileButtonModifier: '',
75
103
  mobileIconAlignment: '',
76
104
  mobileMenuModifier: '',
77
105
  mobileMenuChildrenModifier: '',
106
+ searchInputAlignment: '',
78
107
  modifier: '',
108
+ entity: 'PublishedPage',
79
109
  children: []
80
110
  };
81
111