@blaze-cms/plugin-search-ui 0.125.0-alpha.1 → 0.125.0-f-admin-updates.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +15 -1
  2. package/lib/components/SearchAdmin/SearchAdmin.js +70 -13
  3. package/lib/components/SearchAdmin/SearchAdmin.js.map +1 -1
  4. package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +143 -0
  5. package/lib/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +1 -0
  6. package/lib/components/SearchAdmin/SearchAdminSideBar/index.js +16 -0
  7. package/lib/components/SearchAdmin/SearchAdminSideBar/index.js.map +1 -0
  8. package/lib/components/SearchAdmin/SearchResults/SearchResults.js +18 -6
  9. package/lib/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
  10. package/lib/components/useSearch/useSearch.js +12 -5
  11. package/lib/components/useSearch/useSearch.js.map +1 -1
  12. package/lib/components/useSearchResults/useSearchResults.js +1 -25
  13. package/lib/components/useSearchResults/useSearchResults.js.map +1 -1
  14. package/lib-es/components/SearchAdmin/SearchAdmin.js +34 -3
  15. package/lib-es/components/SearchAdmin/SearchAdmin.js.map +1 -1
  16. package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +79 -0
  17. package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +1 -0
  18. package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js +3 -0
  19. package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js.map +1 -0
  20. package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js +18 -6
  21. package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -1
  22. package/lib-es/components/useSearch/useSearch.js +5 -2
  23. package/lib-es/components/useSearch/useSearch.js.map +1 -1
  24. package/lib-es/components/useSearchResults/useSearchResults.js +1 -11
  25. package/lib-es/components/useSearchResults/useSearchResults.js.map +1 -1
  26. package/package.json +3 -3
  27. package/src/components/SearchAdmin/SearchAdmin.js +70 -40
  28. package/src/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +88 -0
  29. package/src/components/SearchAdmin/SearchAdminSideBar/index.js +3 -0
  30. package/src/components/SearchAdmin/SearchResults/SearchResults.js +42 -6
  31. package/src/components/useSearch/useSearch.js +8 -2
  32. package/src/components/useSearchResults/useSearchResults.js +1 -15
