@blaze-cms/react-page-builder 0.122.1 → 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.
- package/CHANGELOG.md +8 -0
- package/lib/application/query/index.js +7 -1
- package/lib/application/query/index.js.map +1 -1
- package/lib/components/Menu/Menu.js +35 -4
- package/lib/components/Menu/Menu.js.map +1 -1
- package/lib/components/SearchContent/index.js +195 -0
- package/lib/components/SearchContent/index.js.map +1 -0
- package/lib/components/index.js +5 -5
- package/lib/components/index.js.map +1 -1
- package/lib-es/application/query/index.js +29 -1
- package/lib-es/application/query/index.js.map +1 -1
- package/lib-es/components/Menu/Menu.js +35 -5
- package/lib-es/components/Menu/Menu.js.map +1 -1
- package/lib-es/components/SearchContent/index.js +149 -0
- package/lib-es/components/SearchContent/index.js.map +1 -0
- package/lib-es/components/index.js +4 -4
- package/lib-es/components/index.js.map +1 -1
- package/package.json +2 -2
- package/src/application/query/index.js +29 -0
- package/src/components/Menu/Menu.js +32 -2
- package/src/components/SearchContent/index.js +146 -0
- package/src/components/index.js +4 -2
- package/tests/unit/src/components/Menu/__snapshots__/Menu.test.js.snap +11 -7
- package/tests/unit/src/components/__snapshots__/index.test.js.snap +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [0.123.0-alpha.2](https://github.com/thebyte9/blaze/compare/v0.123.0-alpha.1...v0.123.0-alpha.2) (2022-03-22)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [0.122.1](https://github.com/thebyte9/blaze/compare/v0.122.1-alpha.0...v0.122.1) (2022-03-21)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @blaze-cms/react-page-builder
|
|
@@ -7,7 +7,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.getUser = exports.getSingleEntitySchema = exports.getSearchPublishedContent = exports.getRecordParents = exports.getMultipleSchema = exports.getFiles = exports.getFileById = exports.getEntitySchema = exports.getCount = exports.getAction = exports.generateSingleItemQuery = exports.generateMultiItemQuery = void 0;
|
|
10
|
+
exports.getUser = exports.getSingleEntitySchema = exports.getSearchPublishedContent = exports.getRecordParents = exports.getPublishedContent = exports.getMultipleSchema = exports.getFiles = exports.getFileById = exports.getEntitySchema = exports.getCount = exports.getAction = exports.generateSingleItemQuery = exports.generateMultiItemQuery = void 0;
|
|
11
11
|
|
|
12
12
|
require("core-js/modules/es.array.join.js");
|
|
13
13
|
|
|
@@ -89,4 +89,10 @@ var getAction = function getAction(action, props) {
|
|
|
89
89
|
};
|
|
90
90
|
|
|
91
91
|
exports.getAction = getAction;
|
|
92
|
+
|
|
93
|
+
var getPublishedContent = function getPublishedContent(entity) {
|
|
94
|
+
return "\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ".concat(entity, " {\n id\n name\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n");
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
exports.getPublishedContent = getPublishedContent;
|
|
92
98
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/application/query/index.js"],"names":["defaultSchemaProps","getSearchPublishedContent","fields","gql","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,kBAAkB,kHAAxB;;AAWA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAAC,MAAM;AAAA,aAAIC,WAAJ,+VAG9BD,MAH8B;AAAA,CAAxC;;;;AAQA,IAAME,OAAO,GAAG,SAAVA,OAAU,CAAAC,SAAS;AAAA,aAAIF,WAAJ,uLAIjBE,SAJiB;AAAA,CAAzB;;;AASA,IAAMC,eAAe,OAAGH,WAAH,uNAGbH,kBAHa,CAArB;;AAQA,IAAMO,qBAAqB,OAAGJ,WAAH,8MAGnBH,kBAHmB,CAA3B;;;AAQA,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAC,SAAS;AAAA,aAAIN,WAAJ,gQAEfM,SAFe;AAAA,CAAlC;;;;AAcA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,WAAW,EAAI;AACvC,MAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhB,UAAAC,EAAE;AAAA,qBAAOA,EAAP,qCAAmCA,EAAnC,gCACMd,kBADN;AAAA,GAFc,EAMjBe,IANiB,MAApB;AAOA,aAAOZ,WAAP,0HAEMS,WAFN;AAID,CAZD;;;AAcA,IAAMI,QAAQ,OAAGb,WAAH,0MAAd;;AAUA,IAAMc,WAAW,OAAGd,WAAH,iMAAjB;;;AAUA,IAAMe,QAAQ,GAAG,SAAXA,QAAW,CAAAC,MAAM;AAAA,aAAIhB,WAAJ,2JACjBgB,MADiB;AAAA,CAAvB;;;;AAKA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACD,MAAD,EAASE,KAAT;AAAA,8GAKR,wBAAWF,MAAX,CALQ,8BAMhBA,MANgB,mFAOdE,KAPc;AAAA,CAAtB;;AAaA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACH,MAAD,EAASE,KAAT;AAAA,aAAmBlB,WAAnB,qNAEzBgB,MAFyB,EAGvBE,KAHuB;AAAA,CAA/B;;;;AAUA,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACJ,MAAD,EAASE,KAAT;AAAA,aAAmBlB,WAAnB,sNAEdgB,MAFc,EAG1BE,KAH0B;AAAA,CAAhC,C,CAUA;;;;;AACA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAACL,MAAD,EAASE,KAAT,EAAmB;AACnC,MAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;AACA,aAAOlB,WAAP,0GACIsB,KADJ;AAGD,CALD","sourcesContent":["import { gql } from '@apollo/client';\nimport upperFirst from 'lodash.upperfirst';\n\nconst defaultSchemaProps = `\n id\n identifier\n properties\n dynamicProperties\n actions\n interfaces\n relations\n __typename\n`;\n\nconst getSearchPublishedContent = fields => gql`\n query searchPublishedContent($rawQueryStringified: String!, $offset: Int, $limit: Int, $sort: String) {\n searchPublishedContent(rawQueryStringified: $rawQueryStringified, offset: $offset, limit: $limit, sort: $sort) {\n ${fields}\n }\n }\n `;\n\nconst getUser = userProps => gql`\n query getUser($id: String!) {\n getUser(id: $id) {\n id\n ${userProps}\n }\n }\n`;\n\nconst getEntitySchema = gql`\n query getEntitySchemas($identifier: String!) {\n getEntitySchemas(identifier: $identifier) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getSingleEntitySchema = gql`\n query getEntitySchema($id: String!) {\n getEntitySchema: getEntitySchema(id: $id) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getRecordParents = queryName => gql`\nquery getRecordParents($id: String!){\n recordParents: ${queryName}(id: $id){\n id,\n name,\n url,\n parents {\n id,\n name\n url\n }\n }\n}`;\n\nconst getMultipleSchema = identifiers => {\n const queryString = identifiers\n .map(\n id => `${id}: getEntitySchema(id: \"${id}\") {\n ${defaultSchemaProps}\n }`\n )\n .join(`\\n`);\n return gql`\n query {\n ${queryString}\n }`;\n};\n\nconst getFiles = gql`\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst getFileById = gql`\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n`;\n\nconst getCount = action => gql`query countData($where: JSON!) {\n ${action} (where: $where)\n }\n`;\n\nconst generateQuery = (action, props) => `\n query getEntityData(\n $where: JSON\n $limit: Int\n $offset: Int\n $sort: [${upperFirst(action)}SortItem]){\n ${action} (where: $where, limit: $limit, offset: $offset, sort: $sort){\n ${props}\n id\n __typename\n }\n }\n `;\nconst generateMultiItemQuery = (action, props) => gql`\n query getEntityData($where: JSON){\n ${action} (where: $where){\n ${props}\n id\n __typename\n }\n }\n `;\n\nconst generateSingleItemQuery = (action, props) => gql`\n query getEntityData($id: String!){\n entityData: ${action}(id: $id){\n ${props},\n id,\n __typename\n }\n }\n `;\n\n// TODO: extend function to handle properties and make them dynamic with a config schema for each entity.\nconst getAction = (action, props) => {\n const query = generateQuery(action, props);\n return gql`\n ${query}\n `;\n};\n\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents\n};\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/application/query/index.js"],"names":["defaultSchemaProps","getSearchPublishedContent","fields","gql","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query","getPublishedContent","entity"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;AAEA,IAAMA,kBAAkB,kHAAxB;;AAWA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAAC,MAAM;AAAA,aAAIC,WAAJ,+VAG9BD,MAH8B;AAAA,CAAxC;;;;AAQA,IAAME,OAAO,GAAG,SAAVA,OAAU,CAAAC,SAAS;AAAA,aAAIF,WAAJ,uLAIjBE,SAJiB;AAAA,CAAzB;;;AASA,IAAMC,eAAe,OAAGH,WAAH,uNAGbH,kBAHa,CAArB;;AAQA,IAAMO,qBAAqB,OAAGJ,WAAH,8MAGnBH,kBAHmB,CAA3B;;;AAQA,IAAMQ,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAAC,SAAS;AAAA,aAAIN,WAAJ,gQAEfM,SAFe;AAAA,CAAlC;;;;AAcA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,WAAW,EAAI;AACvC,MAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhB,UAAAC,EAAE;AAAA,qBAAOA,EAAP,qCAAmCA,EAAnC,gCACMd,kBADN;AAAA,GAFc,EAMjBe,IANiB,MAApB;AAOA,aAAOZ,WAAP,0HAEMS,WAFN;AAID,CAZD;;;AAcA,IAAMI,QAAQ,OAAGb,WAAH,0MAAd;;AAUA,IAAMc,WAAW,OAAGd,WAAH,iMAAjB;;;AAUA,IAAMe,QAAQ,GAAG,SAAXA,QAAW,CAAAC,MAAM;AAAA,aAAIhB,WAAJ,2JACjBgB,MADiB;AAAA,CAAvB;;;;AAKA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACD,MAAD,EAASE,KAAT;AAAA,8GAKR,wBAAWF,MAAX,CALQ,8BAMhBA,MANgB,mFAOdE,KAPc;AAAA,CAAtB;;AAaA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACH,MAAD,EAASE,KAAT;AAAA,aAAmBlB,WAAnB,qNAEzBgB,MAFyB,EAGvBE,KAHuB;AAAA,CAA/B;;;;AAUA,IAAME,uBAAuB,GAAG,SAA1BA,uBAA0B,CAACJ,MAAD,EAASE,KAAT;AAAA,aAAmBlB,WAAnB,sNAEdgB,MAFc,EAG1BE,KAH0B;AAAA,CAAhC,C,CAUA;;;;;AACA,IAAMG,SAAS,GAAG,SAAZA,SAAY,CAACL,MAAD,EAASE,KAAT,EAAmB;AACnC,MAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;AACA,aAAOlB,WAAP,0GACIsB,KADJ;AAGD,CALD;;;;AAOA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAAC,MAAM;AAAA,4UAcjBA,MAdiB;AAAA,CAAlC","sourcesContent":["import { gql } from '@apollo/client';\nimport upperFirst from 'lodash.upperfirst';\n\nconst defaultSchemaProps = `\n id\n identifier\n properties\n dynamicProperties\n actions\n interfaces\n relations\n __typename\n`;\n\nconst getSearchPublishedContent = fields => gql`\n query searchPublishedContent($rawQueryStringified: String!, $offset: Int, $limit: Int, $sort: String) {\n searchPublishedContent(rawQueryStringified: $rawQueryStringified, offset: $offset, limit: $limit, sort: $sort) {\n ${fields}\n }\n }\n `;\n\nconst getUser = userProps => gql`\n query getUser($id: String!) {\n getUser(id: $id) {\n id\n ${userProps}\n }\n }\n`;\n\nconst getEntitySchema = gql`\n query getEntitySchemas($identifier: String!) {\n getEntitySchemas(identifier: $identifier) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getSingleEntitySchema = gql`\n query getEntitySchema($id: String!) {\n getEntitySchema: getEntitySchema(id: $id) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getRecordParents = queryName => gql`\nquery getRecordParents($id: String!){\n recordParents: ${queryName}(id: $id){\n id,\n name,\n url,\n parents {\n id,\n name\n url\n }\n }\n}`;\n\nconst getMultipleSchema = identifiers => {\n const queryString = identifiers\n .map(\n id => `${id}: getEntitySchema(id: \"${id}\") {\n ${defaultSchemaProps}\n }`\n )\n .join(`\\n`);\n return gql`\n query {\n ${queryString}\n }`;\n};\n\nconst getFiles = gql`\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst getFileById = gql`\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n`;\n\nconst getCount = action => gql`query countData($where: JSON!) {\n ${action} (where: $where)\n }\n`;\n\nconst generateQuery = (action, props) => `\n query getEntityData(\n $where: JSON\n $limit: Int\n $offset: Int\n $sort: [${upperFirst(action)}SortItem]){\n ${action} (where: $where, limit: $limit, offset: $offset, sort: $sort){\n ${props}\n id\n __typename\n }\n }\n `;\nconst generateMultiItemQuery = (action, props) => gql`\n query getEntityData($where: JSON){\n ${action} (where: $where){\n ${props}\n id\n __typename\n }\n }\n `;\n\nconst generateSingleItemQuery = (action, props) => gql`\n query getEntityData($id: String!){\n entityData: ${action}(id: $id){\n ${props},\n id,\n __typename\n }\n }\n `;\n\n// TODO: extend function to handle properties and make them dynamic with a config schema for each entity.\nconst getAction = (action, props) => {\n const query = generateQuery(action, props);\n return gql`\n ${query}\n `;\n};\n\nconst getPublishedContent = entity => `\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ${entity} {\n id\n name\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n`;\n\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getPublishedContent,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents\n};\n"],"file":"index.js"}
|
|
@@ -41,7 +41,9 @@ var _hooks = require("../../hooks");
|
|
|
41
41
|
|
|
42
42
|
var _constants = require("../../constants");
|
|
43
43
|
|
|
44
|
-
var
|
|
44
|
+
var _SearchContent = _interopRequireDefault(require("../SearchContent"));
|
|
45
|
+
|
|
46
|
+
var _excluded = ["children", "collapse", "modifier", "mobileMenuModifier", "mobileMenuChildrenModifier", "mobileIconAlignment", "mobileButtonModifier", "hamburgerIconModifier", "searchInputAlignment", "logoOnMobile", "logoOnMobileUrl", "logoOnMobileAlt", "logoOnMobileModifier", "closeIconModifier", "entity", "router"];
|
|
45
47
|
|
|
46
48
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
47
49
|
|
|
@@ -56,7 +58,14 @@ var Menu = function Menu(_ref) {
|
|
|
56
58
|
mobileIconAlignment = _ref.mobileIconAlignment,
|
|
57
59
|
mobileButtonModifier = _ref.mobileButtonModifier,
|
|
58
60
|
hamburgerIconModifier = _ref.hamburgerIconModifier,
|
|
61
|
+
searchInputAlignment = _ref.searchInputAlignment,
|
|
62
|
+
logoOnMobile = _ref.logoOnMobile,
|
|
63
|
+
logoOnMobileUrl = _ref.logoOnMobileUrl,
|
|
64
|
+
logoOnMobileAlt = _ref.logoOnMobileAlt,
|
|
65
|
+
logoOnMobileModifier = _ref.logoOnMobileModifier,
|
|
59
66
|
closeIconModifier = _ref.closeIconModifier,
|
|
67
|
+
entity = _ref.entity,
|
|
68
|
+
router = _ref.router,
|
|
60
69
|
rest = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
|
|
61
70
|
var isMobile = (0, _hooks.useCheckMobileScreen)();
|
|
62
71
|
|
|
@@ -72,7 +81,7 @@ var Menu = function Menu(_ref) {
|
|
|
72
81
|
var childrenMobileModifier = shouldDisplayChildren && isMobile ? "".concat(mobileMenuChildrenModifier) : " ".concat(_constants.HIDDEN);
|
|
73
82
|
var isMobileMenuExpanded = showMobileMenu ? "".concat(mobileMenuModifier) : '';
|
|
74
83
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, collapse && /*#__PURE__*/_react["default"].createElement("div", {
|
|
75
|
-
className: "
|
|
84
|
+
className: "menu--mobile-wrapper"
|
|
76
85
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
77
86
|
className: "flex w-screen z-50 justify-".concat(mobileIconAlignment, " ").concat(isMobileMenuExpanded)
|
|
78
87
|
}, /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
@@ -84,13 +93,28 @@ var Menu = function Menu(_ref) {
|
|
|
84
93
|
className: closeIconModifier
|
|
85
94
|
}) : /*#__PURE__*/_react["default"].createElement(_md.MdMenu, {
|
|
86
95
|
className: hamburgerIconModifier
|
|
87
|
-
})))
|
|
96
|
+
}))), showMobileMenu && /*#__PURE__*/_react["default"].createElement(_SearchContent["default"], {
|
|
97
|
+
searchInputAlignment: searchInputAlignment,
|
|
98
|
+
entity: entity
|
|
99
|
+
}))), logoOnMobile && !showMobileMenu && /*#__PURE__*/_react["default"].createElement("a", {
|
|
100
|
+
href: "/"
|
|
101
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
102
|
+
src: logoOnMobileUrl,
|
|
103
|
+
alt: logoOnMobileAlt,
|
|
104
|
+
className: logoOnMobileModifier
|
|
105
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
106
|
+
className: "menu--desktop-wrapper"
|
|
107
|
+
}, /*#__PURE__*/_react["default"].createElement("ul", {
|
|
88
108
|
className: isMobile ? childrenMobileModifier : childrenDesktopModifier
|
|
89
|
-
}, children));
|
|
109
|
+
}, children)));
|
|
90
110
|
};
|
|
91
111
|
|
|
92
112
|
Menu.propTypes = {
|
|
93
113
|
collapse: _propTypes["default"].bool.isRequired,
|
|
114
|
+
logoOnMobile: _propTypes["default"].bool.isRequired,
|
|
115
|
+
logoOnMobileUrl: _propTypes["default"].string,
|
|
116
|
+
logoOnMobileAlt: _propTypes["default"].string,
|
|
117
|
+
logoOnMobileModifier: _propTypes["default"].string,
|
|
94
118
|
hamburgerIconModifier: _propTypes["default"].string,
|
|
95
119
|
closeIconModifier: _propTypes["default"].string,
|
|
96
120
|
mobileButtonModifier: _propTypes["default"].string,
|
|
@@ -98,16 +122,23 @@ Menu.propTypes = {
|
|
|
98
122
|
mobileMenuChildrenModifier: _propTypes["default"].string,
|
|
99
123
|
modifier: _propTypes["default"].string,
|
|
100
124
|
mobileIconAlignment: _propTypes["default"].string,
|
|
125
|
+
searchInputAlignment: _propTypes["default"].string,
|
|
126
|
+
entity: _propTypes["default"].string,
|
|
101
127
|
children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node])
|
|
102
128
|
};
|
|
103
129
|
Menu.defaultProps = {
|
|
130
|
+
logoOnMobileUrl: '',
|
|
131
|
+
logoOnMobileAlt: '',
|
|
132
|
+
logoOnMobileModifier: '',
|
|
104
133
|
hamburgerIconModifier: '',
|
|
105
134
|
closeIconModifier: '',
|
|
106
135
|
mobileButtonModifier: '',
|
|
107
136
|
mobileIconAlignment: '',
|
|
108
137
|
mobileMenuModifier: '',
|
|
109
138
|
mobileMenuChildrenModifier: '',
|
|
139
|
+
searchInputAlignment: '',
|
|
110
140
|
modifier: '',
|
|
141
|
+
entity: 'PublishedPage',
|
|
111
142
|
children: []
|
|
112
143
|
};
|
|
113
144
|
var _default = Menu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Menu/Menu.js"],"names":["Menu","children","collapse","modifier","mobileMenuModifier","mobileMenuChildrenModifier","mobileIconAlignment","mobileButtonModifier","hamburgerIconModifier","closeIconModifier","rest","isMobile","showMobileMenu","setShowMobileMenu","shouldDisplayCollapsed","mobileButtonClass","HIDDEN","shouldDisplayChildren","childrenDesktopModifier","childrenMobileModifier","isMobileMenuExpanded","propTypes","PropTypes","bool","isRequired","string","oneOfType","arrayOf","node","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,IAAI,GAAG,SAAPA,IAAO,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Menu/Menu.js"],"names":["Menu","children","collapse","modifier","mobileMenuModifier","mobileMenuChildrenModifier","mobileIconAlignment","mobileButtonModifier","hamburgerIconModifier","searchInputAlignment","logoOnMobile","logoOnMobileUrl","logoOnMobileAlt","logoOnMobileModifier","closeIconModifier","entity","router","rest","isMobile","showMobileMenu","setShowMobileMenu","shouldDisplayCollapsed","mobileButtonClass","HIDDEN","shouldDisplayChildren","childrenDesktopModifier","childrenMobileModifier","isMobileMenuExpanded","propTypes","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,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.object.define-property.js");
|
|
4
|
+
|
|
5
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = void 0;
|
|
11
|
+
|
|
12
|
+
require("core-js/modules/es.array.map.js");
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/es.function.name.js");
|
|
15
|
+
|
|
16
|
+
require("core-js/modules/es.regexp.exec.js");
|
|
17
|
+
|
|
18
|
+
require("core-js/modules/es.string.match.js");
|
|
19
|
+
|
|
20
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
21
|
+
|
|
22
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
23
|
+
|
|
24
|
+
var _react = require("react");
|
|
25
|
+
|
|
26
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
+
|
|
28
|
+
var _client = require("@apollo/client");
|
|
29
|
+
|
|
30
|
+
var _router = require("next/router");
|
|
31
|
+
|
|
32
|
+
var _query = require("../../application/query");
|
|
33
|
+
|
|
34
|
+
var _templateObject;
|
|
35
|
+
|
|
36
|
+
var SearchContent = function SearchContent(_ref) {
|
|
37
|
+
var searchInputAlignment = _ref.searchInputAlignment,
|
|
38
|
+
entityName = _ref.entityName,
|
|
39
|
+
entityField = _ref.entityField;
|
|
40
|
+
|
|
41
|
+
var _useState = (0, _react.useState)(true),
|
|
42
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
43
|
+
collapsed = _useState2[0],
|
|
44
|
+
setCollapsed = _useState2[1];
|
|
45
|
+
|
|
46
|
+
var _useState3 = (0, _react.useState)(null),
|
|
47
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
48
|
+
searchTerm = _useState4[0],
|
|
49
|
+
setSearchTerm = _useState4[1];
|
|
50
|
+
|
|
51
|
+
var router = (0, _router.useRouter)();
|
|
52
|
+
var alignmentModifier = '';
|
|
53
|
+
|
|
54
|
+
if (searchInputAlignment && searchInputAlignment !== '') {
|
|
55
|
+
alignmentModifier = searchInputAlignment === 'left' ? 'left-6' : 'right-16';
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
var rawQueryStringified = JSON.stringify({
|
|
59
|
+
size: 0,
|
|
60
|
+
query: {
|
|
61
|
+
bool: {
|
|
62
|
+
filter: {
|
|
63
|
+
bool: {
|
|
64
|
+
should: [{
|
|
65
|
+
match: {
|
|
66
|
+
docType: entityField
|
|
67
|
+
}
|
|
68
|
+
}],
|
|
69
|
+
minimum_should_match: 1
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
var query = (0, _client.gql)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n "])), (0, _query.getPublishedContent)(entityName));
|
|
76
|
+
|
|
77
|
+
var _useQuery = (0, _client.useQuery)(query, {
|
|
78
|
+
variables: {
|
|
79
|
+
rawQueryStringified: rawQueryStringified,
|
|
80
|
+
offset: 0,
|
|
81
|
+
limit: 5
|
|
82
|
+
}
|
|
83
|
+
}),
|
|
84
|
+
loading = _useQuery.loading,
|
|
85
|
+
error = _useQuery.error,
|
|
86
|
+
data = _useQuery.data;
|
|
87
|
+
|
|
88
|
+
if (loading) return null;
|
|
89
|
+
if (error) return "Error! ".concat(error);
|
|
90
|
+
|
|
91
|
+
var renderResults = function renderResults() {
|
|
92
|
+
// eslint-disable-next-line no-undef
|
|
93
|
+
var _data$searchPublished = data === null || data === void 0 ? void 0 : data.searchPublishedContent,
|
|
94
|
+
results = _data$searchPublished.results;
|
|
95
|
+
|
|
96
|
+
var handleClick = function handleClick(e, url) {
|
|
97
|
+
e.preventDefault();
|
|
98
|
+
router.push(url);
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
if (results && searchTerm && searchTerm !== '') {
|
|
102
|
+
return results.map(function (_ref2) {
|
|
103
|
+
var name = _ref2.name,
|
|
104
|
+
url = _ref2.url;
|
|
105
|
+
|
|
106
|
+
if (name.match(searchTerm)) {
|
|
107
|
+
return /*#__PURE__*/React.createElement("a", {
|
|
108
|
+
href: url,
|
|
109
|
+
onClick: function onClick(e) {
|
|
110
|
+
return handleClick(e, url);
|
|
111
|
+
}
|
|
112
|
+
}, name);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return null;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return [];
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
return collapsed ? /*#__PURE__*/React.createElement("div", {
|
|
123
|
+
className: "absolute rounded-3xl overflow-auto top-3 ".concat(alignmentModifier)
|
|
124
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
125
|
+
className: "w-11 mx-auto"
|
|
126
|
+
}, /*#__PURE__*/React.createElement("label", {
|
|
127
|
+
className: "relative block"
|
|
128
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
129
|
+
className: "absolute inset-y-0 right-3 flex items-center pl-2 cursor-pointer"
|
|
130
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
131
|
+
className: "h-5 w-5 fill-slate-300",
|
|
132
|
+
viewBox: "0 0 20 20"
|
|
133
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
134
|
+
fillRule: "evenodd",
|
|
135
|
+
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",
|
|
136
|
+
clipRule: "evenodd"
|
|
137
|
+
}))), /*#__PURE__*/React.createElement("span", {
|
|
138
|
+
className: "sr-only"
|
|
139
|
+
}, "Search"), /*#__PURE__*/React.createElement("input", {
|
|
140
|
+
onFocus: function onFocus() {
|
|
141
|
+
return setCollapsed(false);
|
|
142
|
+
},
|
|
143
|
+
onChange: function onChange(e) {
|
|
144
|
+
return setSearchTerm(e.target.value);
|
|
145
|
+
},
|
|
146
|
+
type: "text",
|
|
147
|
+
name: "search",
|
|
148
|
+
value: "",
|
|
149
|
+
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"
|
|
150
|
+
})))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
151
|
+
className: "absolute overflow-auto top-3 ".concat(alignmentModifier)
|
|
152
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
153
|
+
className: "w-96 mx-auto rounded-3xl"
|
|
154
|
+
}, /*#__PURE__*/React.createElement("label", {
|
|
155
|
+
className: "relative block"
|
|
156
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
157
|
+
className: "absolute inset-y-0 right-3 flex items-center pl-2"
|
|
158
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
159
|
+
className: "h-5 w-5 fill-slate-300",
|
|
160
|
+
viewBox: "0 0 20 20"
|
|
161
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
162
|
+
fillRule: "evenodd",
|
|
163
|
+
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",
|
|
164
|
+
clipRule: "evenodd"
|
|
165
|
+
}))), /*#__PURE__*/React.createElement("span", {
|
|
166
|
+
className: "sr-only"
|
|
167
|
+
}, "Search"), /*#__PURE__*/React.createElement("input", {
|
|
168
|
+
type: "text",
|
|
169
|
+
name: "search",
|
|
170
|
+
onChange: function onChange(e) {
|
|
171
|
+
return setSearchTerm(e.target.value);
|
|
172
|
+
},
|
|
173
|
+
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",
|
|
174
|
+
placeholder: "Search for anything...",
|
|
175
|
+
onBlur: function onBlur() {
|
|
176
|
+
return setCollapsed(true);
|
|
177
|
+
}
|
|
178
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
179
|
+
className: "bg-white ml-3 mr-3 relative"
|
|
180
|
+
}, /*#__PURE__*/React.createElement("div", null, "Search Results"), data && renderResults())));
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
SearchContent.propTypes = {
|
|
184
|
+
searchInputAlignment: _propTypes["default"].string,
|
|
185
|
+
entityName: _propTypes["default"].string,
|
|
186
|
+
entityField: _propTypes["default"].string
|
|
187
|
+
};
|
|
188
|
+
SearchContent.defaultProps = {
|
|
189
|
+
searchInputAlignment: '',
|
|
190
|
+
entityName: 'PublishedPage',
|
|
191
|
+
entityField: 'published_page'
|
|
192
|
+
};
|
|
193
|
+
var _default = SearchContent;
|
|
194
|
+
exports["default"] = _default;
|
|
195
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SearchContent/index.js"],"names":["SearchContent","searchInputAlignment","entityName","entityField","collapsed","setCollapsed","searchTerm","setSearchTerm","router","alignmentModifier","rawQueryStringified","JSON","stringify","size","query","bool","filter","should","match","docType","minimum_should_match","gql","variables","offset","limit","loading","error","data","renderResults","searchPublishedContent","results","handleClick","e","url","preventDefault","push","map","name","target","value","propTypes","PropTypes","string","defaultProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,OAAuD;AAAA,MAApDC,oBAAoD,QAApDA,oBAAoD;AAAA,MAA9BC,UAA8B,QAA9BA,UAA8B;AAAA,MAAlBC,WAAkB,QAAlBA,WAAkB;;AAC3E,kBAAkC,qBAAS,IAAT,CAAlC;AAAA;AAAA,MAAOC,SAAP;AAAA,MAAkBC,YAAlB;;AACA,mBAAoC,qBAAS,IAAT,CAApC;AAAA;AAAA,MAAOC,UAAP;AAAA,MAAmBC,aAAnB;;AACA,MAAMC,MAAM,GAAG,wBAAf;AAEA,MAAIC,iBAAiB,GAAG,EAAxB;;AAEA,MAAIR,oBAAoB,IAAIA,oBAAoB,KAAK,EAArD,EAAyD;AACvDQ,IAAAA,iBAAiB,GAAGR,oBAAoB,KAAK,MAAzB,GAAkC,QAAlC,GAA6C,UAAjE;AACD;;AAED,MAAMS,mBAAmB,GAAGC,IAAI,CAACC,SAAL,CAAe;AACzCC,IAAAA,IAAI,EAAE,CADmC;AAEzCC,IAAAA,KAAK,EAAE;AACLC,MAAAA,IAAI,EAAE;AACJC,QAAAA,MAAM,EAAE;AACND,UAAAA,IAAI,EAAE;AACJE,YAAAA,MAAM,EAAE,CACN;AACEC,cAAAA,KAAK,EAAE;AACLC,gBAAAA,OAAO,EAAEhB;AADJ;AADT,aADM,CADJ;AAQJiB,YAAAA,oBAAoB,EAAE;AARlB;AADA;AADJ;AADD;AAFkC,GAAf,CAA5B;AAoBA,MAAMN,KAAK,OAAGO,WAAH,sGACP,gCAAoBnB,UAApB,CADO,CAAX;;AAIA,kBAAiC,sBAASY,KAAT,EAAgB;AAC/CQ,IAAAA,SAAS,EAAE;AAAEZ,MAAAA,mBAAmB,EAAnBA,mBAAF;AAAuBa,MAAAA,MAAM,EAAE,CAA/B;AAAkCC,MAAAA,KAAK,EAAE;AAAzC;AADoC,GAAhB,CAAjC;AAAA,MAAQC,OAAR,aAAQA,OAAR;AAAA,MAAiBC,KAAjB,aAAiBA,KAAjB;AAAA,MAAwBC,IAAxB,aAAwBA,IAAxB;;AAIA,MAAIF,OAAJ,EAAa,OAAO,IAAP;AACb,MAAIC,KAAJ,EAAW,wBAAiBA,KAAjB;;AAEX,MAAME,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1B;AACA,gCAAoBD,IAApB,aAAoBA,IAApB,uBAAoBA,IAAI,CAAEE,sBAA1B;AAAA,QAAQC,OAAR,yBAAQA,OAAR;;AAEA,QAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAIC,GAAJ,EAAY;AAC9BD,MAAAA,CAAC,CAACE,cAAF;AACA1B,MAAAA,MAAM,CAAC2B,IAAP,CAAYF,GAAZ;AACD,KAHD;;AAKA,QAAIH,OAAO,IAAIxB,UAAX,IAAyBA,UAAU,KAAK,EAA5C,EAAgD;AAC9C,aAAOwB,OAAO,CAACM,GAAR,CAAY,iBAAmB;AAAA,YAAhBC,IAAgB,SAAhBA,IAAgB;AAAA,YAAVJ,GAAU,SAAVA,GAAU;;AACpC,YAAII,IAAI,CAACnB,KAAL,CAAWZ,UAAX,CAAJ,EAA4B;AAC1B,8BACE;AAAG,YAAA,IAAI,EAAE2B,GAAT;AAAc,YAAA,OAAO,EAAE,iBAAAD,CAAC;AAAA,qBAAID,WAAW,CAACC,CAAD,EAAIC,GAAJ,CAAf;AAAA;AAAxB,aACGI,IADH,CADF;AAKD;;AAED,eAAO,IAAP;AACD,OAVM,CAAP;AAWD;;AAED,WAAO,EAAP;AACD,GAxBD;;AA0BA,SAAOjC,SAAS,gBACd;AAAK,IAAA,SAAS,qDAA8CK,iBAA9C;AAAd,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,kBACE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAwC,IAAA,OAAO,EAAC;AAAhD,kBACE;AACE,IAAA,QAAQ,EAAC,SADX;AAEE,IAAA,CAAC,EAAC,kHAFJ;AAGE,IAAA,QAAQ,EAAC;AAHX,IADF,CADF,CADF,eAUE;AAAM,IAAA,SAAS,EAAC;AAAhB,cAVF,eAWE;AACE,IAAA,OAAO,EAAE;AAAA,aAAMJ,YAAY,CAAC,KAAD,CAAlB;AAAA,KADX;AAEE,IAAA,QAAQ,EAAE,kBAAA2B,CAAC;AAAA,aAAIzB,aAAa,CAACyB,CAAC,CAACM,MAAF,CAASC,KAAV,CAAjB;AAAA,KAFb;AAGE,IAAA,IAAI,EAAC,MAHP;AAIE,IAAA,IAAI,EAAC,QAJP;AAKE,IAAA,KAAK,EAAC,EALR;AAME,IAAA,SAAS,EAAC;AANZ,IAXF,CADF,CADF,CADc,gBA0Bd,uDACE;AAAK,IAAA,SAAS,0CAAmC9B,iBAAnC;AAAd,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAO,IAAA,SAAS,EAAC;AAAjB,kBACE;AAAM,IAAA,SAAS,EAAC;AAAhB,kBACE;AAAK,IAAA,SAAS,EAAC,wBAAf;AAAwC,IAAA,OAAO,EAAC;AAAhD,kBACE;AACE,IAAA,QAAQ,EAAC,SADX;AAEE,IAAA,CAAC,EAAC,kHAFJ;AAGE,IAAA,QAAQ,EAAC;AAHX,IADF,CADF,CADF,eAUE;AAAM,IAAA,SAAS,EAAC;AAAhB,cAVF,eAWE;AACE,IAAA,IAAI,EAAC,MADP;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,QAAQ,EAAE,kBAAAuB,CAAC;AAAA,aAAIzB,aAAa,CAACyB,CAAC,CAACM,MAAF,CAASC,KAAV,CAAjB;AAAA,KAHb;AAIE,IAAA,SAAS,EAAC,+HAJZ;AAKE,IAAA,WAAW,EAAC,wBALd;AAME,IAAA,MAAM,EAAE;AAAA,aAAMlC,YAAY,CAAC,IAAD,CAAlB;AAAA;AANV,IAXF,CADF,CADF,eAuBE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,kDADF,EAEGsB,IAAI,IAAIC,aAAa,EAFxB,CAvBF,CADF,CA1BF;AAyDD,CA7HD;;AA+HA5B,aAAa,CAACwC,SAAd,GAA0B;AACxBvC,EAAAA,oBAAoB,EAAEwC,sBAAUC,MADR;AAExBxC,EAAAA,UAAU,EAAEuC,sBAAUC,MAFE;AAGxBvC,EAAAA,WAAW,EAAEsC,sBAAUC;AAHC,CAA1B;AAMA1C,aAAa,CAAC2C,YAAd,GAA6B;AAC3B1C,EAAAA,oBAAoB,EAAE,EADK;AAE3BC,EAAAA,UAAU,EAAE,eAFe;AAG3BC,EAAAA,WAAW,EAAE;AAHc,CAA7B;eAMeH,a","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"}
|
package/lib/components/index.js
CHANGED
|
@@ -95,6 +95,11 @@ var _default = {
|
|
|
95
95
|
return _interopRequireWildcard(require('./Wrapper'));
|
|
96
96
|
});
|
|
97
97
|
}),
|
|
98
|
+
searchcontent: (0, _dynamic["default"])(function () {
|
|
99
|
+
return Promise.resolve().then(function () {
|
|
100
|
+
return _interopRequireWildcard(require('./SearchContent'));
|
|
101
|
+
});
|
|
102
|
+
}),
|
|
98
103
|
searchfilter: (0, _dynamic["default"])(function () {
|
|
99
104
|
return Promise.resolve().then(function () {
|
|
100
105
|
return _interopRequireWildcard(require('./SearchFilter'));
|
|
@@ -149,11 +154,6 @@ var _default = {
|
|
|
149
154
|
return Promise.resolve().then(function () {
|
|
150
155
|
return _interopRequireWildcard(require('./PasswordResetRequest'));
|
|
151
156
|
});
|
|
152
|
-
}),
|
|
153
|
-
breadcrumb: (0, _dynamic["default"])(function () {
|
|
154
|
-
return Promise.resolve().then(function () {
|
|
155
|
-
return _interopRequireWildcard(require('./Breadcrumb'));
|
|
156
|
-
});
|
|
157
157
|
})
|
|
158
158
|
};
|
|
159
159
|
exports["default"] = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/index.js"],"names":["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"
|
|
1
|
+
{"version":3,"sources":["../../src/components/index.js"],"names":["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;;AACA;;;;;;eAEe;AACbA,EAAAA,MAAM,EAAEC,kBADK;AAEbC,EAAAA,MAAM,EAAE,yBAAQ;AAAA;AAAA,6CAAqD,UAArD;AAAA;AAAA,GAAR,CAFK;AAGbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CAHO;AAIbC,EAAAA,QAAQ,EAAE,yBAAQ;AAAA;AAAA,6CAAuD,YAAvD;AAAA;AAAA,GAAR,CAJG;AAKbC,EAAAA,MAAM,EAAE,yBAAQ;AAAA;AAAA,6CAAqD,UAArD;AAAA;AAAA,GAAR,CALK;AAMbC,EAAAA,WAAW,EAAE,yBAAQ;AAAA;AAAA,6CAA0D,eAA1D;AAAA;AAAA,GAAR,CANA;AAObC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAPM;AAQbC,EAAAA,GAAG,EAAE,yBAAQ;AAAA;AAAA,6CAAqD,UAArD;AAAA;AAAA,GAAR,CARQ;AASbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CATO;AAUbC,EAAAA,YAAY,EAAE,yBAAQ;AAAA;AAAA,6CACiC,gBADjC;AAAA;AAAA,GAAR,CAVD;AAabC,EAAAA,SAAS,EAAE,yBAAQ;AAAA;AAAA,6CAAwD,aAAxD;AAAA;AAAA,GAAR,CAbE;AAcbC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAdM;AAebC,EAAAA,OAAO,EAAE,yBAAQ;AAAA;AAAA,6CAAsD,WAAtD;AAAA;AAAA,GAAR,CAfI;AAgBbC,EAAAA,aAAa,EAAE,yBAAQ;AAAA;AAAA,6CACgC,iBADhC;AAAA;AAAA,GAAR,CAhBF;AAmBbC,EAAAA,YAAY,EAAE,yBAAQ;AAAA;AAAA,6CACiC,gBADjC;AAAA;AAAA,GAAR,CAnBD;AAsBbC,EAAAA,gBAAgB,EAAE,yBAAQ;AAAA;AAAA,6CACgC,oBADhC;AAAA;AAAA,GAAR,CAtBL;AAyBbC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CAzBM;AA0BbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CA1BO;AA2BbC,EAAAA,KAAK,EAAE,yBAAQ;AAAA;AAAA,6CAAoD,SAApD;AAAA;AAAA,GAAR,CA3BM;AA4BbC,EAAAA,IAAI,EAAE,yBAAQ;AAAA;AAAA,6CAAmD,QAAnD;AAAA;AAAA,GAAR,CA5BO;AA6BbC,EAAAA,QAAQ,EAAE,yBAAQ;AAAA;AAAA,6CAAuD,YAAvD;AAAA;AAAA,GAAR,CA7BG;AA8BbC,EAAAA,OAAO,EAAE,yBAAQ;AAAA;AAAA,6CAAsD,WAAtD;AAAA;AAAA,GAAR,CA9BI;AA+BbC,EAAAA,YAAY,EAAE,yBAAQ;AAAA;AAAA,6CACiC,gBADjC;AAAA;AAAA,GAAR,CA/BD;AAkCbC,EAAAA,aAAa,EAAE,yBAAQ;AAAA;AAAA,6CACiC,iBADjC;AAAA;AAAA,GAAR,CAlCF;AAqCbC,EAAAA,oBAAoB,EAAE,yBAAQ;AAAA;AAAA,6CACiC,wBADjC;AAAA;AAAA,GAAR;AArCT,C","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"}
|
|
@@ -133,5 +133,33 @@ const getAction = (action, props) => {
|
|
|
133
133
|
`;
|
|
134
134
|
};
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
const getPublishedContent = entity => `
|
|
137
|
+
query searchPublishedContent(
|
|
138
|
+
$rawQueryStringified: String!
|
|
139
|
+
$offset: Int
|
|
140
|
+
$limit: Int
|
|
141
|
+
$sort: String
|
|
142
|
+
) {
|
|
143
|
+
searchPublishedContent(
|
|
144
|
+
rawQueryStringified: $rawQueryStringified
|
|
145
|
+
offset: $offset
|
|
146
|
+
limit: $limit
|
|
147
|
+
sort: $sort
|
|
148
|
+
) {
|
|
149
|
+
results {
|
|
150
|
+
... on ${entity} {
|
|
151
|
+
id
|
|
152
|
+
name
|
|
153
|
+
url
|
|
154
|
+
__typename
|
|
155
|
+
}
|
|
156
|
+
__typename
|
|
157
|
+
}
|
|
158
|
+
total
|
|
159
|
+
__typename
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
`;
|
|
163
|
+
|
|
164
|
+
export { getEntitySchema, getSingleEntitySchema, getAction, getFiles, getFileById, generateMultiItemQuery, generateSingleItemQuery, getPublishedContent, getSearchPublishedContent, getCount, getMultipleSchema, getUser, getRecordParents };
|
|
137
165
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/application/query/index.js"],"names":["gql","upperFirst","defaultSchemaProps","getSearchPublishedContent","fields","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query"],"mappings":"AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,UAAP,MAAuB,mBAAvB;AAEA,MAAMC,kBAAkB,GAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CATA;;AAWA,MAAMC,yBAAyB,GAAGC,MAAM,IAAIJ,GAAI;AAChD;AACA;AACA,UAAUI,MAAO;AACjB;AACA;AACA,GANA;;AAQA,MAAMC,OAAO,GAAGC,SAAS,IAAIN,GAAI;AACjC;AACA;AACA;AACA,QAAQM,SAAU;AAClB;AACA;AACA,CAPA;;AASA,MAAMC,eAAe,GAAGP,GAAI;AAC5B;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;AAQA,MAAMM,qBAAqB,GAAGR,GAAI;AAClC;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;;AAQA,MAAMO,gBAAgB,GAAGC,SAAS,IAAIV,GAAI;AAC1C;AACA,mBAAmBU,SAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAZA;;AAcA,MAAMC,iBAAiB,GAAGC,WAAW,IAAI;AACvC,QAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhBC,EAAE,IAAK,GAAEA,EAAG,0BAAyBA,EAAG;AAC9C,cAAcb,kBAAmB;AACjC,QAJsB,EAMjBc,IANiB,CAMX,IANW,CAApB;AAOA,SAAOhB,GAAI;AACb;AACA,QAAQa,WAAY;AACpB,MAHE;AAID,CAZD;;AAcA,MAAMI,QAAQ,GAAGjB,GAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;AAUA,MAAMkB,WAAW,GAAGlB,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;;AAUA,MAAMmB,QAAQ,GAAGC,MAAM,IAAIpB,GAAI;AAC/B,MAAMoB,MAAO;AACb;AACA,CAHA;;AAKA,MAAMC,aAAa,GAAG,CAACD,MAAD,EAASE,KAAT,KAAoB;AAC1C;AACA;AACA;AACA;AACA,cAAcrB,UAAU,CAACmB,MAAD,CAAS;AACjC,MAAMA,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GAZA;;AAaA,MAAMC,sBAAsB,GAAG,CAACH,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACtD;AACA,MAAMoB,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GARA;;AAUA,MAAME,uBAAuB,GAAG,CAACJ,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACvD;AACA,kBAAkBoB,MAAO;AACzB,MAAME,KAAM;AACZ;AACA;AACA;AACA;AACA,GARA,C,CAUA;;;AACA,MAAMG,SAAS,GAAG,CAACL,MAAD,EAASE,KAAT,KAAmB;AACnC,QAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;AACA,SAAOtB,GAAI;AACb,MAAM0B,KAAM;AACZ,GAFE;AAGD,CALD;;AAOA,
|
|
1
|
+
{"version":3,"sources":["../../../src/application/query/index.js"],"names":["gql","upperFirst","defaultSchemaProps","getSearchPublishedContent","fields","getUser","userProps","getEntitySchema","getSingleEntitySchema","getRecordParents","queryName","getMultipleSchema","identifiers","queryString","map","id","join","getFiles","getFileById","getCount","action","generateQuery","props","generateMultiItemQuery","generateSingleItemQuery","getAction","query","getPublishedContent","entity"],"mappings":"AAAA,SAASA,GAAT,QAAoB,gBAApB;AACA,OAAOC,UAAP,MAAuB,mBAAvB;AAEA,MAAMC,kBAAkB,GAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CATA;;AAWA,MAAMC,yBAAyB,GAAGC,MAAM,IAAIJ,GAAI;AAChD;AACA;AACA,UAAUI,MAAO;AACjB;AACA;AACA,GANA;;AAQA,MAAMC,OAAO,GAAGC,SAAS,IAAIN,GAAI;AACjC;AACA;AACA;AACA,QAAQM,SAAU;AAClB;AACA;AACA,CAPA;;AASA,MAAMC,eAAe,GAAGP,GAAI;AAC5B;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;AAQA,MAAMM,qBAAqB,GAAGR,GAAI;AAClC;AACA;AACA,QAAQE,kBAAmB;AAC3B;AACA;AACA,CANA;;AAQA,MAAMO,gBAAgB,GAAGC,SAAS,IAAIV,GAAI;AAC1C;AACA,mBAAmBU,SAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAZA;;AAcA,MAAMC,iBAAiB,GAAGC,WAAW,IAAI;AACvC,QAAMC,WAAW,GAAGD,WAAW,CAC5BE,GADiB,CAEhBC,EAAE,IAAK,GAAEA,EAAG,0BAAyBA,EAAG;AAC9C,cAAcb,kBAAmB;AACjC,QAJsB,EAMjBc,IANiB,CAMX,IANW,CAApB;AAOA,SAAOhB,GAAI;AACb;AACA,QAAQa,WAAY;AACpB,MAHE;AAID,CAZD;;AAcA,MAAMI,QAAQ,GAAGjB,GAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;AAUA,MAAMkB,WAAW,GAAGlB,GAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CARA;;AAUA,MAAMmB,QAAQ,GAAGC,MAAM,IAAIpB,GAAI;AAC/B,MAAMoB,MAAO;AACb;AACA,CAHA;;AAKA,MAAMC,aAAa,GAAG,CAACD,MAAD,EAASE,KAAT,KAAoB;AAC1C;AACA;AACA;AACA;AACA,cAAcrB,UAAU,CAACmB,MAAD,CAAS;AACjC,MAAMA,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GAZA;;AAaA,MAAMC,sBAAsB,GAAG,CAACH,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACtD;AACA,MAAMoB,MAAO;AACb,QAAQE,KAAM;AACd;AACA;AACA;AACA;AACA,GARA;;AAUA,MAAME,uBAAuB,GAAG,CAACJ,MAAD,EAASE,KAAT,KAAmBtB,GAAI;AACvD;AACA,kBAAkBoB,MAAO;AACzB,MAAME,KAAM;AACZ;AACA;AACA;AACA;AACA,GARA,C,CAUA;;;AACA,MAAMG,SAAS,GAAG,CAACL,MAAD,EAASE,KAAT,KAAmB;AACnC,QAAMI,KAAK,GAAGL,aAAa,CAACD,MAAD,EAASE,KAAT,CAA3B;AACA,SAAOtB,GAAI;AACb,MAAM0B,KAAM;AACZ,GAFE;AAGD,CALD;;AAOA,MAAMC,mBAAmB,GAAGC,MAAM,IAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiBA,MAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CA1BA;;AA4BA,SACErB,eADF,EAEEC,qBAFF,EAGEiB,SAHF,EAIER,QAJF,EAKEC,WALF,EAMEK,sBANF,EAOEC,uBAPF,EAQEG,mBARF,EASExB,yBATF,EAUEgB,QAVF,EAWER,iBAXF,EAYEN,OAZF,EAaEI,gBAbF","sourcesContent":["import { gql } from '@apollo/client';\nimport upperFirst from 'lodash.upperfirst';\n\nconst defaultSchemaProps = `\n id\n identifier\n properties\n dynamicProperties\n actions\n interfaces\n relations\n __typename\n`;\n\nconst getSearchPublishedContent = fields => gql`\n query searchPublishedContent($rawQueryStringified: String!, $offset: Int, $limit: Int, $sort: String) {\n searchPublishedContent(rawQueryStringified: $rawQueryStringified, offset: $offset, limit: $limit, sort: $sort) {\n ${fields}\n }\n }\n `;\n\nconst getUser = userProps => gql`\n query getUser($id: String!) {\n getUser(id: $id) {\n id\n ${userProps}\n }\n }\n`;\n\nconst getEntitySchema = gql`\n query getEntitySchemas($identifier: String!) {\n getEntitySchemas(identifier: $identifier) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getSingleEntitySchema = gql`\n query getEntitySchema($id: String!) {\n getEntitySchema: getEntitySchema(id: $id) {\n ${defaultSchemaProps}\n }\n }\n`;\n\nconst getRecordParents = queryName => gql`\nquery getRecordParents($id: String!){\n recordParents: ${queryName}(id: $id){\n id,\n name,\n url,\n parents {\n id,\n name\n url\n }\n }\n}`;\n\nconst getMultipleSchema = identifiers => {\n const queryString = identifiers\n .map(\n id => `${id}: getEntitySchema(id: \"${id}\") {\n ${defaultSchemaProps}\n }`\n )\n .join(`\\n`);\n return gql`\n query {\n ${queryString}\n }`;\n};\n\nconst getFiles = gql`\n query getFiles($where: JSON!) {\n getFiles(where: $where) {\n id\n url\n data\n }\n }\n`;\n\nconst getFileById = gql`\n query getFile($id: String!) {\n getFile(id: $id) {\n id\n url\n data\n }\n }\n`;\n\nconst getCount = action => gql`query countData($where: JSON!) {\n ${action} (where: $where)\n }\n`;\n\nconst generateQuery = (action, props) => `\n query getEntityData(\n $where: JSON\n $limit: Int\n $offset: Int\n $sort: [${upperFirst(action)}SortItem]){\n ${action} (where: $where, limit: $limit, offset: $offset, sort: $sort){\n ${props}\n id\n __typename\n }\n }\n `;\nconst generateMultiItemQuery = (action, props) => gql`\n query getEntityData($where: JSON){\n ${action} (where: $where){\n ${props}\n id\n __typename\n }\n }\n `;\n\nconst generateSingleItemQuery = (action, props) => gql`\n query getEntityData($id: String!){\n entityData: ${action}(id: $id){\n ${props},\n id,\n __typename\n }\n }\n `;\n\n// TODO: extend function to handle properties and make them dynamic with a config schema for each entity.\nconst getAction = (action, props) => {\n const query = generateQuery(action, props);\n return gql`\n ${query}\n `;\n};\n\nconst getPublishedContent = entity => `\n query searchPublishedContent(\n $rawQueryStringified: String!\n $offset: Int\n $limit: Int\n $sort: String\n ) {\n searchPublishedContent(\n rawQueryStringified: $rawQueryStringified\n offset: $offset\n limit: $limit\n sort: $sort\n ) {\n results {\n ... on ${entity} {\n id\n name\n url\n __typename\n }\n __typename\n }\n total\n __typename\n }\n }\n`;\n\nexport {\n getEntitySchema,\n getSingleEntitySchema,\n getAction,\n getFiles,\n getFileById,\n generateMultiItemQuery,\n generateSingleItemQuery,\n getPublishedContent,\n getSearchPublishedContent,\n getCount,\n getMultipleSchema,\n getUser,\n getRecordParents\n};\n"],"file":"index.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
|
-
|
|
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: "
|
|
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
|
-
})))
|
|
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":";;AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,WAAP,MAAwB,qBAAxB;AACA,SAASC,MAAT,EAAiBC,OAAjB,QAAgC,gBAAhC;AACA,SAASC,oBAAT,QAAqC,aAArC;AACA,SAASC,MAAT,QAAuB,iBAAvB;;AAEA,MAAMC,IAAI,GAAG,
|
|
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"
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blaze-cms/react-page-builder",
|
|
3
|
-
"version": "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": "
|
|
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,
|
|
@@ -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="
|
|
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
|
-
|
|
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
|
|
|
@@ -0,0 +1,146 @@
|
|
|
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 = ({ searchInputAlignment, entityName, entityField }) => {
|
|
8
|
+
const [collapsed, setCollapsed] = useState(true);
|
|
9
|
+
const [searchTerm, setSearchTerm] = useState(null);
|
|
10
|
+
const router = useRouter();
|
|
11
|
+
|
|
12
|
+
let alignmentModifier = '';
|
|
13
|
+
|
|
14
|
+
if (searchInputAlignment && searchInputAlignment !== '') {
|
|
15
|
+
alignmentModifier = searchInputAlignment === 'left' ? 'left-6' : 'right-16';
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const rawQueryStringified = JSON.stringify({
|
|
19
|
+
size: 0,
|
|
20
|
+
query: {
|
|
21
|
+
bool: {
|
|
22
|
+
filter: {
|
|
23
|
+
bool: {
|
|
24
|
+
should: [
|
|
25
|
+
{
|
|
26
|
+
match: {
|
|
27
|
+
docType: entityField
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
minimum_should_match: 1
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const query = gql`
|
|
39
|
+
${getPublishedContent(entityName)}
|
|
40
|
+
`;
|
|
41
|
+
|
|
42
|
+
const { loading, error, data } = useQuery(query, {
|
|
43
|
+
variables: { rawQueryStringified, offset: 0, limit: 5 }
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
if (loading) return null;
|
|
47
|
+
if (error) return `Error! ${error}`;
|
|
48
|
+
|
|
49
|
+
const renderResults = () => {
|
|
50
|
+
// eslint-disable-next-line no-undef
|
|
51
|
+
const { results } = data?.searchPublishedContent;
|
|
52
|
+
|
|
53
|
+
const handleClick = (e, url) => {
|
|
54
|
+
e.preventDefault();
|
|
55
|
+
router.push(url);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
if (results && searchTerm && searchTerm !== '') {
|
|
59
|
+
return results.map(({ name, url }) => {
|
|
60
|
+
if (name.match(searchTerm)) {
|
|
61
|
+
return (
|
|
62
|
+
<a href={url} onClick={e => handleClick(e, url)}>
|
|
63
|
+
{name}
|
|
64
|
+
</a>
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return null;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return [];
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
return collapsed ? (
|
|
76
|
+
<div className={`absolute rounded-3xl overflow-auto top-3 ${alignmentModifier}`}>
|
|
77
|
+
<div className="w-11 mx-auto">
|
|
78
|
+
<label className="relative block">
|
|
79
|
+
<span className="absolute inset-y-0 right-3 flex items-center pl-2 cursor-pointer">
|
|
80
|
+
<svg className="h-5 w-5 fill-slate-300" viewBox="0 0 20 20">
|
|
81
|
+
<path
|
|
82
|
+
fillRule="evenodd"
|
|
83
|
+
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"
|
|
84
|
+
clipRule="evenodd"
|
|
85
|
+
/>
|
|
86
|
+
</svg>
|
|
87
|
+
</span>
|
|
88
|
+
<span className="sr-only">Search</span>
|
|
89
|
+
<input
|
|
90
|
+
onFocus={() => setCollapsed(false)}
|
|
91
|
+
onChange={e => setSearchTerm(e.target.value)}
|
|
92
|
+
type="text"
|
|
93
|
+
name="search"
|
|
94
|
+
value=""
|
|
95
|
+
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"
|
|
96
|
+
/>
|
|
97
|
+
</label>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
) : (
|
|
101
|
+
<>
|
|
102
|
+
<div className={`absolute overflow-auto top-3 ${alignmentModifier}`}>
|
|
103
|
+
<div className="w-96 mx-auto rounded-3xl">
|
|
104
|
+
<label className="relative block">
|
|
105
|
+
<span className="absolute inset-y-0 right-3 flex items-center pl-2">
|
|
106
|
+
<svg className="h-5 w-5 fill-slate-300" viewBox="0 0 20 20">
|
|
107
|
+
<path
|
|
108
|
+
fillRule="evenodd"
|
|
109
|
+
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"
|
|
110
|
+
clipRule="evenodd"
|
|
111
|
+
/>
|
|
112
|
+
</svg>
|
|
113
|
+
</span>
|
|
114
|
+
<span className="sr-only">Search</span>
|
|
115
|
+
<input
|
|
116
|
+
type="text"
|
|
117
|
+
name="search"
|
|
118
|
+
onChange={e => setSearchTerm(e.target.value)}
|
|
119
|
+
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"
|
|
120
|
+
placeholder="Search for anything..."
|
|
121
|
+
onBlur={() => setCollapsed(true)}
|
|
122
|
+
/>
|
|
123
|
+
</label>
|
|
124
|
+
</div>
|
|
125
|
+
<div className="bg-white ml-3 mr-3 relative">
|
|
126
|
+
<div>Search Results</div>
|
|
127
|
+
{data && renderResults()}
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</>
|
|
131
|
+
);
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
SearchContent.propTypes = {
|
|
135
|
+
searchInputAlignment: PropTypes.string,
|
|
136
|
+
entityName: PropTypes.string,
|
|
137
|
+
entityField: PropTypes.string
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
SearchContent.defaultProps = {
|
|
141
|
+
searchInputAlignment: '',
|
|
142
|
+
entityName: 'PublishedPage',
|
|
143
|
+
entityField: 'published_page'
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
export default SearchContent;
|
package/src/components/index.js
CHANGED
|
@@ -17,6 +17,9 @@ export default {
|
|
|
17
17
|
textblock: dynamic(() => import(/* webpackChunkName: "blazePbTextBlock" */ './TextBlock')),
|
|
18
18
|
video: dynamic(() => import(/* webpackChunkName: "blazePbVideo" */ './Video')),
|
|
19
19
|
wrapper: dynamic(() => import(/* webpackChunkName: "blazePbWrapper" */ './Wrapper')),
|
|
20
|
+
searchcontent: dynamic(() =>
|
|
21
|
+
import(/* webpackChunkName: "blazePbSearchFilter" */ './SearchContent')
|
|
22
|
+
),
|
|
20
23
|
searchfilter: dynamic(() =>
|
|
21
24
|
import(/* webpackChunkName: "blazePbSearchFilter" */ './SearchFilter')
|
|
22
25
|
),
|
|
@@ -37,6 +40,5 @@ export default {
|
|
|
37
40
|
),
|
|
38
41
|
passwordresetrequest: dynamic(() =>
|
|
39
42
|
import(/* webpackChunkName: "blazePbPasswordResetRequest" */ './PasswordResetRequest')
|
|
40
|
-
)
|
|
41
|
-
breadcrumb: dynamic(() => import(/* webpackChunkName: "blazePbBreadcrumb" */ './Breadcrumb'))
|
|
43
|
+
)
|
|
42
44
|
};
|
|
@@ -2,14 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`Menu component should render without throwing an error and match snapshot 1`] = `
|
|
4
4
|
<DocumentFragment>
|
|
5
|
-
<
|
|
6
|
-
class="menu-
|
|
5
|
+
<div
|
|
6
|
+
class="menu--desktop-wrapper"
|
|
7
7
|
>
|
|
8
|
-
<
|
|
9
|
-
class="
|
|
8
|
+
<ul
|
|
9
|
+
class="menu-mod"
|
|
10
10
|
>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
<div
|
|
12
|
+
class="child_1"
|
|
13
|
+
>
|
|
14
|
+
only child
|
|
15
|
+
</div>
|
|
16
|
+
</ul>
|
|
17
|
+
</div>
|
|
14
18
|
</DocumentFragment>
|
|
15
19
|
`;
|
|
@@ -6,10 +6,6 @@ Object {
|
|
|
6
6
|
"$$typeof": Symbol(react.forward_ref),
|
|
7
7
|
"render": [Function],
|
|
8
8
|
},
|
|
9
|
-
"breadcrumb": Object {
|
|
10
|
-
"$$typeof": Symbol(react.forward_ref),
|
|
11
|
-
"render": [Function],
|
|
12
|
-
},
|
|
13
9
|
"button": Object {
|
|
14
10
|
"$$typeof": Symbol(react.forward_ref),
|
|
15
11
|
"render": [Function],
|
|
@@ -74,6 +70,10 @@ Object {
|
|
|
74
70
|
"$$typeof": Symbol(react.forward_ref),
|
|
75
71
|
"render": [Function],
|
|
76
72
|
},
|
|
73
|
+
"searchcontent": Object {
|
|
74
|
+
"$$typeof": Symbol(react.forward_ref),
|
|
75
|
+
"render": [Function],
|
|
76
|
+
},
|
|
77
77
|
"searchfilter": Object {
|
|
78
78
|
"$$typeof": Symbol(react.forward_ref),
|
|
79
79
|
"render": [Function],
|