@blaze-cms/plugin-search-ui 0.110.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +345 -0
- package/LICENSE +674 -0
- package/README.md +45 -0
- package/babel.config.js +3 -0
- package/jest.config.js +5 -0
- package/lib/application/query/index.js +32 -0
- package/lib/application/query/index.js.map +1 -0
- package/lib/components/SearchAdmin/RecentSearches/RecentSearches.js +62 -0
- package/lib/components/SearchAdmin/RecentSearches/RecentSearches.js.map +1 -0
- package/lib/components/SearchAdmin/RecentSearches/index.js +16 -0
- package/lib/components/SearchAdmin/RecentSearches/index.js.map +1 -0
- package/lib/components/SearchAdmin/SearchAdmin.js +191 -0
- package/lib/components/SearchAdmin/SearchAdmin.js.map +1 -0
- package/lib/components/SearchAdmin/SearchBar/SearchBar.js +72 -0
- package/lib/components/SearchAdmin/SearchBar/SearchBar.js.map +1 -0
- package/lib/components/SearchAdmin/SearchBar/index.js +16 -0
- package/lib/components/SearchAdmin/SearchBar/index.js.map +1 -0
- package/lib/components/SearchAdmin/SearchResults/SearchResults.js +200 -0
- package/lib/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -0
- package/lib/components/SearchAdmin/SearchResults/index.js +16 -0
- package/lib/components/SearchAdmin/SearchResults/index.js.map +1 -0
- package/lib/components/SearchAdmin/TriggerModal/TriggerModal.js +30 -0
- package/lib/components/SearchAdmin/TriggerModal/TriggerModal.js.map +1 -0
- package/lib/components/SearchAdmin/TriggerModal/index.js +16 -0
- package/lib/components/SearchAdmin/TriggerModal/index.js.map +1 -0
- package/lib/components/SearchAdmin/index.js +16 -0
- package/lib/components/SearchAdmin/index.js.map +1 -0
- package/lib/components/SearchPublishedContent/SearchPublishedContent.js +216 -0
- package/lib/components/SearchPublishedContent/SearchPublishedContent.js.map +1 -0
- package/lib/components/SearchPublishedContent/index.js +16 -0
- package/lib/components/SearchPublishedContent/index.js.map +1 -0
- package/lib/components/useLocalStorage/index.js +16 -0
- package/lib/components/useLocalStorage/index.js.map +1 -0
- package/lib/components/useLocalStorage/useLocalStorage.js +36 -0
- package/lib/components/useLocalStorage/useLocalStorage.js.map +1 -0
- package/lib/components/useSearch/index.js +16 -0
- package/lib/components/useSearch/index.js.map +1 -0
- package/lib/components/useSearch/useSearch.js +154 -0
- package/lib/components/useSearch/useSearch.js.map +1 -0
- package/lib/components/useSearchResults/index.js +16 -0
- package/lib/components/useSearchResults/index.js.map +1 -0
- package/lib/components/useSearchResults/useSearchResults.js +102 -0
- package/lib/components/useSearchResults/useSearchResults.js.map +1 -0
- package/lib/constants.js +25 -0
- package/lib/constants.js.map +1 -0
- package/lib/index.js +34 -0
- package/lib/index.js.map +1 -0
- package/lib-es/application/query/index.js +34 -0
- package/lib-es/application/query/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/RecentSearches/RecentSearches.js +40 -0
- package/lib-es/components/SearchAdmin/RecentSearches/RecentSearches.js.map +1 -0
- package/lib-es/components/SearchAdmin/RecentSearches/index.js +3 -0
- package/lib-es/components/SearchAdmin/RecentSearches/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchAdmin.js +126 -0
- package/lib-es/components/SearchAdmin/SearchAdmin.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchBar/SearchBar.js +54 -0
- package/lib-es/components/SearchAdmin/SearchBar/SearchBar.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchBar/index.js +3 -0
- package/lib-es/components/SearchAdmin/SearchBar/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js +120 -0
- package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -0
- package/lib-es/components/SearchAdmin/SearchResults/index.js +3 -0
- package/lib-es/components/SearchAdmin/SearchResults/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/TriggerModal/TriggerModal.js +16 -0
- package/lib-es/components/SearchAdmin/TriggerModal/TriggerModal.js.map +1 -0
- package/lib-es/components/SearchAdmin/TriggerModal/index.js +3 -0
- package/lib-es/components/SearchAdmin/TriggerModal/index.js.map +1 -0
- package/lib-es/components/SearchAdmin/index.js +3 -0
- package/lib-es/components/SearchAdmin/index.js.map +1 -0
- package/lib-es/components/SearchPublishedContent/SearchPublishedContent.js +157 -0
- package/lib-es/components/SearchPublishedContent/SearchPublishedContent.js.map +1 -0
- package/lib-es/components/SearchPublishedContent/index.js +3 -0
- package/lib-es/components/SearchPublishedContent/index.js.map +1 -0
- package/lib-es/components/useLocalStorage/index.js +3 -0
- package/lib-es/components/useLocalStorage/index.js.map +1 -0
- package/lib-es/components/useLocalStorage/useLocalStorage.js +19 -0
- package/lib-es/components/useLocalStorage/useLocalStorage.js.map +1 -0
- package/lib-es/components/useSearch/index.js +3 -0
- package/lib-es/components/useSearch/index.js.map +1 -0
- package/lib-es/components/useSearch/useSearch.js +100 -0
- package/lib-es/components/useSearch/useSearch.js.map +1 -0
- package/lib-es/components/useSearchResults/index.js +3 -0
- package/lib-es/components/useSearchResults/index.js.map +1 -0
- package/lib-es/components/useSearchResults/useSearchResults.js +57 -0
- package/lib-es/components/useSearchResults/useSearchResults.js.map +1 -0
- package/lib-es/constants.js +10 -0
- package/lib-es/constants.js.map +1 -0
- package/lib-es/index.js +5 -0
- package/lib-es/index.js.map +1 -0
- package/package.json +56 -0
- package/src/application/query/index.js +28 -0
- package/src/components/SearchAdmin/RecentSearches/RecentSearches.js +33 -0
- package/src/components/SearchAdmin/RecentSearches/index.js +3 -0
- package/src/components/SearchAdmin/SearchAdmin.js +129 -0
- package/src/components/SearchAdmin/SearchBar/SearchBar.js +58 -0
- package/src/components/SearchAdmin/SearchBar/index.js +3 -0
- package/src/components/SearchAdmin/SearchResults/SearchResults.js +112 -0
- package/src/components/SearchAdmin/SearchResults/index.js +3 -0
- package/src/components/SearchAdmin/TriggerModal/TriggerModal.js +17 -0
- package/src/components/SearchAdmin/TriggerModal/index.js +3 -0
- package/src/components/SearchAdmin/index.js +3 -0
- package/src/components/SearchPublishedContent/SearchPublishedContent.js +157 -0
- package/src/components/SearchPublishedContent/index.js +3 -0
- package/src/components/useLocalStorage/index.js +3 -0
- package/src/components/useLocalStorage/useLocalStorage.js +18 -0
- package/src/components/useSearch/index.js +3 -0
- package/src/components/useSearch/useSearch.js +85 -0
- package/src/components/useSearchResults/index.js +3 -0
- package/src/components/useSearchResults/useSearchResults.js +38 -0
- package/src/constants.js +19 -0
- package/src/index.js +5 -0
package/README.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Base search plugin ui
|
|
2
|
+
|
|
3
|
+
This plugin is creating a modal interface for blaze admin and also a searchbar (for client-side) boat are consuming an ELK (Elastic search) API to be able to find any field in the content already created.
|
|
4
|
+
|
|
5
|
+
## Query
|
|
6
|
+
|
|
7
|
+
To do that we are passing to the SearchAdmin query an speciall variable rawQuery (same with search published content query). This raw query is an ELK query composed by the following fields:
|
|
8
|
+
|
|
9
|
+
- query: Returns documents based on a provided query string, using a parser with a strict syntax.
|
|
10
|
+
- fields: Allow you to find in multiple fields. In our case there are not anyone set.
|
|
11
|
+
- minimum_should_match: That matches documents with at least two of the terms that are set in query. Imagine that you have set in query 'this, that or thus' then will match if there are at least of two of this words.
|
|
12
|
+
- type: 'cross_fields': The cross_fields type is particularly useful with structured documents where multiple fields should match. For instance, when querying the first_name and last_name fields for “Will Smith”, the best match is likely to have “Will” in one field and “Smith” in the other.
|
|
13
|
+
|
|
14
|
+
Also at the end of te query value we added a wildcard in order to do a partial matches. For example if I would like to search all the names that contains da, the results could be adam, david because is matching partially with those names.
|
|
15
|
+
|
|
16
|
+
```js
|
|
17
|
+
rawQuery: {
|
|
18
|
+
query_string: {
|
|
19
|
+
query: <value>*,
|
|
20
|
+
fields: [],
|
|
21
|
+
minimum_should_match: 2,
|
|
22
|
+
type: 'cross_fields'
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Filter
|
|
28
|
+
|
|
29
|
+
We have added a filter in order to be able to filter among which entities (pages, articles...) would you like to focus your search. To do that we are accepting the filter variable into te query which has the following format:
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
{
|
|
33
|
+
filter: [
|
|
34
|
+
{
|
|
35
|
+
terms: {
|
|
36
|
+
docType: filter
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Advanced seaches
|
|
44
|
+
|
|
45
|
+
Imagine that you know in which field is the value that you would like to search. For example in a metakeyword field. Then you could add to the query the following value: `metakeyword:myKeyword` just to search in every field `metakeyword` the value `myKeyword`.
|
package/babel.config.js
ADDED
package/jest.config.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
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
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
+
|
|
14
|
+
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
15
|
+
|
|
16
|
+
var _templateObject, _templateObject2;
|
|
17
|
+
|
|
18
|
+
var SEARCH_ADMIN = function SEARCH_ADMIN() {
|
|
19
|
+
return (0, _graphqlTag["default"])(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n query searchAdmin($limit: Int, $offset: Int, $sort: String, $rawQuery: JSON!) {\n search: searchAdmin(limit: $limit, offset: $offset, sort: $sort, rawQuery: $rawQuery) {\n jsonResults\n total\n }\n }\n"])));
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
var SEARCH_PUBLISHED = function SEARCH_PUBLISHED(_ref) {
|
|
23
|
+
var resultKeys = _ref.resultKeys;
|
|
24
|
+
return (0, _graphqlTag["default"])(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n query searchPublishedContent($limit: Int, $offset: Int, $sort: String, $rawQuery: JSON!) {\n search: searchPublishedContent(\n limit: $limit\n offset: $offset\n sort: $sort\n rawQuery: $rawQuery\n ) {\n results {\n ", "\n }\n total\n }\n }\n"])), resultKeys);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
var _default = {
|
|
28
|
+
SEARCH_ADMIN: SEARCH_ADMIN,
|
|
29
|
+
SEARCH_PUBLISHED: SEARCH_PUBLISHED
|
|
30
|
+
};
|
|
31
|
+
exports["default"] = _default;
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/application/query/index.js"],"names":["SEARCH_ADMIN","gql","SEARCH_PUBLISHED","resultKeys"],"mappings":";;;;;;;;;;;;;AAAA;;;;AAEA,IAAMA,YAAY,GAAG,SAAfA,YAAe;AAAA,aAAMC,sBAAN;AAAA,CAArB;;AASA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,MAAGC,UAAH,QAAGA,UAAH;AAAA,aAAoBF,sBAApB,mYASfE,UATe;AAAA,CAAzB;;eAgBe;AAAEH,EAAAA,YAAY,EAAZA,YAAF;AAAgBE,EAAAA,gBAAgB,EAAhBA;AAAhB,C","sourcesContent":["import gql from 'graphql-tag';\n\nconst SEARCH_ADMIN = () => gql`\n query searchAdmin($limit: Int, $offset: Int, $sort: String, $rawQuery: JSON!) {\n search: searchAdmin(limit: $limit, offset: $offset, sort: $sort, rawQuery: $rawQuery) {\n jsonResults\n total\n }\n }\n`;\n\nconst SEARCH_PUBLISHED = ({ resultKeys }) => gql`\n query searchPublishedContent($limit: Int, $offset: Int, $sort: String, $rawQuery: JSON!) {\n search: searchPublishedContent(\n limit: $limit\n offset: $offset\n sort: $sort\n rawQuery: $rawQuery\n ) {\n results {\n ${resultKeys}\n }\n total\n }\n }\n`;\n\nexport default { SEARCH_ADMIN, SEARCH_PUBLISHED };\n"],"file":"index.js"}
|
|
@@ -0,0 +1,62 @@
|
|
|
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.regexp.exec.js");
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/es.string.search.js");
|
|
15
|
+
|
|
16
|
+
require("core-js/modules/es.array.map.js");
|
|
17
|
+
|
|
18
|
+
var _react = _interopRequireDefault(require("react"));
|
|
19
|
+
|
|
20
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
21
|
+
|
|
22
|
+
var RecentSearches = function RecentSearches(_ref) {
|
|
23
|
+
var recentSearches = _ref.recentSearches,
|
|
24
|
+
handleSearchTerm = _ref.handleSearchTerm,
|
|
25
|
+
search = _ref.search;
|
|
26
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
27
|
+
className: "list list--search"
|
|
28
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
29
|
+
className: "header header--list"
|
|
30
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", null, "Recent searches")), recentSearches.map(function (searchedTerm) {
|
|
31
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
32
|
+
key: searchedTerm,
|
|
33
|
+
role: "button",
|
|
34
|
+
className: "list__item list__item--search",
|
|
35
|
+
onClick: function onClick() {
|
|
36
|
+
handleSearchTerm({
|
|
37
|
+
target: {
|
|
38
|
+
value: searchedTerm
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
search({
|
|
42
|
+
value: searchedTerm
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
46
|
+
className: "list__item-row list__item-row--search"
|
|
47
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
48
|
+
className: "material-icons"
|
|
49
|
+
}, "search"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
50
|
+
className: "list__item-text list__item-text--search"
|
|
51
|
+
}, searchedTerm)));
|
|
52
|
+
}));
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
RecentSearches.propTypes = {
|
|
56
|
+
recentSearches: _propTypes["default"].array.isRequired,
|
|
57
|
+
handleSearchTerm: _propTypes["default"].func.isRequired,
|
|
58
|
+
search: _propTypes["default"].func.isRequired
|
|
59
|
+
};
|
|
60
|
+
var _default = RecentSearches;
|
|
61
|
+
exports["default"] = _default;
|
|
62
|
+
//# sourceMappingURL=RecentSearches.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SearchAdmin/RecentSearches/RecentSearches.js"],"names":["RecentSearches","recentSearches","handleSearchTerm","search","map","searchedTerm","target","value","propTypes","PropTypes","array","isRequired","func"],"mappings":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB;AAAA,MAAGC,cAAH,QAAGA,cAAH;AAAA,MAAmBC,gBAAnB,QAAmBA,gBAAnB;AAAA,MAAqCC,MAArC,QAAqCA,MAArC;AAAA,sBACrB;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,8DADF,CADF,EAIGF,cAAc,CAACG,GAAf,CAAmB,UAAAC,YAAY;AAAA,wBAC9B;AACE,MAAA,GAAG,EAAEA,YADP;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,MAAA,SAAS,EAAC,+BAHZ;AAIE,MAAA,OAAO,EAAE,mBAAM;AACbH,QAAAA,gBAAgB,CAAC;AAAEI,UAAAA,MAAM,EAAE;AAAEC,YAAAA,KAAK,EAAEF;AAAT;AAAV,SAAD,CAAhB;AACAF,QAAAA,MAAM,CAAC;AAAEI,UAAAA,KAAK,EAAEF;AAAT,SAAD,CAAN;AACD;AAPH,oBAQE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAG,MAAA,SAAS,EAAC;AAAb,gBADF,eAEE;AAAK,MAAA,SAAS,EAAC;AAAf,OAA0DA,YAA1D,CAFF,CARF,CAD8B;AAAA,GAA/B,CAJH,CADqB;AAAA,CAAvB;;AAuBAL,cAAc,CAACQ,SAAf,GAA2B;AACzBP,EAAAA,cAAc,EAAEQ,sBAAUC,KAAV,CAAgBC,UADP;AAEzBT,EAAAA,gBAAgB,EAAEO,sBAAUG,IAAV,CAAeD,UAFR;AAGzBR,EAAAA,MAAM,EAAEM,sBAAUG,IAAV,CAAeD;AAHE,CAA3B;eAMeX,c","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst RecentSearches = ({ recentSearches, handleSearchTerm, search }) => (\n <div className=\"list list--search\">\n <div className=\"header header--list\">\n <h2>Recent searches</h2>\n </div>\n {recentSearches.map(searchedTerm => (\n <div\n key={searchedTerm}\n role=\"button\"\n className=\"list__item list__item--search\"\n onClick={() => {\n handleSearchTerm({ target: { value: searchedTerm } });\n search({ value: searchedTerm });\n }}>\n <div className=\"list__item-row list__item-row--search\">\n <i className=\"material-icons\">search</i>\n <div className=\"list__item-text list__item-text--search\">{searchedTerm}</div>\n </div>\n </div>\n ))}\n </div>\n);\n\nRecentSearches.propTypes = {\n recentSearches: PropTypes.array.isRequired,\n handleSearchTerm: PropTypes.func.isRequired,\n search: PropTypes.func.isRequired\n};\n\nexport default RecentSearches;\n"],"file":"RecentSearches.js"}
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
var _RecentSearches = _interopRequireDefault(require("./RecentSearches"));
|
|
13
|
+
|
|
14
|
+
var _default = _RecentSearches["default"];
|
|
15
|
+
exports["default"] = _default;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SearchAdmin/RecentSearches/index.js"],"names":["RecentSearches"],"mappings":";;;;;;;;;;;AAAA;;eAEeA,0B","sourcesContent":["import RecentSearches from './RecentSearches';\n\nexport default RecentSearches;\n"],"file":"index.js"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.iterator.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/es.object.to-string.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/es.string.iterator.js");
|
|
8
|
+
|
|
9
|
+
require("core-js/modules/es.weak-map.js");
|
|
10
|
+
|
|
11
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
12
|
+
|
|
13
|
+
require("core-js/modules/es.object.define-property.js");
|
|
14
|
+
|
|
15
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
16
|
+
|
|
17
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
18
|
+
|
|
19
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
20
|
+
|
|
21
|
+
Object.defineProperty(exports, "__esModule", {
|
|
22
|
+
value: true
|
|
23
|
+
});
|
|
24
|
+
exports["default"] = void 0;
|
|
25
|
+
|
|
26
|
+
require("core-js/modules/es.array.slice.js");
|
|
27
|
+
|
|
28
|
+
require("core-js/modules/es.array.includes.js");
|
|
29
|
+
|
|
30
|
+
require("core-js/modules/es.string.includes.js");
|
|
31
|
+
|
|
32
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
33
|
+
|
|
34
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
35
|
+
|
|
36
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
37
|
+
|
|
38
|
+
var _useLocalStorage3 = _interopRequireDefault(require("../useLocalStorage"));
|
|
39
|
+
|
|
40
|
+
var _SearchBar = _interopRequireDefault(require("./SearchBar"));
|
|
41
|
+
|
|
42
|
+
var _RecentSearches = _interopRequireDefault(require("./RecentSearches"));
|
|
43
|
+
|
|
44
|
+
var _SearchResults = _interopRequireDefault(require("./SearchResults"));
|
|
45
|
+
|
|
46
|
+
var _TriggerModal = _interopRequireDefault(require("./TriggerModal"));
|
|
47
|
+
|
|
48
|
+
var _useSearchResults3 = _interopRequireDefault(require("../useSearchResults"));
|
|
49
|
+
|
|
50
|
+
var _constants = require("../../constants");
|
|
51
|
+
|
|
52
|
+
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); }
|
|
53
|
+
|
|
54
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
55
|
+
|
|
56
|
+
var SearchAdmin = function SearchAdmin() {
|
|
57
|
+
var _useState = (0, _react.useState)(''),
|
|
58
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
59
|
+
searchTerm = _useState2[0],
|
|
60
|
+
setSearchTerm = _useState2[1];
|
|
61
|
+
|
|
62
|
+
var _useLocalStorage = (0, _useLocalStorage3["default"])('recentSearches', []),
|
|
63
|
+
_useLocalStorage2 = (0, _slicedToArray2["default"])(_useLocalStorage, 2),
|
|
64
|
+
recentSearches = _useLocalStorage2[0],
|
|
65
|
+
setRecentSearches = _useLocalStorage2[1];
|
|
66
|
+
|
|
67
|
+
var _useState3 = (0, _react.useState)(false),
|
|
68
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
69
|
+
displaySearchModalFrame = _useState4[0],
|
|
70
|
+
setDisplaySearchModalFrame = _useState4[1];
|
|
71
|
+
|
|
72
|
+
var _useState5 = (0, _react.useState)(true),
|
|
73
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
74
|
+
enableResults = _useState6[0],
|
|
75
|
+
setEnableResults = _useState6[1];
|
|
76
|
+
|
|
77
|
+
var searchInputRef = (0, _react.useRef)(null);
|
|
78
|
+
|
|
79
|
+
var _useSearchResults = (0, _useSearchResults3["default"])({
|
|
80
|
+
queryKey: _constants.SEARCH_ADMIN
|
|
81
|
+
}),
|
|
82
|
+
_useSearchResults2 = (0, _slicedToArray2["default"])(_useSearchResults, 2),
|
|
83
|
+
_useSearchResults2$ = _useSearchResults2[0],
|
|
84
|
+
loading = _useSearchResults2$.loading,
|
|
85
|
+
results = _useSearchResults2$.results,
|
|
86
|
+
total = _useSearchResults2$.total,
|
|
87
|
+
setQueryParams = _useSearchResults2[1];
|
|
88
|
+
|
|
89
|
+
(0, _react.useEffect)(function () {
|
|
90
|
+
if (searchInputRef && searchInputRef.current) {
|
|
91
|
+
searchInputRef.current.focus();
|
|
92
|
+
}
|
|
93
|
+
}, [displaySearchModalFrame]);
|
|
94
|
+
|
|
95
|
+
var handleSearchTerm = function handleSearchTerm(_ref) {
|
|
96
|
+
var value = _ref.target.value;
|
|
97
|
+
setSearchTerm(value);
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
var toggleSearchModal = function toggleSearchModal() {
|
|
101
|
+
setSearchTerm(null);
|
|
102
|
+
setEnableResults(false);
|
|
103
|
+
setDisplaySearchModalFrame(!displaySearchModalFrame);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
var _search = function search(_ref2) {
|
|
107
|
+
var value = _ref2.value;
|
|
108
|
+
if (!value) return;
|
|
109
|
+
!enableResults && setEnableResults(true);
|
|
110
|
+
var MAX_RECENT_SEARCHES = 5;
|
|
111
|
+
var recentSearchesCopy = recentSearches.slice();
|
|
112
|
+
|
|
113
|
+
if (!recentSearchesCopy.includes(value)) {
|
|
114
|
+
recentSearchesCopy.push(value);
|
|
115
|
+
|
|
116
|
+
if (recentSearchesCopy.length > MAX_RECENT_SEARCHES) {
|
|
117
|
+
recentSearchesCopy.shift();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
setRecentSearches(recentSearchesCopy);
|
|
122
|
+
setQueryParams({
|
|
123
|
+
value: value
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
var handleKeyDown = function handleKeyDown(_ref3) {
|
|
128
|
+
var key = _ref3.key;
|
|
129
|
+
|
|
130
|
+
if (key === 'Enter') {
|
|
131
|
+
if (!searchTerm) return clear();
|
|
132
|
+
|
|
133
|
+
_search({
|
|
134
|
+
value: searchTerm
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
var clear = function clear() {
|
|
140
|
+
setSearchTerm('');
|
|
141
|
+
setEnableResults(false);
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
var searchModalResultsClassName = (0, _classnames["default"])('modal modal--full-screen modal--search', {
|
|
145
|
+
'modal--show': displaySearchModalFrame
|
|
146
|
+
});
|
|
147
|
+
var isEmptySearchTermAndData = !searchTerm && !results.length;
|
|
148
|
+
var isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;
|
|
149
|
+
var shouldDisplayRecentSearches = isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;
|
|
150
|
+
var showResults = enableResults && results.length;
|
|
151
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
152
|
+
className: "search search--header"
|
|
153
|
+
}, /*#__PURE__*/_react["default"].createElement(_TriggerModal["default"], {
|
|
154
|
+
toggleSearchModal: toggleSearchModal
|
|
155
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
156
|
+
className: searchModalResultsClassName
|
|
157
|
+
}, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
158
|
+
className: "modal__header modal__header--search"
|
|
159
|
+
}, /*#__PURE__*/_react["default"].createElement(_SearchBar["default"], {
|
|
160
|
+
toggleSearchModal: toggleSearchModal,
|
|
161
|
+
handleKeyDown: handleKeyDown,
|
|
162
|
+
searchInputRef: searchInputRef,
|
|
163
|
+
handleSearchTerm: handleSearchTerm,
|
|
164
|
+
searchTerm: searchTerm,
|
|
165
|
+
search: function search() {
|
|
166
|
+
return _search({
|
|
167
|
+
value: searchTerm
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
})), shouldDisplayRecentSearches ? /*#__PURE__*/_react["default"].createElement(_RecentSearches["default"], {
|
|
171
|
+
recentSearches: recentSearches,
|
|
172
|
+
handleSearchTerm: handleSearchTerm,
|
|
173
|
+
search: _search
|
|
174
|
+
}) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !showResults && /*#__PURE__*/_react["default"].createElement("div", {
|
|
175
|
+
className: "list list--search"
|
|
176
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
177
|
+
className: "header header--list"
|
|
178
|
+
}, /*#__PURE__*/_react["default"].createElement("h2", null, "No Results")))), showResults && /*#__PURE__*/_react["default"].createElement(_SearchResults["default"], {
|
|
179
|
+
currentValue: searchTerm,
|
|
180
|
+
searchTerm: searchTerm,
|
|
181
|
+
loading: loading,
|
|
182
|
+
results: results,
|
|
183
|
+
total: total,
|
|
184
|
+
setQueryParams: setQueryParams,
|
|
185
|
+
closeModal: toggleSearchModal
|
|
186
|
+
}))));
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
var _default = SearchAdmin;
|
|
190
|
+
exports["default"] = _default;
|
|
191
|
+
//# sourceMappingURL=SearchAdmin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/SearchAdmin/SearchAdmin.js"],"names":["SearchAdmin","searchTerm","setSearchTerm","recentSearches","setRecentSearches","displaySearchModalFrame","setDisplaySearchModalFrame","enableResults","setEnableResults","searchInputRef","queryKey","SEARCH_ADMIN","loading","results","total","setQueryParams","current","focus","handleSearchTerm","value","target","toggleSearchModal","search","MAX_RECENT_SEARCHES","recentSearchesCopy","slice","includes","push","length","shift","handleKeyDown","key","clear","searchModalResultsClassName","isEmptySearchTermAndData","isEmptySearchTermnAndDisabledResults","shouldDisplayRecentSearches","showResults"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,WAAW,GAAG,SAAdA,WAAc,GAAM;AACxB,kBAAoC,qBAAS,EAAT,CAApC;AAAA;AAAA,MAAOC,UAAP;AAAA,MAAmBC,aAAnB;;AACA,yBAA4C,kCAAgB,gBAAhB,EAAkC,EAAlC,CAA5C;AAAA;AAAA,MAAOC,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,mBAA8D,qBAAS,KAAT,CAA9D;AAAA;AAAA,MAAOC,uBAAP;AAAA,MAAgCC,0BAAhC;;AACA,mBAA0C,qBAAS,IAAT,CAA1C;AAAA;AAAA,MAAOC,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,MAAMC,cAAc,GAAG,mBAAO,IAAP,CAAvB;;AACA,0BAAsD,mCAAiB;AACrEC,IAAAA,QAAQ,EAAEC;AAD2D,GAAjB,CAAtD;AAAA;AAAA;AAAA,MAASC,OAAT,uBAASA,OAAT;AAAA,MAAkBC,OAAlB,uBAAkBA,OAAlB;AAAA,MAA2BC,KAA3B,uBAA2BA,KAA3B;AAAA,MAAoCC,cAApC;;AAIA,wBACE,YAAM;AACJ,QAAIN,cAAc,IAAIA,cAAc,CAACO,OAArC,EAA8C;AAC5CP,MAAAA,cAAc,CAACO,OAAf,CAAuBC,KAAvB;AACD;AACF,GALH,EAME,CAACZ,uBAAD,CANF;;AASA,MAAMa,gBAAgB,GAAG,SAAnBA,gBAAmB,OAA2B;AAAA,QAAdC,KAAc,QAAxBC,MAAwB,CAAdD,KAAc;AAClDjB,IAAAA,aAAa,CAACiB,KAAD,CAAb;AACD,GAFD;;AAGA,MAAME,iBAAiB,GAAG,SAApBA,iBAAoB,GAAM;AAC9BnB,IAAAA,aAAa,CAAC,IAAD,CAAb;AACAM,IAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACAF,IAAAA,0BAA0B,CAAC,CAACD,uBAAF,CAA1B;AACD,GAJD;;AAKA,MAAMiB,OAAM,GAAG,SAATA,MAAS,QAAe;AAAA,QAAZH,KAAY,SAAZA,KAAY;AAC5B,QAAI,CAACA,KAAL,EAAY;AACZ,KAACZ,aAAD,IAAkBC,gBAAgB,CAAC,IAAD,CAAlC;AACA,QAAMe,mBAAmB,GAAG,CAA5B;AACA,QAAMC,kBAAkB,GAAGrB,cAAc,CAACsB,KAAf,EAA3B;;AAEA,QAAI,CAACD,kBAAkB,CAACE,QAAnB,CAA4BP,KAA5B,CAAL,EAAyC;AACvCK,MAAAA,kBAAkB,CAACG,IAAnB,CAAwBR,KAAxB;;AACA,UAAIK,kBAAkB,CAACI,MAAnB,GAA4BL,mBAAhC,EAAqD;AACnDC,QAAAA,kBAAkB,CAACK,KAAnB;AACD;AACF;;AAEDzB,IAAAA,iBAAiB,CAACoB,kBAAD,CAAjB;AACAT,IAAAA,cAAc,CAAC;AAAEI,MAAAA,KAAK,EAALA;AAAF,KAAD,CAAd;AACD,GAfD;;AAiBA,MAAMW,aAAa,GAAG,SAAhBA,aAAgB,QAAa;AAAA,QAAVC,GAAU,SAAVA,GAAU;;AACjC,QAAIA,GAAG,KAAK,OAAZ,EAAqB;AACnB,UAAI,CAAC9B,UAAL,EAAiB,OAAO+B,KAAK,EAAZ;;AACjBV,MAAAA,OAAM,CAAC;AAAEH,QAAAA,KAAK,EAAElB;AAAT,OAAD,CAAN;AACD;AACF,GALD;;AAOA,MAAM+B,KAAK,GAAG,SAARA,KAAQ,GAAM;AAClB9B,IAAAA,aAAa,CAAC,EAAD,CAAb;AACAM,IAAAA,gBAAgB,CAAC,KAAD,CAAhB;AACD,GAHD;;AAKA,MAAMyB,2BAA2B,GAAG,4BAAW,wCAAX,EAAqD;AACvF,mBAAe5B;AADwE,GAArD,CAApC;AAIA,MAAM6B,wBAAwB,GAAG,CAACjC,UAAD,IAAe,CAACY,OAAO,CAACe,MAAzD;AACA,MAAMO,oCAAoC,GAAG,CAAClC,UAAD,IAAe,CAACM,aAA7D;AACA,MAAM6B,2BAA2B,GAC/BF,wBAAwB,IAAIC,oCAD9B;AAGA,MAAME,WAAW,GAAG9B,aAAa,IAAIM,OAAO,CAACe,MAA7C;AAEA,sBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,gCAAC,wBAAD;AAAc,IAAA,iBAAiB,EAAEP;AAAjC,IADF,eAEE;AAAK,IAAA,SAAS,EAAEY;AAAhB,KACG5B,uBAAuB,iBACtB,+EACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,gCAAC,qBAAD;AACE,IAAA,iBAAiB,EAAEgB,iBADrB;AAEE,IAAA,aAAa,EAAES,aAFjB;AAGE,IAAA,cAAc,EAAErB,cAHlB;AAIE,IAAA,gBAAgB,EAAES,gBAJpB;AAKE,IAAA,UAAU,EAAEjB,UALd;AAME,IAAA,MAAM,EAAE;AAAA,aAAMqB,OAAM,CAAC;AAAEH,QAAAA,KAAK,EAAElB;AAAT,OAAD,CAAZ;AAAA;AANV,IADF,CADF,EAWGmC,2BAA2B,gBAC1B,gCAAC,0BAAD;AACE,IAAA,cAAc,EAAEjC,cADlB;AAEE,IAAA,gBAAgB,EAAEe,gBAFpB;AAGE,IAAA,MAAM,EAAEI;AAHV,IAD0B,gBAO1B,kEACG,CAACe,WAAD,iBACC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE,yDADF,CADF,CAFJ,CAlBJ,EA4BGA,WAAW,iBACV,gCAAC,yBAAD;AACE,IAAA,YAAY,EAAEpC,UADhB;AAEE,IAAA,UAAU,EAAEA,UAFd;AAGE,IAAA,OAAO,EAAEW,OAHX;AAIE,IAAA,OAAO,EAAEC,OAJX;AAKE,IAAA,KAAK,EAAEC,KALT;AAME,IAAA,cAAc,EAAEC,cANlB;AAOE,IAAA,UAAU,EAAEM;AAPd,IA7BJ,CAFJ,CAFF,CADF;AAiDD,CApHD;;eAsHerB,W","sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport classnames from 'classnames';\nimport useLocalStorage from '../useLocalStorage';\nimport SearchBar from './SearchBar';\nimport RecentSearches from './RecentSearches';\nimport SearchResults from './SearchResults';\nimport TriggerModal from './TriggerModal';\nimport useSearchResults from '../useSearchResults';\nimport { SEARCH_ADMIN } from '../../constants';\n\nconst SearchAdmin = () => {\n const [searchTerm, setSearchTerm] = useState('');\n const [recentSearches, setRecentSearches] = useLocalStorage('recentSearches', []);\n const [displaySearchModalFrame, setDisplaySearchModalFrame] = useState(false);\n const [enableResults, setEnableResults] = useState(true);\n const searchInputRef = useRef(null);\n const [{ loading, results, total }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_ADMIN\n });\n\n useEffect(\n () => {\n if (searchInputRef && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n },\n [displaySearchModalFrame]\n );\n\n const handleSearchTerm = ({ target: { value } }) => {\n setSearchTerm(value);\n };\n const toggleSearchModal = () => {\n setSearchTerm(null);\n setEnableResults(false);\n setDisplaySearchModalFrame(!displaySearchModalFrame);\n };\n const search = ({ value }) => {\n if (!value) return;\n !enableResults && setEnableResults(true);\n const MAX_RECENT_SEARCHES = 5;\n const recentSearchesCopy = recentSearches.slice();\n\n if (!recentSearchesCopy.includes(value)) {\n recentSearchesCopy.push(value);\n if (recentSearchesCopy.length > MAX_RECENT_SEARCHES) {\n recentSearchesCopy.shift();\n }\n }\n\n setRecentSearches(recentSearchesCopy);\n setQueryParams({ value });\n };\n\n const handleKeyDown = ({ key }) => {\n if (key === 'Enter') {\n if (!searchTerm) return clear();\n search({ value: searchTerm });\n }\n };\n\n const clear = () => {\n setSearchTerm('');\n setEnableResults(false);\n };\n\n const searchModalResultsClassName = classnames('modal modal--full-screen modal--search', {\n 'modal--show': displaySearchModalFrame\n });\n\n const isEmptySearchTermAndData = !searchTerm && !results.length;\n const isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;\n const shouldDisplayRecentSearches =\n isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;\n\n const showResults = enableResults && results.length;\n\n return (\n <div className=\"search search--header\">\n <TriggerModal toggleSearchModal={toggleSearchModal} />\n <div className={searchModalResultsClassName}>\n {displaySearchModalFrame && (\n <>\n <div className=\"modal__header modal__header--search\">\n <SearchBar\n toggleSearchModal={toggleSearchModal}\n handleKeyDown={handleKeyDown}\n searchInputRef={searchInputRef}\n handleSearchTerm={handleSearchTerm}\n searchTerm={searchTerm}\n search={() => search({ value: searchTerm })}\n />\n </div>\n {shouldDisplayRecentSearches ? (\n <RecentSearches\n recentSearches={recentSearches}\n handleSearchTerm={handleSearchTerm}\n search={search}\n />\n ) : (\n <>\n {!showResults && (\n <div className=\"list list--search\">\n <div className=\"header header--list\">\n <h2>No Results</h2>\n </div>\n </div>\n )}\n </>\n )}\n {showResults && (\n <SearchResults\n currentValue={searchTerm}\n searchTerm={searchTerm}\n loading={loading}\n results={results}\n total={total}\n setQueryParams={setQueryParams}\n closeModal={toggleSearchModal}\n />\n )}\n </>\n )}\n </div>\n </div>\n );\n};\n\nexport default SearchAdmin;\n"],"file":"SearchAdmin.js"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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.regexp.exec.js");
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/es.string.search.js");
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireDefault(require("react"));
|
|
17
|
+
|
|
18
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
19
|
+
|
|
20
|
+
var SearchBar = function SearchBar(_ref) {
|
|
21
|
+
var handleKeyDown = _ref.handleKeyDown,
|
|
22
|
+
searchInputRef = _ref.searchInputRef,
|
|
23
|
+
handleSearchTerm = _ref.handleSearchTerm,
|
|
24
|
+
searchTerm = _ref.searchTerm,
|
|
25
|
+
toggleSearchModal = _ref.toggleSearchModal,
|
|
26
|
+
close = _ref.close,
|
|
27
|
+
search = _ref.search,
|
|
28
|
+
placeholder = _ref.placeholder;
|
|
29
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
30
|
+
className: "search__wrapper"
|
|
31
|
+
}, /*#__PURE__*/_react["default"].createElement("input", {
|
|
32
|
+
onKeyDown: handleKeyDown,
|
|
33
|
+
ref: searchInputRef,
|
|
34
|
+
placeholder: placeholder,
|
|
35
|
+
type: "text",
|
|
36
|
+
onChange: handleSearchTerm,
|
|
37
|
+
value: searchTerm
|
|
38
|
+
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
39
|
+
onClick: search,
|
|
40
|
+
role: "button",
|
|
41
|
+
className: "icon-button icon-button--search icon-button--toggle"
|
|
42
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
43
|
+
className: "material-icons"
|
|
44
|
+
}, "search")), close && /*#__PURE__*/_react["default"].createElement("div", {
|
|
45
|
+
className: "modal__close"
|
|
46
|
+
}, /*#__PURE__*/_react["default"].createElement("i", {
|
|
47
|
+
className: "material-icons",
|
|
48
|
+
onClick: toggleSearchModal,
|
|
49
|
+
role: "button"
|
|
50
|
+
}, "close")));
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
SearchBar.propTypes = {
|
|
54
|
+
close: _propTypes["default"].bool,
|
|
55
|
+
handleKeyDown: _propTypes["default"].func.isRequired,
|
|
56
|
+
searchInputRef: _propTypes["default"].object,
|
|
57
|
+
handleSearchTerm: _propTypes["default"].func.isRequired,
|
|
58
|
+
searchTerm: _propTypes["default"].string,
|
|
59
|
+
toggleSearchModal: _propTypes["default"].func,
|
|
60
|
+
search: _propTypes["default"].func.isRequired,
|
|
61
|
+
placeholder: _propTypes["default"].string
|
|
62
|
+
};
|
|
63
|
+
SearchBar.defaultProps = {
|
|
64
|
+
searchTerm: '',
|
|
65
|
+
close: true,
|
|
66
|
+
placeholder: 'Search...',
|
|
67
|
+
toggleSearchModal: null,
|
|
68
|
+
searchInputRef: null
|
|
69
|
+
};
|
|
70
|
+
var _default = SearchBar;
|
|
71
|
+
exports["default"] = _default;
|
|
72
|
+
//# sourceMappingURL=SearchBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SearchAdmin/SearchBar/SearchBar.js"],"names":["SearchBar","handleKeyDown","searchInputRef","handleSearchTerm","searchTerm","toggleSearchModal","close","search","placeholder","propTypes","PropTypes","bool","func","isRequired","object","string","defaultProps"],"mappings":";;;;;;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY;AAAA,MAChBC,aADgB,QAChBA,aADgB;AAAA,MAEhBC,cAFgB,QAEhBA,cAFgB;AAAA,MAGhBC,gBAHgB,QAGhBA,gBAHgB;AAAA,MAIhBC,UAJgB,QAIhBA,UAJgB;AAAA,MAKhBC,iBALgB,QAKhBA,iBALgB;AAAA,MAMhBC,KANgB,QAMhBA,KANgB;AAAA,MAOhBC,MAPgB,QAOhBA,MAPgB;AAAA,MAQhBC,WARgB,QAQhBA,WARgB;AAAA,sBAUhB;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AACE,IAAA,SAAS,EAAEP,aADb;AAEE,IAAA,GAAG,EAAEC,cAFP;AAGE,IAAA,WAAW,EAAEM,WAHf;AAIE,IAAA,IAAI,EAAC,MAJP;AAKE,IAAA,QAAQ,EAAEL,gBALZ;AAME,IAAA,KAAK,EAAEC;AANT,IADF,eASE;AACE,IAAA,OAAO,EAAEG,MADX;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,SAAS,EAAC;AAHZ,kBAIE;AAAG,IAAA,SAAS,EAAC;AAAb,cAJF,CATF,EAeGD,KAAK,iBACJ;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAG,IAAA,SAAS,EAAC,gBAAb;AAA8B,IAAA,OAAO,EAAED,iBAAvC;AAA0D,IAAA,IAAI,EAAC;AAA/D,aADF,CAhBJ,CAVgB;AAAA,CAAlB;;AAmCAL,SAAS,CAACS,SAAV,GAAsB;AACpBH,EAAAA,KAAK,EAAEI,sBAAUC,IADG;AAEpBV,EAAAA,aAAa,EAAES,sBAAUE,IAAV,CAAeC,UAFV;AAGpBX,EAAAA,cAAc,EAAEQ,sBAAUI,MAHN;AAIpBX,EAAAA,gBAAgB,EAAEO,sBAAUE,IAAV,CAAeC,UAJb;AAKpBT,EAAAA,UAAU,EAAEM,sBAAUK,MALF;AAMpBV,EAAAA,iBAAiB,EAAEK,sBAAUE,IANT;AAOpBL,EAAAA,MAAM,EAAEG,sBAAUE,IAAV,CAAeC,UAPH;AAQpBL,EAAAA,WAAW,EAAEE,sBAAUK;AARH,CAAtB;AAWAf,SAAS,CAACgB,YAAV,GAAyB;AACvBZ,EAAAA,UAAU,EAAE,EADW;AAEvBE,EAAAA,KAAK,EAAE,IAFgB;AAGvBE,EAAAA,WAAW,EAAE,WAHU;AAIvBH,EAAAA,iBAAiB,EAAE,IAJI;AAKvBH,EAAAA,cAAc,EAAE;AALO,CAAzB;eAQeF,S","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SearchBar = ({\n handleKeyDown,\n searchInputRef,\n handleSearchTerm,\n searchTerm,\n toggleSearchModal,\n close,\n search,\n placeholder\n}) => (\n <div className=\"search__wrapper\">\n <input\n onKeyDown={handleKeyDown}\n ref={searchInputRef}\n placeholder={placeholder}\n type=\"text\"\n onChange={handleSearchTerm}\n value={searchTerm}\n />\n <span\n onClick={search}\n role=\"button\"\n className=\"icon-button icon-button--search icon-button--toggle\">\n <i className=\"material-icons\">search</i>\n </span>\n {close && (\n <div className=\"modal__close\">\n <i className=\"material-icons\" onClick={toggleSearchModal} role=\"button\">\n close\n </i>\n </div>\n )}\n </div>\n);\n\nSearchBar.propTypes = {\n close: PropTypes.bool,\n handleKeyDown: PropTypes.func.isRequired,\n searchInputRef: PropTypes.object,\n handleSearchTerm: PropTypes.func.isRequired,\n searchTerm: PropTypes.string,\n toggleSearchModal: PropTypes.func,\n search: PropTypes.func.isRequired,\n placeholder: PropTypes.string\n};\n\nSearchBar.defaultProps = {\n searchTerm: '',\n close: true,\n placeholder: 'Search...',\n toggleSearchModal: null,\n searchInputRef: null\n};\n\nexport default SearchBar;\n"],"file":"SearchBar.js"}
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
var _SearchBar = _interopRequireDefault(require("./SearchBar"));
|
|
13
|
+
|
|
14
|
+
var _default = _SearchBar["default"];
|
|
15
|
+
exports["default"] = _default;
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/SearchAdmin/SearchBar/index.js"],"names":["SearchBar"],"mappings":";;;;;;;;;;;AAAA;;eAEeA,qB","sourcesContent":["import SearchBar from './SearchBar';\n\nexport default SearchBar;\n"],"file":"index.js"}
|