package/CHANGELOG.md CHANGED
@@ -3,12 +3,26 @@
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.125.0-alpha.1](https://github.com/thebyte9/blaze/compare/v0.125.0-alpha.0...v0.125.0-alpha.1) (2022-09-15)
6
+ # [0.125.0-f-admin-updates.0](https://github.com/thebyte9/blaze/compare/v0.124.1...v0.125.0-f-admin-updates.0) (2022-10-06)
7
7
 
8
8
 
9
9
  ### Bug Fixes
10
10
 
11
+ * add updated searchAdmin test ([4db3178](https://github.com/thebyte9/blaze/commit/4db3178f8c95182d107a1d151a793a0987c8d7b8))
11
12
  * improve autocomplete search results ([#3596](https://github.com/thebyte9/blaze/issues/3596)) ([d667764](https://github.com/thebyte9/blaze/commit/d6677641019abca34bae640aa4c857696c11ae4e))
13
+ * update tests ([f86218f](https://github.com/thebyte9/blaze/commit/f86218f88a7348f68a07685a8f49ba459aac1b1b))
14
+ * update tests ([8fd2675](https://github.com/thebyte9/blaze/commit/8fd2675624126e5a23ecc0af3202d08c46667441))
15
+
16
+
17
+ ### Features
18
+
19
+ * add admin global search styles update first iteration ([7623917](https://github.com/thebyte9/blaze/commit/7623917e64b670f7d1fc12688af6ed39735da89e))
20
+ * add admin syle feedback ([56c01fd](https://github.com/thebyte9/blaze/commit/56c01fdf825a570143d4bc0c54fbcd970adc28ae))
21
+ * add search admin sidebar testsuite ([ca043fa](https://github.com/thebyte9/blaze/commit/ca043fa43835bd07cf50bae41af3d11e7be089b6))
22
+ * add search sidebar filter by entity ([e8b5423](https://github.com/thebyte9/blaze/commit/e8b542354ce47143635411da07bb640b91bf7fdf))
23
+ * add updated snapshots ([a0444bd](https://github.com/thebyte9/blaze/commit/a0444bd0d4e2f78753ac069067d39f3f6e741832))
24
+ * amend PR and fix scroll loop issue ([8583497](https://github.com/thebyte9/blaze/commit/85834974cafb45bb87f00f14a99b3fae3a818cfb))
25
+ * remove duplicated search results and add usedebounce to improve search performance ([9aad827](https://github.com/thebyte9/blaze/commit/9aad827e7e5aaf3be84d34343d79e6b1ecbead2c))
12
26
 
13
27
 
14
28
 
@@ -2,8 +2,6 @@
2
2
 
3
3
  require("core-js/modules/es.array.iterator.js");
4
4
 
5
- require("core-js/modules/es.object.to-string.js");
6
-
7
5
  require("core-js/modules/es.string.iterator.js");
8
6
 
9
7
  require("core-js/modules/es.weak-map.js");
@@ -23,18 +21,32 @@ Object.defineProperty(exports, "__esModule", {
23
21
  });
24
22
  exports["default"] = void 0;
25
23
 
24
+ require("core-js/modules/es.array.map.js");
25
+
26
26
  require("core-js/modules/es.array.slice.js");
27
27
 
28
28
  require("core-js/modules/es.array.includes.js");
29
29
 
30
30
  require("core-js/modules/es.string.includes.js");
31
31
 
32
+ require("core-js/modules/es.array.some.js");
33
+
34
+ require("core-js/modules/es.object.to-string.js");
35
+
36
+ require("core-js/modules/es.array.filter.js");
37
+
38
+ require("core-js/modules/es.array.concat.js");
39
+
40
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
41
+
32
42
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
33
43
 
34
44
  var _react = _interopRequireWildcard(require("react"));
35
45
 
36
46
  var _classnames = _interopRequireDefault(require("classnames"));
37
47
 
48
+ var _customHooks = require("@blaze-react/utils/lib/customHooks");
49
+
38
50
  var _useLocalStorage3 = _interopRequireDefault(require("../useLocalStorage"));
39
51
 
40
52
  var _SearchBar = _interopRequireDefault(require("./SearchBar"));
@@ -45,6 +57,8 @@ var _SearchResults = _interopRequireDefault(require("./SearchResults"));
45
57
 
46
58
  var _TriggerModal = _interopRequireDefault(require("./TriggerModal"));
47
59
 
60
+ var _SearchAdminSideBar = _interopRequireDefault(require("./SearchAdminSideBar"));
61
+
48
62
  var _useSearchResults3 = _interopRequireDefault(require("../useSearchResults"));
49
63
 
50
64
  var _constants = require("../../constants");
@@ -59,25 +73,39 @@ var SearchAdmin = function SearchAdmin() {
59
73
  searchTerm = _useState2[0],
60
74
  setSearchTerm = _useState2[1];
61
75
 
76
+ var _useState3 = (0, _react.useState)(true),
77
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
78
+ openSearchSideBar = _useState4[0],
79
+ setOpenSearchSideBar = _useState4[1];
80
+
81
+ var _useState5 = (0, _react.useState)([]),
82
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
83
+ entityValues = _useState6[0],
84
+ setEntityValues = _useState6[1];
85
+
62
86
  var _useLocalStorage = (0, _useLocalStorage3["default"])('recentSearches', []),
63
87
  _useLocalStorage2 = (0, _slicedToArray2["default"])(_useLocalStorage, 2),
64
88
  recentSearches = _useLocalStorage2[0],
65
89
  setRecentSearches = _useLocalStorage2[1];
66
90
 
67
- var _useState3 = (0, _react.useState)(false),
68
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
69
- displaySearchModalFrame = _useState4[0],
70
- setDisplaySearchModalFrame = _useState4[1];
91
+ var _useState7 = (0, _react.useState)(false),
92
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
93
+ displaySearchModalFrame = _useState8[0],
94
+ setDisplaySearchModalFrame = _useState8[1];
71
95
 
72
- var _useState5 = (0, _react.useState)(true),
73
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
74
- enableResults = _useState6[0],
75
- setEnableResults = _useState6[1];
96
+ var _useState9 = (0, _react.useState)(true),
97
+ _useState10 = (0, _slicedToArray2["default"])(_useState9, 2),
98
+ enableResults = _useState10[0],
99
+ setEnableResults = _useState10[1];
76
100
 
77
101
  var searchInputRef = (0, _react.useRef)(null);
102
+ var debouncedEntityValues = (0, _customHooks.useDebounce)(entityValues, 500);
78
103
 
79
104
  var _useSearchResults = (0, _useSearchResults3["default"])({
80
- queryKey: _constants.SEARCH_ADMIN
105
+ queryKey: _constants.SEARCH_ADMIN,
106
+ entities: debouncedEntityValues.map(function (e) {
107
+ return e.id;
108
+ })
81
109
  }),
82
110
  _useSearchResults2 = (0, _slicedToArray2["default"])(_useSearchResults, 2),
83
111
  _useSearchResults2$ = _useSearchResults2[0],
@@ -144,17 +172,46 @@ var SearchAdmin = function SearchAdmin() {
144
172
  var searchModalResultsClassName = (0, _classnames["default"])('modal modal--full-screen modal--search', {
145
173
  'modal--show': displaySearchModalFrame
146
174
  });
175
+ var searchModalSideBarClassName = (0, _classnames["default"])('modal__search__sidebar', {
176
+ 'modal__search__sidebar--close': !openSearchSideBar
177
+ });
147
178
  var isEmptySearchTermAndData = !searchTerm && !results.length;
148
179
  var isEmptySearchTermnAndDisabledResults = !searchTerm && !enableResults;
149
180
  var shouldDisplayRecentSearches = isEmptySearchTermAndData || isEmptySearchTermnAndDisabledResults;
150
181
  var showResults = enableResults && results.length;
182
+
183
+ var handleSetEntityValues = function handleSetEntityValues(newEntity) {
184
+ var entityExists = entityValues.some(function (entity) {
185
+ return entity.id === newEntity.id;
186
+ });
187
+
188
+ if (entityExists) {
189
+ setEntityValues(entityValues.filter(function (entity) {
190
+ return entity.id !== newEntity.id;
191
+ }));
192
+ } else {
193
+ setEntityValues([].concat((0, _toConsumableArray2["default"])(entityValues), [newEntity]));
194
+ }
195
+ };
196
+
151
197
  return /*#__PURE__*/_react["default"].createElement("div", {
152
198
  className: "search search--header"
153
199
  }, /*#__PURE__*/_react["default"].createElement(_TriggerModal["default"], {
154
200
  toggleSearchModal: toggleSearchModal
155
201
  }), /*#__PURE__*/_react["default"].createElement("div", {
156
202
  className: searchModalResultsClassName
157
- }, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
203
+ }, displaySearchModalFrame && /*#__PURE__*/_react["default"].createElement("div", {
204
+ className: "modal__search"
205
+ }, /*#__PURE__*/_react["default"].createElement(_SearchAdminSideBar["default"], {
206
+ searchModalSideBarClassName: searchModalSideBarClassName,
207
+ openSearchSideBar: openSearchSideBar,
208
+ setOpenSearchSideBar: setOpenSearchSideBar,
209
+ handleSetEntityValues: handleSetEntityValues,
210
+ entityValues: entityValues,
211
+ setEntityValues: setEntityValues
212
+ }), /*#__PURE__*/_react["default"].createElement("div", {
213
+ className: "modal__search__content"
214
+ }, /*#__PURE__*/_react["default"].createElement("div", {
158
215
  className: "modal__header modal__header--search"
159
216
  }, /*#__PURE__*/_react["default"].createElement(_SearchBar["default"], {
160
217
  toggleSearchModal: toggleSearchModal,
@@ -183,7 +240,7 @@ var SearchAdmin = function SearchAdmin() {
183
240
  total: total,
184
241
  setQueryParams: setQueryParams,
185
242
  closeModal: toggleSearchModal
186
- }))));
243
+ })))));
187
244
  };
188
245
 
189
246
  var _default = SearchAdmin;
@@ -1 +1 @@
1
- {"version":3,"file":"SearchAdmin.js","names":["SearchAdmin","useState","searchTerm","setSearchTerm","useLocalStorage","recentSearches","setRecentSearches","displaySearchModalFrame","setDisplaySearchModalFrame","enableResults","setEnableResults","searchInputRef","useRef","useSearchResults","queryKey","SEARCH_ADMIN","loading","results","total","setQueryParams","useEffect","current","focus","handleSearchTerm","value","target","toggleSearchModal","search","MAX_RECENT_SEARCHES","recentSearchesCopy","slice","includes","push","length","shift","handleKeyDown","key","clear","searchModalResultsClassName","classnames","isEmptySearchTermAndData","isEmptySearchTermnAndDisabledResults","shouldDisplayRecentSearches","showResults"],"sources":["../../../src/components/SearchAdmin/SearchAdmin.js"],"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"],"mappings":"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"}
1
+ {"version":3,"file":"SearchAdmin.js","names":["SearchAdmin","useState","searchTerm","setSearchTerm","openSearchSideBar","setOpenSearchSideBar","entityValues","setEntityValues","useLocalStorage","recentSearches","setRecentSearches","displaySearchModalFrame","setDisplaySearchModalFrame","enableResults","setEnableResults","searchInputRef","useRef","debouncedEntityValues","useDebounce","useSearchResults","queryKey","SEARCH_ADMIN","entities","map","e","id","loading","results","total","setQueryParams","useEffect","current","focus","handleSearchTerm","value","target","toggleSearchModal","search","MAX_RECENT_SEARCHES","recentSearchesCopy","slice","includes","push","length","shift","handleKeyDown","key","clear","searchModalResultsClassName","classnames","searchModalSideBarClassName","isEmptySearchTermAndData","isEmptySearchTermnAndDisabledResults","shouldDisplayRecentSearches","showResults","handleSetEntityValues","newEntity","entityExists","some","entity","filter"],"sources":["../../../src/components/SearchAdmin/SearchAdmin.js"],"sourcesContent":["import React, { useState, useRef, useEffect } from 'react';\nimport classnames from 'classnames';\nimport { useDebounce } from '@blaze-react/utils/lib/customHooks';\nimport useLocalStorage from '../useLocalStorage';\nimport SearchBar from './SearchBar';\nimport RecentSearches from './RecentSearches';\nimport SearchResults from './SearchResults';\nimport TriggerModal from './TriggerModal';\nimport SearchAdminSideBar from './SearchAdminSideBar';\nimport useSearchResults from '../useSearchResults';\nimport { SEARCH_ADMIN } from '../../constants';\n\nconst SearchAdmin = () => {\n const [searchTerm, setSearchTerm] = useState('');\n const [openSearchSideBar, setOpenSearchSideBar] = useState(true);\n const [entityValues, setEntityValues] = useState([]);\n\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 debouncedEntityValues = useDebounce(entityValues, 500);\n const [{ loading, results, total }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_ADMIN,\n entities: debouncedEntityValues.map(e => e.id)\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 searchModalSideBarClassName = classnames('modal__search__sidebar', {\n 'modal__search__sidebar--close': !openSearchSideBar\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 const handleSetEntityValues = newEntity => {\n const entityExists = entityValues.some(entity => entity.id === newEntity.id);\n if (entityExists) {\n setEntityValues(entityValues.filter(entity => entity.id !== newEntity.id));\n } else {\n setEntityValues([...entityValues, newEntity]);\n }\n };\n\n return (\n <div className=\"search search--header\">\n <TriggerModal toggleSearchModal={toggleSearchModal} />\n <div className={searchModalResultsClassName}>\n {displaySearchModalFrame && (\n <div className=\"modal__search\">\n <SearchAdminSideBar\n searchModalSideBarClassName={searchModalSideBarClassName}\n openSearchSideBar={openSearchSideBar}\n setOpenSearchSideBar={setOpenSearchSideBar}\n handleSetEntityValues={handleSetEntityValues}\n entityValues={entityValues}\n setEntityValues={setEntityValues}\n />\n <div className=\"modal__search__content\">\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 </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n\nexport default SearchAdmin;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,WAAW,GAAG,SAAdA,WAAc,GAAM;EACxB,gBAAoC,IAAAC,eAAA,EAAS,EAAT,CAApC;EAAA;EAAA,IAAOC,UAAP;EAAA,IAAmBC,aAAnB;;EACA,iBAAkD,IAAAF,eAAA,EAAS,IAAT,CAAlD;EAAA;EAAA,IAAOG,iBAAP;EAAA,IAA0BC,oBAA1B;;EACA,iBAAwC,IAAAJ,eAAA,EAAS,EAAT,CAAxC;EAAA;EAAA,IAAOK,YAAP;EAAA,IAAqBC,eAArB;;EAEA,uBAA4C,IAAAC,4BAAA,EAAgB,gBAAhB,EAAkC,EAAlC,CAA5C;EAAA;EAAA,IAAOC,cAAP;EAAA,IAAuBC,iBAAvB;;EACA,iBAA8D,IAAAT,eAAA,EAAS,KAAT,CAA9D;EAAA;EAAA,IAAOU,uBAAP;EAAA,IAAgCC,0BAAhC;;EACA,iBAA0C,IAAAX,eAAA,EAAS,IAAT,CAA1C;EAAA;EAAA,IAAOY,aAAP;EAAA,IAAsBC,gBAAtB;;EACA,IAAMC,cAAc,GAAG,IAAAC,aAAA,EAAO,IAAP,CAAvB;EACA,IAAMC,qBAAqB,GAAG,IAAAC,wBAAA,EAAYZ,YAAZ,EAA0B,GAA1B,CAA9B;;EACA,wBAAsD,IAAAa,6BAAA,EAAiB;IACrEC,QAAQ,EAAEC,uBAD2D;IAErEC,QAAQ,EAAEL,qBAAqB,CAACM,GAAtB,CAA0B,UAAAC,CAAC;MAAA,OAAIA,CAAC,CAACC,EAAN;IAAA,CAA3B;EAF2D,CAAjB,CAAtD;EAAA;EAAA;EAAA,IAASC,OAAT,uBAASA,OAAT;EAAA,IAAkBC,OAAlB,uBAAkBA,OAAlB;EAAA,IAA2BC,KAA3B,uBAA2BA,KAA3B;EAAA,IAAoCC,cAApC;;EAKA,IAAAC,gBAAA,EACE,YAAM;IACJ,IAAIf,cAAc,IAAIA,cAAc,CAACgB,OAArC,EAA8C;MAC5ChB,cAAc,CAACgB,OAAf,CAAuBC,KAAvB;IACD;EACF,CALH,EAME,CAACrB,uBAAD,CANF;;EASA,IAAMsB,gBAAgB,GAAG,SAAnBA,gBAAmB,OAA2B;IAAA,IAAdC,KAAc,QAAxBC,MAAwB,CAAdD,KAAc;IAClD/B,aAAa,CAAC+B,KAAD,CAAb;EACD,CAFD;;EAGA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB,GAAM;IAC9BjC,aAAa,CAAC,IAAD,CAAb;IACAW,gBAAgB,CAAC,KAAD,CAAhB;IACAF,0BAA0B,CAAC,CAACD,uBAAF,CAA1B;EACD,CAJD;;EAKA,IAAM0B,OAAM,GAAG,SAATA,MAAS,QAAe;IAAA,IAAZH,KAAY,SAAZA,KAAY;IAC5B,IAAI,CAACA,KAAL,EAAY;IACZ,CAACrB,aAAD,IAAkBC,gBAAgB,CAAC,IAAD,CAAlC;IACA,IAAMwB,mBAAmB,GAAG,CAA5B;IACA,IAAMC,kBAAkB,GAAG9B,cAAc,CAAC+B,KAAf,EAA3B;;IAEA,IAAI,CAACD,kBAAkB,CAACE,QAAnB,CAA4BP,KAA5B,CAAL,EAAyC;MACvCK,kBAAkB,CAACG,IAAnB,CAAwBR,KAAxB;;MACA,IAAIK,kBAAkB,CAACI,MAAnB,GAA4BL,mBAAhC,EAAqD;QACnDC,kBAAkB,CAACK,KAAnB;MACD;IACF;;IAEDlC,iBAAiB,CAAC6B,kBAAD,CAAjB;IACAV,cAAc,CAAC;MAAEK,KAAK,EAALA;IAAF,CAAD,CAAd;EACD,CAfD;;EAiBA,IAAMW,aAAa,GAAG,SAAhBA,aAAgB,QAAa;IAAA,IAAVC,GAAU,SAAVA,GAAU;;IACjC,IAAIA,GAAG,KAAK,OAAZ,EAAqB;MACnB,IAAI,CAAC5C,UAAL,EAAiB,OAAO6C,KAAK,EAAZ;;MACjBV,OAAM,CAAC;QAAEH,KAAK,EAAEhC;MAAT,CAAD,CAAN;IACD;EACF,CALD;;EAOA,IAAM6C,KAAK,GAAG,SAARA,KAAQ,GAAM;IAClB5C,aAAa,CAAC,EAAD,CAAb;IACAW,gBAAgB,CAAC,KAAD,CAAhB;EACD,CAHD;;EAKA,IAAMkC,2BAA2B,GAAG,IAAAC,sBAAA,EAAW,wCAAX,EAAqD;IACvF,eAAetC;EADwE,CAArD,CAApC;EAIA,IAAMuC,2BAA2B,GAAG,IAAAD,sBAAA,EAAW,wBAAX,EAAqC;IACvE,iCAAiC,CAAC7C;EADqC,CAArC,CAApC;EAIA,IAAM+C,wBAAwB,GAAG,CAACjD,UAAD,IAAe,CAACyB,OAAO,CAACgB,MAAzD;EACA,IAAMS,oCAAoC,GAAG,CAAClD,UAAD,IAAe,CAACW,aAA7D;EACA,IAAMwC,2BAA2B,GAC/BF,wBAAwB,IAAIC,oCAD9B;EAGA,IAAME,WAAW,GAAGzC,aAAa,IAAIc,OAAO,CAACgB,MAA7C;;EAEA,IAAMY,qBAAqB,GAAG,SAAxBA,qBAAwB,CAAAC,SAAS,EAAI;IACzC,IAAMC,YAAY,GAAGnD,YAAY,CAACoD,IAAb,CAAkB,UAAAC,MAAM;MAAA,OAAIA,MAAM,CAAClC,EAAP,KAAc+B,SAAS,CAAC/B,EAA5B;IAAA,CAAxB,CAArB;;IACA,IAAIgC,YAAJ,EAAkB;MAChBlD,eAAe,CAACD,YAAY,CAACsD,MAAb,CAAoB,UAAAD,MAAM;QAAA,OAAIA,MAAM,CAAClC,EAAP,KAAc+B,SAAS,CAAC/B,EAA5B;MAAA,CAA1B,CAAD,CAAf;IACD,CAFD,MAEO;MACLlB,eAAe,+CAAKD,YAAL,IAAmBkD,SAAnB,GAAf;IACD;EACF,CAPD;;EASA,oBACE;IAAK,SAAS,EAAC;EAAf,gBACE,gCAAC,wBAAD;IAAc,iBAAiB,EAAEpB;EAAjC,EADF,eAEE;IAAK,SAAS,EAAEY;EAAhB,GACGrC,uBAAuB,iBACtB;IAAK,SAAS,EAAC;EAAf,gBACE,gCAAC,8BAAD;IACE,2BAA2B,EAAEuC,2BAD/B;IAEE,iBAAiB,EAAE9C,iBAFrB;IAGE,oBAAoB,EAAEC,oBAHxB;IAIE,qBAAqB,EAAEkD,qBAJzB;IAKE,YAAY,EAAEjD,YALhB;IAME,eAAe,EAAEC;EANnB,EADF,eASE;IAAK,SAAS,EAAC;EAAf,gBACE;IAAK,SAAS,EAAC;EAAf,gBACE,gCAAC,qBAAD;IACE,iBAAiB,EAAE6B,iBADrB;IAEE,aAAa,EAAES,aAFjB;IAGE,cAAc,EAAE9B,cAHlB;IAIE,gBAAgB,EAAEkB,gBAJpB;IAKE,UAAU,EAAE/B,UALd;IAME,MAAM,EAAE;MAAA,OAAMmC,OAAM,CAAC;QAAEH,KAAK,EAAEhC;MAAT,CAAD,CAAZ;IAAA;EANV,EADF,CADF,EAWGmD,2BAA2B,gBAC1B,gCAAC,0BAAD;IACE,cAAc,EAAE5C,cADlB;IAEE,gBAAgB,EAAEwB,gBAFpB;IAGE,MAAM,EAAEI;EAHV,EAD0B,gBAO1B,kEACG,CAACiB,WAAD,iBACC;IAAK,SAAS,EAAC;EAAf,gBACE;IAAK,SAAS,EAAC;EAAf,gBACE,yDADF,CADF,CAFJ,CAlBJ,EA4BGA,WAAW,iBACV,gCAAC,yBAAD;IACE,YAAY,EAAEpD,UADhB;IAEE,UAAU,EAAEA,UAFd;IAGE,OAAO,EAAEwB,OAHX;IAIE,OAAO,EAAEC,OAJX;IAKE,KAAK,EAAEC,KALT;IAME,cAAc,EAAEC,cANlB;IAOE,UAAU,EAAEO;EAPd,EA7BJ,CATF,CAFJ,CAFF,CADF;AA2DD,CAhJD;;eAkJepC,W"}
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.array.iterator.js");
4
+
5
+ require("core-js/modules/es.string.iterator.js");
6
+
7
+ require("core-js/modules/es.weak-map.js");
8
+
9
+ require("core-js/modules/web.dom-collections.iterator.js");
10
+
11
+ require("core-js/modules/es.object.define-property.js");
12
+
13
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
14
+
15
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
16
+
17
+ var _typeof = require("@babel/runtime/helpers/typeof");
18
+
19
+ Object.defineProperty(exports, "__esModule", {
20
+ value: true
21
+ });
22
+ exports["default"] = void 0;
23
+
24
+ require("core-js/modules/es.array.filter.js");
25
+
26
+ require("core-js/modules/es.object.to-string.js");
27
+
28
+ require("core-js/modules/es.object.keys.js");
29
+
30
+ require("core-js/modules/es.array.includes.js");
31
+
32
+ require("core-js/modules/es.string.includes.js");
33
+
34
+ require("core-js/modules/es.array.slice.js");
35
+
36
+ require("core-js/modules/es.array.map.js");
37
+
38
+ require("core-js/modules/es.array.some.js");
39
+
40
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
41
+
42
+ var _react = _interopRequireWildcard(require("react"));
43
+
44
+ var _client = require("@apollo/client");
45
+
46
+ var _adminUiUtils = require("@blaze-cms/admin-ui-utils");
47
+
48
+ var _checkboxes = require("@blaze-react/checkboxes");
49
+
50
+ 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); }
51
+
52
+ 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; }
53
+
54
+ var MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];
55
+
56
+ var SearchAdminSideBar = function SearchAdminSideBar(_ref) {
57
+ var searchModalSideBarClassName = _ref.searchModalSideBarClassName,
58
+ openSearchSideBar = _ref.openSearchSideBar,
59
+ setOpenSearchSideBar = _ref.setOpenSearchSideBar,
60
+ handleSetEntityValues = _ref.handleSetEntityValues,
61
+ entityValues = _ref.entityValues,
62
+ setEntityValues = _ref.setEntityValues;
63
+
64
+ var _useState = (0, _react.useState)(false),
65
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
66
+ loadMore = _useState2[0],
67
+ setLoadMore = _useState2[1];
68
+
69
+ var _useQuery = (0, _client.useQuery)((0, _adminUiUtils.getQuery)('GET_USER_EDITABLE_ENTITIES'), {
70
+ variables: {
71
+ canDoActions: MENU_PERMISSIONS
72
+ }
73
+ }),
74
+ _useQuery$data = _useQuery.data;
75
+
76
+ _useQuery$data = _useQuery$data === void 0 ? {} : _useQuery$data;
77
+ var _useQuery$data$getEnt = _useQuery$data.getEntitySchemas,
78
+ getEntitySchemas = _useQuery$data$getEnt === void 0 ? [] : _useQuery$data$getEnt,
79
+ loading = _useQuery.loading;
80
+ if (loading) return null;
81
+ var filteredEntitiesSchemas = getEntitySchemas.filter(function (entity) {
82
+ if (Object.keys(entity.extras).length) {
83
+ return entity.extras.searchIndexes.includes('admin');
84
+ }
85
+
86
+ return false;
87
+ });
88
+ var entitiesToShow = filteredEntitiesSchemas.slice(0, loadMore ? filteredEntitiesSchemas.length : 5);
89
+ return /*#__PURE__*/_react["default"].createElement("div", {
90
+ className: searchModalSideBarClassName
91
+ }, /*#__PURE__*/_react["default"].createElement("div", {
92
+ className: "modal__search__sidebar__button",
93
+ role: "button",
94
+ onClick: function onClick() {
95
+ return setOpenSearchSideBar(!openSearchSideBar);
96
+ }
97
+ }, /*#__PURE__*/_react["default"].createElement("i", {
98
+ className: "material-icons"
99
+ }, openSearchSideBar ? 'keyboard_arrow_left' : 'keyboard_arrow_right')), /*#__PURE__*/_react["default"].createElement("div", {
100
+ className: "modal__search__sidebar__container"
101
+ }, /*#__PURE__*/_react["default"].createElement("div", {
102
+ className: "modal__search__sidebar__wrapper"
103
+ }, /*#__PURE__*/_react["default"].createElement("div", {
104
+ className: "modal__search__sidebar__filters"
105
+ }, /*#__PURE__*/_react["default"].createElement("i", {
106
+ className: "material-icons modal__search__sidebar__icon"
107
+ }, "tune"), /*#__PURE__*/_react["default"].createElement("span", null, "Filters")), /*#__PURE__*/_react["default"].createElement("div", {
108
+ className: "modal__search__sidebar__clear",
109
+ role: "button",
110
+ onClick: function onClick() {
111
+ return setEntityValues([]);
112
+ }
113
+ }, /*#__PURE__*/_react["default"].createElement("span", null, "Clear all"), /*#__PURE__*/_react["default"].createElement("i", {
114
+ className: "material-icons modal__search__sidebar__icon--clear"
115
+ }, "replay"))), /*#__PURE__*/_react["default"].createElement("div", {
116
+ className: "modal__search__sidebar__entity-list"
117
+ }, /*#__PURE__*/_react["default"].createElement("h1", null, "Entity list"), entitiesToShow.map(function (entity) {
118
+ return /*#__PURE__*/_react["default"].createElement(_checkboxes.Checkbox, {
119
+ checked: entityValues.some(function (_entity) {
120
+ return _entity.id === entity.id;
121
+ }),
122
+ label: entity.displayName,
123
+ id: entity.id,
124
+ name: entity.id,
125
+ onChange: function onChange(_ref2) {
126
+ var checked = _ref2.value.checked;
127
+ return handleSetEntityValues(entity);
128
+ }
129
+ });
130
+ }), /*#__PURE__*/_react["default"].createElement("div", {
131
+ className: "modal__search__sidebar__more",
132
+ role: "button",
133
+ onClick: function onClick() {
134
+ return setLoadMore(!loadMore);
135
+ }
136
+ }, /*#__PURE__*/_react["default"].createElement("i", {
137
+ className: "material-icons"
138
+ }, !loadMore ? 'navigate_next' : 'expand_less'), /*#__PURE__*/_react["default"].createElement("span", null, loadMore ? 'Less' : 'More')))));
139
+ };
140
+
141
+ var _default = SearchAdminSideBar;
142
+ exports["default"] = _default;
143
+ //# sourceMappingURL=SearchAdminSideBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchAdminSideBar.js","names":["MENU_PERMISSIONS","SearchAdminSideBar","searchModalSideBarClassName","openSearchSideBar","setOpenSearchSideBar","handleSetEntityValues","entityValues","setEntityValues","useState","loadMore","setLoadMore","useQuery","getQuery","variables","canDoActions","data","getEntitySchemas","loading","filteredEntitiesSchemas","filter","entity","Object","keys","extras","length","searchIndexes","includes","entitiesToShow","slice","map","some","_entity","id","displayName","checked","value"],"sources":["../../../../src/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { useQuery } from '@apollo/client';\nimport { getQuery } from '@blaze-cms/admin-ui-utils';\nimport { Checkbox } from '@blaze-react/checkboxes';\n\nconst MENU_PERMISSIONS = ['update:any', 'update:own', 'create:any', 'create:own'];\n\nconst SearchAdminSideBar = ({\n searchModalSideBarClassName,\n openSearchSideBar,\n setOpenSearchSideBar,\n handleSetEntityValues,\n entityValues,\n setEntityValues\n}) => {\n const [loadMore, setLoadMore] = useState(false);\n const { data: { getEntitySchemas = [] } = {}, loading } = useQuery(\n getQuery('GET_USER_EDITABLE_ENTITIES'),\n {\n variables: {\n canDoActions: MENU_PERMISSIONS\n }\n }\n );\n\n if (loading) return null;\n\n const filteredEntitiesSchemas = getEntitySchemas.filter(entity => {\n if (Object.keys(entity.extras).length) {\n return entity.extras.searchIndexes.includes('admin');\n }\n return false;\n });\n\n const entitiesToShow = filteredEntitiesSchemas.slice(\n 0,\n loadMore ? filteredEntitiesSchemas.length : 5\n );\n\n return (\n <div className={searchModalSideBarClassName}>\n <div\n className=\"modal__search__sidebar__button\"\n role=\"button\"\n onClick={() => setOpenSearchSideBar(!openSearchSideBar)}>\n <i className=\"material-icons\">\n {openSearchSideBar ? 'keyboard_arrow_left' : 'keyboard_arrow_right'}\n </i>\n </div>\n <div className=\"modal__search__sidebar__container\">\n <div className=\"modal__search__sidebar__wrapper\">\n <div className=\"modal__search__sidebar__filters\">\n <i className=\"material-icons modal__search__sidebar__icon\">tune</i>\n <span>Filters</span>\n </div>\n <div\n className=\"modal__search__sidebar__clear\"\n role=\"button\"\n onClick={() => setEntityValues([])}>\n <span>Clear all</span>\n <i className=\"material-icons modal__search__sidebar__icon--clear\">replay</i>\n </div>\n </div>\n <div className=\"modal__search__sidebar__entity-list\">\n <h1>Entity list</h1>\n {entitiesToShow.map(entity => (\n <Checkbox\n checked={entityValues.some(_entity => _entity.id === entity.id)}\n label={entity.displayName}\n id={entity.id}\n name={entity.id}\n onChange={({ value: { checked } }) => handleSetEntityValues(entity)}\n />\n ))}\n <div\n className=\"modal__search__sidebar__more\"\n role=\"button\"\n onClick={() => setLoadMore(!loadMore)}>\n <i className=\"material-icons\">{!loadMore ? 'navigate_next' : 'expand_less'}</i>\n <span>{loadMore ? 'Less' : 'More'}</span>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default SearchAdminSideBar;\n"],"mappings":"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"}
@@ -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 _SearchAdminSideBar = _interopRequireDefault(require("./SearchAdminSideBar"));
13
+
14
+ var _default = _SearchAdminSideBar["default"];
15
+ exports["default"] = _default;
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["SearchAdminSideBar"],"sources":["../../../../src/components/SearchAdmin/SearchAdminSideBar/index.js"],"sourcesContent":["import SearchAdminSideBar from './SearchAdminSideBar';\n\nexport default SearchAdminSideBar;\n"],"mappings":";;;;;;;;;;;AAAA;;eAEeA,8B"}
@@ -140,7 +140,9 @@ var SearchResults = function SearchResults(_ref) {
140
140
  className: "modal__content modal__content--search"
141
141
  }, /*#__PURE__*/_react["default"].createElement("div", {
142
142
  className: "header header--list"
143
- }, /*#__PURE__*/_react["default"].createElement("h2", null, total, " results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
143
+ }, /*#__PURE__*/_react["default"].createElement("h2", {
144
+ className: "header--list--results"
145
+ }, "About ", /*#__PURE__*/_react["default"].createElement("b", null, total), " search keywords results")), /*#__PURE__*/_react["default"].createElement(_reactTinyVirtualList["default"], {
144
146
  width: "100%",
145
147
  height: window.innerHeight - _constants.SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,
146
148
  itemCount: results.length,
@@ -155,8 +157,14 @@ var SearchResults = function SearchResults(_ref) {
155
157
  id = _results$index.id,
156
158
  docType = _results$index.docType,
157
159
  updated = _results$index.updated,
158
- name = _results$index.name;
160
+ name = _results$index.name,
161
+ entityIdentifier = _results$index.entityIdentifier,
162
+ published = _results$index.published,
163
+ created = _results$index.created,
164
+ status = _results$index.status;
159
165
  var updatedDate = updated ? getDateFormat(updated) : null;
166
+ var createdDate = created ? getDateFormat(created) : null;
167
+ var publishedDate = published ? getDateFormat(published) : null;
160
168
  return /*#__PURE__*/_react["default"].createElement("div", {
161
169
  key: index,
162
170
  style: style,
@@ -166,8 +174,8 @@ var SearchResults = function SearchResults(_ref) {
166
174
  }, /*#__PURE__*/_react["default"].createElement("div", {
167
175
  className: "list__item-row list__item-row--result"
168
176
  }, /*#__PURE__*/_react["default"].createElement("span", {
169
- className: "badge badge--primary"
170
- }, docType, " ", updatedDate), /*#__PURE__*/_react["default"].createElement("a", {
177
+ className: "list__item-identifier"
178
+ }, entityIdentifier), /*#__PURE__*/_react["default"].createElement("a", {
171
179
  href: getNavigationRoute({
172
180
  id: id,
173
181
  docType: docType
@@ -178,8 +186,12 @@ var SearchResults = function SearchResults(_ref) {
178
186
  docType: docType
179
187
  });
180
188
  },
181
- className: "list__item-text list__item-text--result"
182
- }, name))));
189
+ className: "list__item-link"
190
+ }, name), /*#__PURE__*/_react["default"].createElement("div", {
191
+ className: "list__item-dates"
192
+ }, publishedDate && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Published: "), publishedDate), /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Created: "), createdDate), /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Updated: "), updatedDate)), /*#__PURE__*/_react["default"].createElement("div", {
193
+ className: "list__item-status"
194
+ }, status && /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("b", null, "Status: "), status)))));
183
195
  }
184
196
  })));
185
197
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SearchResults.js","names":["SearchResults","currentValue","loading","results","total","setQueryParams","closeModal","history","useState","verifiedRanges","setVerifiedRanges","currentIndex","setCurrentIndex","handleRenderedItems","startIndex","rowsLength","length","loadIndex","Math","floor","SEARCH_RESULTS_OVER_SCAN_BUFFER","includes","value","offset","getNavigationRoute","id","docType","FILE","navigate","push","getDateFormat","date","newDate","Date","day","getDate","slice","month","getMonth","year","String","getYear","window","innerHeight","SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST","SEARCH_RESULTS_ITEM_SIZE","index","style","updated","name","updatedDate","propTypes","PropTypes","bool","isRequired","array","number","func","object","string","withRouter"],"sources":["../../../../src/components/SearchAdmin/SearchResults/SearchResults.js"],"sourcesContent":["/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport VirtualList from 'react-tiny-virtual-list';\nimport { withRouter } from 'react-router-dom';\nimport {\n SEARCH_RESULTS_OVER_SCAN_BUFFER,\n SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,\n SEARCH_RESULTS_ITEM_SIZE,\n FILE\n} from '../../../constants';\n\nconst SearchResults = ({\n currentValue,\n loading,\n results,\n total,\n setQueryParams,\n closeModal,\n history\n}) => {\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const handleRenderedItems = async ({ startIndex }) => {\n const rowsLength = results.length;\n const loadIndex = Math.floor(rowsLength / 2) - SEARCH_RESULTS_OVER_SCAN_BUFFER;\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n setQueryParams({ value: currentValue, offset: results.length });\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setCurrentIndex(startIndex + SEARCH_RESULTS_OVER_SCAN_BUFFER);\n }\n };\n\n const getNavigationRoute = ({ id, docType }) =>\n docType === FILE ? `/media/edit/${id}` : `/data-listing/${docType}/update/${id}`;\n\n const navigate = ({ id, docType }) => {\n history.push(getNavigationRoute({ id, docType }));\n closeModal();\n };\n\n const getDateFormat = date => {\n const newDate = new Date(date);\n const day = `0${newDate.getDate()}`.slice(-2);\n const month = `0${newDate.getMonth() + 1}`.slice(-2);\n const year = String(newDate.getYear()).slice(-2);\n return `${day}.${month}.${year}`;\n };\n\n return (\n <>\n {loading && <span>Loading...</span>}\n <div className=\"modal__content modal__content--search\">\n <div className=\"header header--list\">\n <h2>{total} results</h2>\n </div>\n <VirtualList\n width=\"100%\"\n height={window.innerHeight - SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST}\n itemCount={results.length}\n itemSize={SEARCH_RESULTS_ITEM_SIZE}\n overscanCount={SEARCH_RESULTS_OVER_SCAN_BUFFER}\n scrollToIndex={currentIndex}\n onItemsRendered={handleRenderedItems}\n renderItem={({ index, style }) => {\n const { id, docType, updated, name } = results[index];\n const updatedDate = updated ? getDateFormat(updated) : null;\n return (\n <div key={index} style={style} className=\"list__item--resultWrapper\">\n <div className=\"list__item list__item--result\">\n <div className=\"list__item-row list__item-row--result\">\n <span className=\"badge badge--primary\">\n {docType} {updatedDate}\n </span>\n <a\n href={getNavigationRoute({\n id,\n docType\n })}\n onClick={() =>\n navigate({\n id,\n docType\n })\n }\n className=\"list__item-text list__item-text--result\">\n {name}\n </a>\n </div>\n </div>\n </div>\n );\n }}\n />\n </div>\n </>\n );\n};\n\nSearchResults.propTypes = {\n loading: PropTypes.bool.isRequired,\n results: PropTypes.array.isRequired,\n total: PropTypes.number.isRequired,\n setQueryParams: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n currentValue: PropTypes.string.isRequired\n};\n\nexport default withRouter(SearchResults);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;AANA;;AACA;AAYA,IAAMA,aAAa,GAAG,SAAhBA,aAAgB,OAQhB;EAAA,IAPJC,YAOI,QAPJA,YAOI;EAAA,IANJC,OAMI,QANJA,OAMI;EAAA,IALJC,OAKI,QALJA,OAKI;EAAA,IAJJC,KAII,QAJJA,KAII;EAAA,IAHJC,cAGI,QAHJA,cAGI;EAAA,IAFJC,UAEI,QAFJA,UAEI;EAAA,IADJC,OACI,QADJA,OACI;;EACJ,gBAA4C,IAAAC,eAAA,EAAS,EAAT,CAA5C;EAAA;EAAA,IAAOC,cAAP;EAAA,IAAuBC,iBAAvB;;EACA,iBAAwC,IAAAF,eAAA,EAAS,CAAT,CAAxC;EAAA;EAAA,IAAOG,YAAP;EAAA,IAAqBC,eAArB;;EAEA,IAAMC,mBAAmB;IAAA,0FAAG;MAAA;MAAA;QAAA;UAAA;YAAA;cAASC,UAAT,SAASA,UAAT;cACpBC,UADoB,GACPZ,OAAO,CAACa,MADD;cAEpBC,SAFoB,GAERC,IAAI,CAACC,KAAL,CAAWJ,UAAU,GAAG,CAAxB,IAA6BK,0CAFrB;;cAG1B,IAAIH,SAAS,GAAG,CAAZ,IAAiBA,SAAS,GAAGH,UAA7B,IAA2C,CAACL,cAAc,CAACY,QAAf,CAAwBJ,SAAxB,CAAhD,EAAoF;gBAClFZ,cAAc,CAAC;kBAAEiB,KAAK,EAAErB,YAAT;kBAAuBsB,MAAM,EAAEpB,OAAO,CAACa;gBAAvC,CAAD,CAAd;gBACAN,iBAAiB,+CAAKD,cAAL,IAAqBQ,SAArB,GAAjB;gBACAL,eAAe,CAACE,UAAU,GAAGM,0CAAd,CAAf;cACD;;YAPyB;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA,CAAH;;IAAA,gBAAnBP,mBAAmB;MAAA;IAAA;EAAA,GAAzB;;EAUA,IAAMW,kBAAkB,GAAG,SAArBA,kBAAqB;IAAA,IAAGC,EAAH,SAAGA,EAAH;IAAA,IAAOC,OAAP,SAAOA,OAAP;IAAA,OACzBA,OAAO,KAAKC,eAAZ,yBAAkCF,EAAlC,4BAA0DC,OAA1D,qBAA4ED,EAA5E,CADyB;EAAA,CAA3B;;EAGA,IAAMG,QAAQ,GAAG,SAAXA,QAAW,QAAqB;IAAA,IAAlBH,EAAkB,SAAlBA,EAAkB;IAAA,IAAdC,OAAc,SAAdA,OAAc;IACpCnB,OAAO,CAACsB,IAAR,CAAaL,kBAAkB,CAAC;MAAEC,EAAE,EAAFA,EAAF;MAAMC,OAAO,EAAPA;IAAN,CAAD,CAA/B;IACApB,UAAU;EACX,CAHD;;EAKA,IAAMwB,aAAa,GAAG,SAAhBA,aAAgB,CAAAC,IAAI,EAAI;IAC5B,IAAMC,OAAO,GAAG,IAAIC,IAAJ,CAASF,IAAT,CAAhB;IACA,IAAMG,GAAG,GAAG,WAAIF,OAAO,CAACG,OAAR,EAAJ,EAAwBC,KAAxB,CAA8B,CAAC,CAA/B,CAAZ;IACA,IAAMC,KAAK,GAAG,WAAIL,OAAO,CAACM,QAAR,KAAqB,CAAzB,EAA6BF,KAA7B,CAAmC,CAAC,CAApC,CAAd;IACA,IAAMG,IAAI,GAAGC,MAAM,CAACR,OAAO,CAACS,OAAR,EAAD,CAAN,CAA0BL,KAA1B,CAAgC,CAAC,CAAjC,CAAb;IACA,iBAAUF,GAAV,cAAiBG,KAAjB,cAA0BE,IAA1B;EACD,CAND;;EAQA,oBACE,kEACGrC,OAAO,iBAAI,2DADd,eAEE;IAAK,SAAS,EAAC;EAAf,gBACE;IAAK,SAAS,EAAC;EAAf,gBACE,4CAAKE,KAAL,aADF,CADF,eAIE,gCAAC,gCAAD;IACE,KAAK,EAAC,MADR;IAEE,MAAM,EAAEsC,MAAM,CAACC,WAAP,GAAqBC,mDAF/B;IAGE,SAAS,EAAEzC,OAAO,CAACa,MAHrB;IAIE,QAAQ,EAAE6B,mCAJZ;IAKE,aAAa,EAAEzB,0CALjB;IAME,aAAa,EAAET,YANjB;IAOE,eAAe,EAAEE,mBAPnB;IAQE,UAAU,EAAE,2BAAsB;MAAA,IAAnBiC,KAAmB,SAAnBA,KAAmB;MAAA,IAAZC,KAAY,SAAZA,KAAY;MAChC,qBAAuC5C,OAAO,CAAC2C,KAAD,CAA9C;MAAA,IAAQrB,EAAR,kBAAQA,EAAR;MAAA,IAAYC,OAAZ,kBAAYA,OAAZ;MAAA,IAAqBsB,OAArB,kBAAqBA,OAArB;MAAA,IAA8BC,IAA9B,kBAA8BA,IAA9B;MACA,IAAMC,WAAW,GAAGF,OAAO,GAAGlB,aAAa,CAACkB,OAAD,CAAhB,GAA4B,IAAvD;MACA,oBACE;QAAK,GAAG,EAAEF,KAAV;QAAiB,KAAK,EAAEC,KAAxB;QAA+B,SAAS,EAAC;MAAzC,gBACE;QAAK,SAAS,EAAC;MAAf,gBACE;QAAK,SAAS,EAAC;MAAf,gBACE;QAAM,SAAS,EAAC;MAAhB,GACGrB,OADH,OACawB,WADb,CADF,eAIE;QACE,IAAI,EAAE1B,kBAAkB,CAAC;UACvBC,EAAE,EAAFA,EADuB;UAEvBC,OAAO,EAAPA;QAFuB,CAAD,CAD1B;QAKE,OAAO,EAAE;UAAA,OACPE,QAAQ,CAAC;YACPH,EAAE,EAAFA,EADO;YAEPC,OAAO,EAAPA;UAFO,CAAD,CADD;QAAA,CALX;QAWE,SAAS,EAAC;MAXZ,GAYGuB,IAZH,CAJF,CADF,CADF,CADF;IAyBD;EApCH,EAJF,CAFF,CADF;AAgDD,CAtFD;;AAwFAjD,aAAa,CAACmD,SAAd,GAA0B;EACxBjD,OAAO,EAAEkD,qBAAA,CAAUC,IAAV,CAAeC,UADA;EAExBnD,OAAO,EAAEiD,qBAAA,CAAUG,KAAV,CAAgBD,UAFD;EAGxBlD,KAAK,EAAEgD,qBAAA,CAAUI,MAAV,CAAiBF,UAHA;EAIxBjD,cAAc,EAAE+C,qBAAA,CAAUK,IAAV,CAAeH,UAJP;EAKxBhD,UAAU,EAAE8C,qBAAA,CAAUK,IAAV,CAAeH,UALH;EAMxB/C,OAAO,EAAE6C,qBAAA,CAAUM,MAAV,CAAiBJ,UANF;EAOxBrD,YAAY,EAAEmD,qBAAA,CAAUO,MAAV,CAAiBL;AAPP,CAA1B;;eAUe,IAAAM,0BAAA,EAAW5D,aAAX,C"}
1
+ {"version":3,"file":"SearchResults.js","names":["SearchResults","currentValue","loading","results","total","setQueryParams","closeModal","history","useState","verifiedRanges","setVerifiedRanges","currentIndex","setCurrentIndex","handleRenderedItems","startIndex","rowsLength","length","loadIndex","Math","floor","SEARCH_RESULTS_OVER_SCAN_BUFFER","includes","value","offset","getNavigationRoute","id","docType","FILE","navigate","push","getDateFormat","date","newDate","Date","day","getDate","slice","month","getMonth","year","String","getYear","window","innerHeight","SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST","SEARCH_RESULTS_ITEM_SIZE","index","style","updated","name","entityIdentifier","published","created","status","updatedDate","createdDate","publishedDate","propTypes","PropTypes","bool","isRequired","array","number","func","object","string","withRouter"],"sources":["../../../../src/components/SearchAdmin/SearchResults/SearchResults.js"],"sourcesContent":["/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport VirtualList from 'react-tiny-virtual-list';\nimport { withRouter } from 'react-router-dom';\nimport {\n SEARCH_RESULTS_OVER_SCAN_BUFFER,\n SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST,\n SEARCH_RESULTS_ITEM_SIZE,\n FILE\n} from '../../../constants';\n\nconst SearchResults = ({\n currentValue,\n loading,\n results,\n total,\n setQueryParams,\n closeModal,\n history\n}) => {\n const [verifiedRanges, setVerifiedRanges] = useState([]);\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const handleRenderedItems = async ({ startIndex }) => {\n const rowsLength = results.length;\n const loadIndex = Math.floor(rowsLength / 2) - SEARCH_RESULTS_OVER_SCAN_BUFFER;\n if (loadIndex > 0 && loadIndex < startIndex && !verifiedRanges.includes(loadIndex)) {\n setQueryParams({ value: currentValue, offset: results.length });\n setVerifiedRanges([...verifiedRanges, loadIndex]);\n setCurrentIndex(startIndex + SEARCH_RESULTS_OVER_SCAN_BUFFER);\n }\n };\n\n const getNavigationRoute = ({ id, docType }) =>\n docType === FILE ? `/media/edit/${id}` : `/data-listing/${docType}/update/${id}`;\n\n const navigate = ({ id, docType }) => {\n history.push(getNavigationRoute({ id, docType }));\n closeModal();\n };\n\n const getDateFormat = date => {\n const newDate = new Date(date);\n const day = `0${newDate.getDate()}`.slice(-2);\n const month = `0${newDate.getMonth() + 1}`.slice(-2);\n const year = String(newDate.getYear()).slice(-2);\n return `${day}.${month}.${year}`;\n };\n\n return (\n <>\n {loading && <span>Loading...</span>}\n <div className=\"modal__content modal__content--search\">\n <div className=\"header header--list\">\n <h2 className=\"header--list--results\">\n About <b>{total}</b> search keywords results\n </h2>\n </div>\n <VirtualList\n width=\"100%\"\n height={window.innerHeight - SEARCH_RESULTS_ELEMETS_HEIGHT_ABOVE_LIST}\n itemCount={results.length}\n itemSize={SEARCH_RESULTS_ITEM_SIZE}\n overscanCount={SEARCH_RESULTS_OVER_SCAN_BUFFER}\n scrollToIndex={currentIndex}\n onItemsRendered={handleRenderedItems}\n renderItem={({ index, style }) => {\n const {\n id,\n docType,\n updated,\n name,\n entityIdentifier,\n published,\n created,\n status\n } = results[index];\n const updatedDate = updated ? getDateFormat(updated) : null;\n const createdDate = created ? getDateFormat(created) : null;\n const publishedDate = published ? getDateFormat(published) : null;\n return (\n <div key={index} style={style} className=\"list__item--resultWrapper\">\n <div className=\"list__item list__item--result\">\n <div className=\"list__item-row list__item-row--result\">\n <span className=\"list__item-identifier\">{entityIdentifier}</span>\n <a\n href={getNavigationRoute({\n id,\n docType\n })}\n onClick={() =>\n navigate({\n id,\n docType\n })\n }\n className=\"list__item-link\">\n {name}\n </a>\n\n <div className=\"list__item-dates\">\n {publishedDate && (\n <span>\n <b>Published: </b>\n {publishedDate}\n </span>\n )}\n <span>\n <b>Created: </b>\n {createdDate}\n </span>\n <span>\n <b>Updated: </b>\n {updatedDate}\n </span>\n </div>\n <div className=\"list__item-status\">\n {status && (\n <span>\n <b>Status: </b>\n {status}\n </span>\n )}\n </div>\n </div>\n </div>\n </div>\n );\n }}\n />\n </div>\n </>\n );\n};\n\nSearchResults.propTypes = {\n loading: PropTypes.bool.isRequired,\n results: PropTypes.array.isRequired,\n total: PropTypes.number.isRequired,\n setQueryParams: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n currentValue: PropTypes.string.isRequired\n};\n\nexport default withRouter(SearchResults);\n"],"mappings":"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"}
@@ -68,10 +68,15 @@ function useSearch(_ref) {
68
68
  searchedValue = _useState4[0],
69
69
  setSearchedValue = _useState4[1];
70
70
 
71
- var _useState5 = (0, _react.useState)(null),
71
+ var _useState5 = (0, _react.useState)([]),
72
72
  _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
73
- previousOffset = _useState6[0],
74
- setPreviousOffset = _useState6[1];
73
+ en = _useState6[0],
74
+ setEn = _useState6[1];
75
+
76
+ var _useState7 = (0, _react.useState)(null),
77
+ _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
78
+ previousOffset = _useState8[0],
79
+ setPreviousOffset = _useState8[1];
75
80
 
76
81
  var buildSearchQuery = _query["default"][queryKey];
77
82
 
@@ -108,6 +113,7 @@ function useSearch(_ref) {
108
113
  value = queryParams.value;
109
114
  var isNewValueSet = value && value !== searchedValue;
110
115
  var isNewOffsetSet = previousOffset !== null && offset !== previousOffset;
116
+ var notSameLength = en.length !== entities.length;
111
117
  var parsedEntities = entities.length ? entities.map(function (entity) {
112
118
  return {
113
119
  match: {
@@ -116,7 +122,7 @@ function useSearch(_ref) {
116
122
  };
117
123
  }) : [];
118
124
 
119
- if (isNewValueSet || isNewOffsetSet) {
125
+ if (isNewValueSet || isNewOffsetSet || notSameLength) {
120
126
  getSearchResults({
121
127
  variables: {
122
128
  limit: limit,
@@ -143,8 +149,9 @@ function useSearch(_ref) {
143
149
  });
144
150
  setSearchedValue(value);
145
151
  setPreviousOffset(offset);
152
+ setEn(entities);
146
153
  }
147
- }, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields]);
154
+ }, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields, entities.length, en.length]);
148
155
  return [{
149
156
  searchedValue: queryParams.value,
150
157
  loading: loading,
@@ -1 +1 @@
1
- {"version":3,"file":"useSearch.js","names":["useSearch","queryKey","resultKeys","entities","fields","useState","limit","offset","value","queryParams","setParams","searchedValue","setSearchedValue","previousOffset","setPreviousOffset","buildSearchQuery","searchQueries","useLazyQuery","ssr","getSearchResults","loading","data","search","results","total","jsonResults","handleQueryParams","newQueryParams","useEffect","isNewValueSet","isNewOffsetSet","parsedEntities","length","map","entity","match","docType","variables","rawQuery","query","bool","must","query_string","type","default_operator","should"],"sources":["../../../src/components/useSearch/useSearch.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { useLazyQuery } from '@apollo/client';\nimport searchQueries from '../../application/query';\n\nfunction useSearch({ queryKey, resultKeys, entities = [], fields }) {\n const [queryParams, setParams] = useState({ limit: 20, offset: 0, value: '' });\n const [searchedValue, setSearchedValue] = useState(null);\n const [previousOffset, setPreviousOffset] = useState(null);\n const buildSearchQuery = searchQueries[queryKey];\n const [\n getSearchResults,\n {\n loading,\n data: { search: { results, jsonResults, total } } = {\n search: { results: [], total: 0 }\n }\n }\n ] = useLazyQuery(buildSearchQuery({ resultKeys }), { ssr: false });\n // todo: remove ssr: false once this bug is resolved https://github.com/apollographql/apollo-client/issues/9108\n // without ssr: false clients can hang in ssr.\n\n const handleQueryParams = newQueryParams => {\n setParams({ ...queryParams, ...newQueryParams });\n };\n\n useEffect(\n () => {\n const { limit, offset, value } = queryParams;\n const isNewValueSet = value && value !== searchedValue;\n const isNewOffsetSet = previousOffset !== null && offset !== previousOffset;\n const parsedEntities = entities.length\n ? entities.map(entity => ({\n match: { docType: entity }\n }))\n : [];\n\n if (isNewValueSet || isNewOffsetSet) {\n getSearchResults({\n variables: {\n limit,\n offset,\n rawQuery: {\n query: {\n bool: {\n must: [\n {\n query_string: {\n query: value,\n fields,\n type: 'most_fields',\n default_operator: 'AND'\n }\n },\n {\n bool: {\n should: parsedEntities\n }\n }\n ]\n }\n }\n }\n }\n });\n setSearchedValue(value);\n setPreviousOffset(offset);\n }\n },\n [\n queryParams,\n queryParams.limit,\n queryParams.value,\n queryParams.offset,\n searchedValue,\n previousOffset,\n getSearchResults,\n entities,\n fields\n ]\n );\n\n return [\n { searchedValue: queryParams.value, loading, data: { results: results || jsonResults, total } },\n handleQueryParams\n ];\n}\n\nexport default useSearch;\n"],"mappings":"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"}
1
+ {"version":3,"file":"useSearch.js","names":["useSearch","queryKey","resultKeys","entities","fields","useState","limit","offset","value","queryParams","setParams","searchedValue","setSearchedValue","en","setEn","previousOffset","setPreviousOffset","buildSearchQuery","searchQueries","useLazyQuery","ssr","getSearchResults","loading","data","search","results","total","jsonResults","handleQueryParams","newQueryParams","useEffect","isNewValueSet","isNewOffsetSet","notSameLength","length","parsedEntities","map","entity","match","docType","variables","rawQuery","query","bool","must","query_string","type","default_operator","should"],"sources":["../../../src/components/useSearch/useSearch.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport { useLazyQuery } from '@apollo/client';\nimport searchQueries from '../../application/query';\n\nfunction useSearch({ queryKey, resultKeys, entities = [], fields }) {\n const [queryParams, setParams] = useState({ limit: 20, offset: 0, value: '' });\n const [searchedValue, setSearchedValue] = useState(null);\n const [en, setEn] = useState([]);\n const [previousOffset, setPreviousOffset] = useState(null);\n\n const buildSearchQuery = searchQueries[queryKey];\n const [\n getSearchResults,\n {\n loading,\n data: { search: { results, jsonResults, total } } = {\n search: { results: [], total: 0 }\n }\n }\n ] = useLazyQuery(buildSearchQuery({ resultKeys }), { ssr: false });\n // todo: remove ssr: false once this bug is resolved https://github.com/apollographql/apollo-client/issues/9108\n // without ssr: false clients can hang in ssr.\n\n const handleQueryParams = newQueryParams => {\n setParams({ ...queryParams, ...newQueryParams });\n };\n\n useEffect(\n () => {\n const { limit, offset, value } = queryParams;\n const isNewValueSet = value && value !== searchedValue;\n const isNewOffsetSet = previousOffset !== null && offset !== previousOffset;\n const notSameLength = en.length !== entities.length;\n const parsedEntities = entities.length\n ? entities.map(entity => ({\n match: { docType: entity }\n }))\n : [];\n\n if (isNewValueSet || isNewOffsetSet || notSameLength) {\n getSearchResults({\n variables: {\n limit,\n offset,\n rawQuery: {\n query: {\n bool: {\n must: [\n {\n query_string: {\n query: value,\n fields,\n type: 'most_fields',\n default_operator: 'AND'\n }\n },\n {\n bool: {\n should: parsedEntities\n }\n }\n ]\n }\n }\n }\n }\n });\n setSearchedValue(value);\n setPreviousOffset(offset);\n setEn(entities);\n }\n },\n [\n queryParams,\n queryParams.limit,\n queryParams.value,\n queryParams.offset,\n searchedValue,\n previousOffset,\n getSearchResults,\n entities,\n fields,\n entities.length,\n en.length\n ]\n );\n\n return [\n { searchedValue: queryParams.value, loading, data: { results: results || jsonResults, total } },\n handleQueryParams\n ];\n}\n\nexport default useSearch;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,SAASA,SAAT,OAAoE;EAAA,IAA/CC,QAA+C,QAA/CA,QAA+C;EAAA,IAArCC,UAAqC,QAArCA,UAAqC;EAAA,yBAAzBC,QAAyB;EAAA,IAAzBA,QAAyB,8BAAd,EAAc;EAAA,IAAVC,MAAU,QAAVA,MAAU;;EAClE,gBAAiC,IAAAC,eAAA,EAAS;IAAEC,KAAK,EAAE,EAAT;IAAaC,MAAM,EAAE,CAArB;IAAwBC,KAAK,EAAE;EAA/B,CAAT,CAAjC;EAAA;EAAA,IAAOC,WAAP;EAAA,IAAoBC,SAApB;;EACA,iBAA0C,IAAAL,eAAA,EAAS,IAAT,CAA1C;EAAA;EAAA,IAAOM,aAAP;EAAA,IAAsBC,gBAAtB;;EACA,iBAAoB,IAAAP,eAAA,EAAS,EAAT,CAApB;EAAA;EAAA,IAAOQ,EAAP;EAAA,IAAWC,KAAX;;EACA,iBAA4C,IAAAT,eAAA,EAAS,IAAT,CAA5C;EAAA;EAAA,IAAOU,cAAP;EAAA,IAAuBC,iBAAvB;;EAEA,IAAMC,gBAAgB,GAAGC,iBAAA,CAAcjB,QAAd,CAAzB;;EACA,oBAQI,IAAAkB,oBAAA,EAAaF,gBAAgB,CAAC;IAAEf,UAAU,EAAVA;EAAF,CAAD,CAA7B,EAA+C;IAAEkB,GAAG,EAAE;EAAP,CAA/C,CARJ;EAAA;EAAA,IACEC,gBADF;EAAA;EAAA,IAGIC,OAHJ,mBAGIA,OAHJ;EAAA,2CAIIC,IAJJ;;EAAA,yDAIwD;IAClDC,MAAM,EAAE;MAAEC,OAAO,EAAE,EAAX;MAAeC,KAAK,EAAE;IAAtB;EAD0C,CAJxD;EAAA,iDAIYF,MAJZ;EAAA,IAIsBC,OAJtB,yBAIsBA,OAJtB;EAAA,IAI+BE,WAJ/B,yBAI+BA,WAJ/B;EAAA,IAI4CD,KAJ5C,yBAI4CA,KAJ5C,CAPkE,CAgBlE;EACA;;EAEA,IAAME,iBAAiB,GAAG,SAApBA,iBAAoB,CAAAC,cAAc,EAAI;IAC1CnB,SAAS,iCAAMD,WAAN,GAAsBoB,cAAtB,EAAT;EACD,CAFD;;EAIA,IAAAC,gBAAA,EACE,YAAM;IACJ,IAAQxB,KAAR,GAAiCG,WAAjC,CAAQH,KAAR;IAAA,IAAeC,MAAf,GAAiCE,WAAjC,CAAeF,MAAf;IAAA,IAAuBC,KAAvB,GAAiCC,WAAjC,CAAuBD,KAAvB;IACA,IAAMuB,aAAa,GAAGvB,KAAK,IAAIA,KAAK,KAAKG,aAAzC;IACA,IAAMqB,cAAc,GAAGjB,cAAc,KAAK,IAAnB,IAA2BR,MAAM,KAAKQ,cAA7D;IACA,IAAMkB,aAAa,GAAGpB,EAAE,CAACqB,MAAH,KAAc/B,QAAQ,CAAC+B,MAA7C;IACA,IAAMC,cAAc,GAAGhC,QAAQ,CAAC+B,MAAT,GACnB/B,QAAQ,CAACiC,GAAT,CAAa,UAAAC,MAAM;MAAA,OAAK;QACtBC,KAAK,EAAE;UAAEC,OAAO,EAAEF;QAAX;MADe,CAAL;IAAA,CAAnB,CADmB,GAInB,EAJJ;;IAMA,IAAIN,aAAa,IAAIC,cAAjB,IAAmCC,aAAvC,EAAsD;MACpDZ,gBAAgB,CAAC;QACfmB,SAAS,EAAE;UACTlC,KAAK,EAALA,KADS;UAETC,MAAM,EAANA,MAFS;UAGTkC,QAAQ,EAAE;YACRC,KAAK,EAAE;cACLC,IAAI,EAAE;gBACJC,IAAI,EAAE,CACJ;kBACEC,YAAY,EAAE;oBACZH,KAAK,EAAElC,KADK;oBAEZJ,MAAM,EAANA,MAFY;oBAGZ0C,IAAI,EAAE,aAHM;oBAIZC,gBAAgB,EAAE;kBAJN;gBADhB,CADI,EASJ;kBACEJ,IAAI,EAAE;oBACJK,MAAM,EAAEb;kBADJ;gBADR,CATI;cADF;YADD;UADC;QAHD;MADI,CAAD,CAAhB;MA2BAvB,gBAAgB,CAACJ,KAAD,CAAhB;MACAQ,iBAAiB,CAACT,MAAD,CAAjB;MACAO,KAAK,CAACX,QAAD,CAAL;IACD;EACF,CA5CH,EA6CE,CACEM,WADF,EAEEA,WAAW,CAACH,KAFd,EAGEG,WAAW,CAACD,KAHd,EAIEC,WAAW,CAACF,MAJd,EAKEI,aALF,EAMEI,cANF,EAOEM,gBAPF,EAQElB,QARF,EASEC,MATF,EAUED,QAAQ,CAAC+B,MAVX,EAWErB,EAAE,CAACqB,MAXL,CA7CF;EA4DA,OAAO,CACL;IAAEvB,aAAa,EAAEF,WAAW,CAACD,KAA7B;IAAoCc,OAAO,EAAPA,OAApC;IAA6CC,IAAI,EAAE;MAAEE,OAAO,EAAEA,OAAO,IAAIE,WAAtB;MAAmCD,KAAK,EAALA;IAAnC;EAAnD,CADK,EAELE,iBAFK,CAAP;AAID;;eAEc5B,S"}