@blaze-cms/plugin-search-ui 0.146.0-rc-eagle.0 → 0.146.0-rc-eagle-3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/lib-es/application/query/index.js +33 -0
  2. package/lib-es/application/query/index.js.map +1 -0
  3. package/lib-es/components/SearchAdmin/RecentSearches/RecentSearches.js +38 -0
  4. package/lib-es/components/SearchAdmin/RecentSearches/RecentSearches.js.map +1 -0
  5. package/lib-es/components/SearchAdmin/RecentSearches/index.js +3 -0
  6. package/lib-es/components/SearchAdmin/RecentSearches/index.js.map +1 -0
  7. package/lib-es/components/SearchAdmin/SearchAdmin.js +147 -0
  8. package/lib-es/components/SearchAdmin/SearchAdmin.js.map +1 -0
  9. package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js +76 -0
  10. package/lib-es/components/SearchAdmin/SearchAdminSideBar/SearchAdminSideBar.js.map +1 -0
  11. package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js +3 -0
  12. package/lib-es/components/SearchAdmin/SearchAdminSideBar/index.js.map +1 -0
  13. package/lib-es/components/SearchAdmin/SearchBar/SearchBar.js +52 -0
  14. package/lib-es/components/SearchAdmin/SearchBar/SearchBar.js.map +1 -0
  15. package/lib-es/components/SearchAdmin/SearchBar/index.js +3 -0
  16. package/lib-es/components/SearchAdmin/SearchBar/index.js.map +1 -0
  17. package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js +151 -0
  18. package/lib-es/components/SearchAdmin/SearchResults/SearchResults.js.map +1 -0
  19. package/lib-es/components/SearchAdmin/SearchResults/index.js +3 -0
  20. package/lib-es/components/SearchAdmin/SearchResults/index.js.map +1 -0
  21. package/lib-es/components/SearchAdmin/TriggerModal/TriggerModal.js +14 -0
  22. package/lib-es/components/SearchAdmin/TriggerModal/TriggerModal.js.map +1 -0
  23. package/lib-es/components/SearchAdmin/TriggerModal/index.js +3 -0
  24. package/lib-es/components/SearchAdmin/TriggerModal/index.js.map +1 -0
  25. package/lib-es/components/SearchAdmin/index.js +3 -0
  26. package/lib-es/components/SearchAdmin/index.js.map +1 -0
  27. package/lib-es/components/SearchPublishedContent/SearchPublishedContent.js +148 -0
  28. package/lib-es/components/SearchPublishedContent/SearchPublishedContent.js.map +1 -0
  29. package/lib-es/components/SearchPublishedContent/index.js +3 -0
  30. package/lib-es/components/SearchPublishedContent/index.js.map +1 -0
  31. package/lib-es/components/useLocalStorage/index.js +3 -0
  32. package/lib-es/components/useLocalStorage/index.js.map +1 -0
  33. package/lib-es/components/useLocalStorage/useLocalStorage.js +15 -0
  34. package/lib-es/components/useLocalStorage/useLocalStorage.js.map +1 -0
  35. package/lib-es/components/useSearch/index.js +3 -0
  36. package/lib-es/components/useSearch/index.js.map +1 -0
  37. package/lib-es/components/useSearch/useSearch.js +109 -0
  38. package/lib-es/components/useSearch/useSearch.js.map +1 -0
  39. package/lib-es/components/useSearchResults/index.js +3 -0
  40. package/lib-es/components/useSearchResults/index.js.map +1 -0
  41. package/lib-es/components/useSearchResults/useSearchResults.js +53 -0
  42. package/lib-es/components/useSearchResults/useSearchResults.js.map +1 -0
  43. package/lib-es/constants.js +11 -0
  44. package/lib-es/constants.js.map +1 -0
  45. package/lib-es/hooks/index.js +3 -0
  46. package/lib-es/hooks/index.js.map +1 -0
  47. package/lib-es/hooks/useDebounceSearch.js +44 -0
  48. package/lib-es/hooks/useDebounceSearch.js.map +1 -0
  49. package/lib-es/index.js +6 -0
  50. package/lib-es/index.js.map +1 -0
  51. package/package.json +12 -6
  52. package/CHANGELOG.md +0 -914
  53. package/babel.config.js +0 -3
  54. package/jest.config.js +0 -5
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ const TriggerModal = ({
4
+ toggleSearchModal
5
+ }) => /*#__PURE__*/React.createElement("span", {
6
+ role: "button",
7
+ className: "material-icons searchModal-search-icon",
8
+ onClick: toggleSearchModal
9
+ }, "search");
10
+ TriggerModal.propTypes = {
11
+ toggleSearchModal: PropTypes.func.isRequired
12
+ };
13
+ export default TriggerModal;
14
+ //# sourceMappingURL=TriggerModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TriggerModal.js","names":["React","PropTypes","TriggerModal","toggleSearchModal","createElement","role","className","onClick","propTypes","func","isRequired"],"sources":["../../../../src/components/SearchAdmin/TriggerModal/TriggerModal.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst TriggerModal = ({ toggleSearchModal }) => (\n <span\n role=\"button\"\n className=\"material-icons searchModal-search-icon\"\n onClick={toggleSearchModal}>\n search\n </span>\n);\n\nTriggerModal.propTypes = {\n toggleSearchModal: PropTypes.func.isRequired\n};\n\nexport default TriggerModal;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,MAAMC,YAAY,GAAGA,CAAC;EAAEC;AAAkB,CAAC,kBACzCH,KAAA,CAAAI,aAAA;EACEC,IAAI,EAAC,QAAQ;EACbC,SAAS,EAAC,wCAAwC;EAClDC,OAAO,EAAEJ;AAAkB,GAAC,QAExB,CACP;AAEDD,YAAY,CAACM,SAAS,GAAG;EACvBL,iBAAiB,EAAEF,SAAS,CAACQ,IAAI,CAACC;AACpC,CAAC;AAED,eAAeR,YAAY","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import TriggerModal from './TriggerModal';
2
+ export default TriggerModal;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["TriggerModal"],"sources":["../../../../src/components/SearchAdmin/TriggerModal/index.js"],"sourcesContent":["import TriggerModal from './TriggerModal';\n\nexport default TriggerModal;\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,gBAAgB;AAEzC,eAAeA,YAAY","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import SearchAdmin from './SearchAdmin';
2
+ export default SearchAdmin;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["SearchAdmin"],"sources":["../../../src/components/SearchAdmin/index.js"],"sourcesContent":["import SearchAdmin from './SearchAdmin';\n\nexport default SearchAdmin;\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,eAAe;AAEvC,eAAeA,WAAW","ignoreList":[]}
@@ -0,0 +1,148 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import classnames from 'classnames';
3
+ import PropTypes from 'prop-types';
4
+ import { MdClose, MdSearch } from 'react-icons/md';
5
+ import { useDebounce } from '@blaze-react/utils/lib/customHooks';
6
+ import useSearchResults from '../useSearchResults';
7
+ import { SEARCH_PUBLISHED, DEFAULT_RESULTS_KEYS, SEARCH_BUTTON } from '../../constants';
8
+ const SearchPublishedContent = ({
9
+ entities,
10
+ children,
11
+ resultKeys,
12
+ getIsOpenSearchBar,
13
+ SearchIcon,
14
+ CloseIcon,
15
+ className,
16
+ onChange,
17
+ placeholder,
18
+ onEnterPress,
19
+ inputRef,
20
+ isSearchBarOpen,
21
+ fields
22
+ }) => {
23
+ const [displaySearchBar, setDisplaySearchBar] = useState(isSearchBarOpen);
24
+ const [searchTerm, setSearchTerm] = useState('');
25
+ const [previousSearchTerm, setPreviousSearchTerm] = useState(null);
26
+ const debouncedSearchTerm = useDebounce(searchTerm, 500);
27
+ const [{
28
+ loading,
29
+ results
30
+ }, setQueryParams] = useSearchResults({
31
+ queryKey: SEARCH_PUBLISHED,
32
+ resultKeys,
33
+ entities,
34
+ fields
35
+ });
36
+ useEffect(() => {
37
+ if (isSearchBarOpen !== displaySearchBar) {
38
+ setDisplaySearchBar(isSearchBarOpen);
39
+ }
40
+ },
41
+ // eslint-disable-next-line react-hooks/exhaustive-deps
42
+ [isSearchBarOpen]);
43
+ useEffect(() => {
44
+ if (inputRef && inputRef.current && displaySearchBar) {
45
+ inputRef.current.focus();
46
+ }
47
+ },
48
+ // eslint-disable-next-line react-hooks/exhaustive-deps
49
+ [displaySearchBar]);
50
+ useEffect(() => {
51
+ if (debouncedSearchTerm && debouncedSearchTerm !== previousSearchTerm) {
52
+ setQueryParams({
53
+ value: `${debouncedSearchTerm}*`
54
+ });
55
+ setPreviousSearchTerm(debouncedSearchTerm);
56
+ }
57
+ }, [debouncedSearchTerm, previousSearchTerm, setQueryParams]);
58
+ const handleOnChange = ({
59
+ target: {
60
+ value = ''
61
+ } = {}
62
+ }) => {
63
+ onChange(value);
64
+ setSearchTerm(value);
65
+ };
66
+ const handleKeyPress = event => {
67
+ const onEnter = event.key === 'Enter';
68
+ onEnter && onEnterPress();
69
+ };
70
+ const handleSearchBar = () => {
71
+ const voidSearchTerm = '';
72
+ displaySearchBar && setSearchTerm(voidSearchTerm);
73
+ handleOnChange({
74
+ value: voidSearchTerm
75
+ });
76
+ if (isSearchBarOpen !== null) {
77
+ getIsOpenSearchBar(!displaySearchBar);
78
+ }
79
+ setDisplaySearchBar(!displaySearchBar);
80
+ };
81
+ const searchWrapperClassname = classnames('search__wrapper', {
82
+ 'search__wrapper--toggle-display': displaySearchBar,
83
+ 'search__wrapper--toggle': !displaySearchBar
84
+ });
85
+ const triggerClassname = classnames('search__icon', {
86
+ open: displaySearchBar
87
+ });
88
+ return /*#__PURE__*/React.createElement("div", {
89
+ className: `search-wrapper ${className}`
90
+ }, /*#__PURE__*/React.createElement("div", {
91
+ className: "search search--header search--toggle"
92
+ }, /*#__PURE__*/React.createElement("div", {
93
+ className: searchWrapperClassname
94
+ }, /*#__PURE__*/React.createElement("input", {
95
+ "data-testid": "search-input",
96
+ onKeyPress: handleKeyPress,
97
+ placeholder: placeholder,
98
+ type: "text",
99
+ onChange: handleOnChange,
100
+ value: searchTerm,
101
+ ref: inputRef
102
+ }), /*#__PURE__*/React.createElement("button", {
103
+ type: "button",
104
+ className: "icon-button icon-button--search icon-button--toggle"
105
+ }, /*#__PURE__*/React.createElement(SearchIcon, null))), /*#__PURE__*/React.createElement("div", {
106
+ role: "button",
107
+ className: triggerClassname,
108
+ onClick: handleSearchBar,
109
+ id: SEARCH_BUTTON,
110
+ title: SEARCH_BUTTON
111
+ }, !displaySearchBar ? /*#__PURE__*/React.createElement(SearchIcon, null) : /*#__PURE__*/React.createElement(CloseIcon, null))), /*#__PURE__*/React.createElement("div", {
112
+ className: "search-modal"
113
+ }, children({
114
+ results: results.length && searchTerm ? results : [],
115
+ loading
116
+ })));
117
+ };
118
+ SearchPublishedContent.propTypes = {
119
+ entities: PropTypes.array,
120
+ children: PropTypes.func.isRequired,
121
+ resultKeys: PropTypes.string,
122
+ getIsOpenSearchBar: PropTypes.func,
123
+ SearchIcon: PropTypes.func,
124
+ CloseIcon: PropTypes.func,
125
+ onChange: PropTypes.func,
126
+ onEnterPress: PropTypes.func,
127
+ className: PropTypes.string,
128
+ placeholder: PropTypes.string,
129
+ inputRef: PropTypes.object,
130
+ isSearchBarOpen: PropTypes.bool,
131
+ fields: PropTypes.array
132
+ };
133
+ SearchPublishedContent.defaultProps = {
134
+ entities: ['published_page'],
135
+ placeholder: '',
136
+ resultKeys: DEFAULT_RESULTS_KEYS,
137
+ onChange: () => {},
138
+ onEnterPress: () => {},
139
+ getIsOpenSearchBar: state => state,
140
+ SearchIcon: () => /*#__PURE__*/React.createElement("i", null, /*#__PURE__*/React.createElement(MdSearch, null)),
141
+ CloseIcon: () => /*#__PURE__*/React.createElement("i", null, /*#__PURE__*/React.createElement(MdClose, null)),
142
+ className: '',
143
+ inputRef: null,
144
+ isSearchBarOpen: null,
145
+ fields: []
146
+ };
147
+ export default SearchPublishedContent;
148
+ //# sourceMappingURL=SearchPublishedContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPublishedContent.js","names":["React","useState","useEffect","classnames","PropTypes","MdClose","MdSearch","useDebounce","useSearchResults","SEARCH_PUBLISHED","DEFAULT_RESULTS_KEYS","SEARCH_BUTTON","SearchPublishedContent","entities","children","resultKeys","getIsOpenSearchBar","SearchIcon","CloseIcon","className","onChange","placeholder","onEnterPress","inputRef","isSearchBarOpen","fields","displaySearchBar","setDisplaySearchBar","searchTerm","setSearchTerm","previousSearchTerm","setPreviousSearchTerm","debouncedSearchTerm","loading","results","setQueryParams","queryKey","current","focus","value","handleOnChange","target","handleKeyPress","event","onEnter","key","handleSearchBar","voidSearchTerm","searchWrapperClassname","triggerClassname","open","createElement","onKeyPress","type","ref","role","onClick","id","title","length","propTypes","array","func","isRequired","string","object","bool","defaultProps","state"],"sources":["../../../src/components/SearchPublishedContent/SearchPublishedContent.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { MdClose, MdSearch } from 'react-icons/md';\nimport { useDebounce } from '@blaze-react/utils/lib/customHooks';\nimport useSearchResults from '../useSearchResults';\nimport { SEARCH_PUBLISHED, DEFAULT_RESULTS_KEYS, SEARCH_BUTTON } from '../../constants';\n\nconst SearchPublishedContent = ({\n entities,\n children,\n resultKeys,\n getIsOpenSearchBar,\n SearchIcon,\n CloseIcon,\n className,\n onChange,\n placeholder,\n onEnterPress,\n inputRef,\n isSearchBarOpen,\n fields\n}) => {\n const [displaySearchBar, setDisplaySearchBar] = useState(isSearchBarOpen);\n const [searchTerm, setSearchTerm] = useState('');\n const [previousSearchTerm, setPreviousSearchTerm] = useState(null);\n const debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n const [{ loading, results }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_PUBLISHED,\n resultKeys,\n entities,\n fields\n });\n\n useEffect(\n () => {\n if (isSearchBarOpen !== displaySearchBar) {\n setDisplaySearchBar(isSearchBarOpen);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isSearchBarOpen]\n );\n\n useEffect(\n () => {\n if (inputRef && inputRef.current && displaySearchBar) {\n inputRef.current.focus();\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [displaySearchBar]\n );\n\n useEffect(() => {\n if (debouncedSearchTerm && debouncedSearchTerm !== previousSearchTerm) {\n setQueryParams({ value: `${debouncedSearchTerm}*` });\n setPreviousSearchTerm(debouncedSearchTerm);\n }\n }, [debouncedSearchTerm, previousSearchTerm, setQueryParams]);\n\n const handleOnChange = ({ target: { value = '' } = {} }) => {\n onChange(value);\n setSearchTerm(value);\n };\n\n const handleKeyPress = event => {\n const onEnter = event.key === 'Enter';\n onEnter && onEnterPress();\n };\n\n const handleSearchBar = () => {\n const voidSearchTerm = '';\n displaySearchBar && setSearchTerm(voidSearchTerm);\n handleOnChange({ value: voidSearchTerm });\n if (isSearchBarOpen !== null) {\n getIsOpenSearchBar(!displaySearchBar);\n }\n setDisplaySearchBar(!displaySearchBar);\n };\n\n const searchWrapperClassname = classnames('search__wrapper', {\n 'search__wrapper--toggle-display': displaySearchBar,\n 'search__wrapper--toggle': !displaySearchBar\n });\n\n const triggerClassname = classnames('search__icon', {\n open: displaySearchBar\n });\n\n return (\n <div className={`search-wrapper ${className}`}>\n <div className=\"search search--header search--toggle\">\n <div className={searchWrapperClassname}>\n <input\n data-testid=\"search-input\"\n onKeyPress={handleKeyPress}\n placeholder={placeholder}\n type=\"text\"\n onChange={handleOnChange}\n value={searchTerm}\n ref={inputRef}\n />\n <button type=\"button\" className=\"icon-button icon-button--search icon-button--toggle\">\n <SearchIcon />\n </button>\n </div>\n <div\n role=\"button\"\n className={triggerClassname}\n onClick={handleSearchBar}\n id={SEARCH_BUTTON}\n title={SEARCH_BUTTON}>\n {!displaySearchBar ? <SearchIcon /> : <CloseIcon />}\n </div>\n </div>\n <div className=\"search-modal\">\n {children({ results: results.length && searchTerm ? results : [], loading })}\n </div>\n </div>\n );\n};\n\nSearchPublishedContent.propTypes = {\n entities: PropTypes.array,\n children: PropTypes.func.isRequired,\n resultKeys: PropTypes.string,\n getIsOpenSearchBar: PropTypes.func,\n SearchIcon: PropTypes.func,\n CloseIcon: PropTypes.func,\n onChange: PropTypes.func,\n onEnterPress: PropTypes.func,\n className: PropTypes.string,\n placeholder: PropTypes.string,\n inputRef: PropTypes.object,\n isSearchBarOpen: PropTypes.bool,\n fields: PropTypes.array\n};\n\nSearchPublishedContent.defaultProps = {\n entities: ['published_page'],\n placeholder: '',\n resultKeys: DEFAULT_RESULTS_KEYS,\n onChange: () => {},\n onEnterPress: () => {},\n getIsOpenSearchBar: state => state,\n SearchIcon: () => (\n <i>\n <MdSearch />\n </i>\n ),\n CloseIcon: () => (\n <i>\n <MdClose />\n </i>\n ),\n className: '',\n inputRef: null,\n isSearchBarOpen: null,\n fields: []\n};\n\nexport default SearchPublishedContent;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import SearchPublishedContent from './SearchPublishedContent';
2
+ export default SearchPublishedContent;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["SearchPublishedContent"],"sources":["../../../src/components/SearchPublishedContent/index.js"],"sourcesContent":["import SearchPublishedContent from './SearchPublishedContent';\n\nexport default SearchPublishedContent;\n"],"mappings":"AAAA,OAAOA,sBAAsB,MAAM,0BAA0B;AAE7D,eAAeA,sBAAsB","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import useLocalStorage from './useLocalStorage';
2
+ export default useLocalStorage;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useLocalStorage"],"sources":["../../../src/components/useLocalStorage/index.js"],"sourcesContent":["import useLocalStorage from './useLocalStorage';\n\nexport default useLocalStorage;\n"],"mappings":"AAAA,OAAOA,eAAe,MAAM,mBAAmB;AAE/C,eAAeA,eAAe","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { useState } from 'react';
2
+ function useLocalStorage(key, initialValue) {
3
+ const [storedValue, setStoredValue] = useState(() => {
4
+ const item = window.localStorage.getItem(key);
5
+ return item ? JSON.parse(item) : initialValue;
6
+ });
7
+ const setValue = value => {
8
+ const valueToStore = value instanceof Function ? value(storedValue) : value;
9
+ setStoredValue(valueToStore);
10
+ window.localStorage.setItem(key, JSON.stringify(valueToStore));
11
+ };
12
+ return [storedValue, setValue];
13
+ }
14
+ export default useLocalStorage;
15
+ //# sourceMappingURL=useLocalStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLocalStorage.js","names":["useState","useLocalStorage","key","initialValue","storedValue","setStoredValue","item","window","localStorage","getItem","JSON","parse","setValue","value","valueToStore","Function","setItem","stringify"],"sources":["../../../src/components/useLocalStorage/useLocalStorage.js"],"sourcesContent":["import { useState } from 'react';\n\nfunction useLocalStorage(key, initialValue) {\n const [storedValue, setStoredValue] = useState(() => {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n });\n\n const setValue = value => {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n };\n\n return [storedValue, setValue];\n}\n\nexport default useLocalStorage;\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAASC,eAAeA,CAACC,GAAG,EAAEC,YAAY,EAAE;EAC1C,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGL,QAAQ,CAAC,MAAM;IACnD,MAAMM,IAAI,GAAGC,MAAM,CAACC,YAAY,CAACC,OAAO,CAACP,GAAG,CAAC;IAC7C,OAAOI,IAAI,GAAGI,IAAI,CAACC,KAAK,CAACL,IAAI,CAAC,GAAGH,YAAY;EAC/C,CAAC,CAAC;EAEF,MAAMS,QAAQ,GAAGC,KAAK,IAAI;IACxB,MAAMC,YAAY,GAAGD,KAAK,YAAYE,QAAQ,GAAGF,KAAK,CAACT,WAAW,CAAC,GAAGS,KAAK;IAC3ER,cAAc,CAACS,YAAY,CAAC;IAC5BP,MAAM,CAACC,YAAY,CAACQ,OAAO,CAACd,GAAG,EAAEQ,IAAI,CAACO,SAAS,CAACH,YAAY,CAAC,CAAC;EAChE,CAAC;EAED,OAAO,CAACV,WAAW,EAAEQ,QAAQ,CAAC;AAChC;AAEA,eAAeX,eAAe","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import useSearch from './useSearch';
2
+ export default useSearch;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useSearch"],"sources":["../../../src/components/useSearch/index.js"],"sourcesContent":["import useSearch from './useSearch';\n\nexport default useSearch;\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,aAAa;AAEnC,eAAeA,SAAS","ignoreList":[]}
@@ -0,0 +1,109 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { useState, useEffect } from 'react';
5
+ import { useLazyQuery } from '@apollo/client';
6
+ import searchQueries from '../../application/query';
7
+ function useSearch({
8
+ queryKey,
9
+ resultKeys,
10
+ entities = [],
11
+ fields,
12
+ extraFilters,
13
+ queryHook
14
+ }) {
15
+ const [queryParams, setParams] = useState({
16
+ limit: 20,
17
+ offset: 0,
18
+ value: ''
19
+ });
20
+ const [searchedValue, setSearchedValue] = useState(null);
21
+ const [previousEntities, setPreviousEntities] = useState([]);
22
+ const [previousOffset, setPreviousOffset] = useState(null);
23
+ const buildSearchQuery = searchQueries[queryKey];
24
+ const [getSearchResults, {
25
+ loading,
26
+ data = {}
27
+ } = {}] = useLazyQuery(buildSearchQuery({
28
+ resultKeys
29
+ }), {
30
+ ssr: false
31
+ });
32
+ const {
33
+ search
34
+ } = data;
35
+ const defaultSearch = {
36
+ results: [],
37
+ jsonResults: null,
38
+ total: 0
39
+ };
40
+ const {
41
+ results,
42
+ jsonResults,
43
+ total
44
+ } = search !== null && search !== void 0 ? search : defaultSearch;
45
+
46
+ // todo: remove ssr: false once this bug is resolved https://github.com/apollographql/apollo-client/issues/9108
47
+ // without ssr: false clients can hang in ssr.
48
+
49
+ const handleQueryParams = newQueryParams => {
50
+ setParams(_objectSpread(_objectSpread({}, queryParams), newQueryParams));
51
+ };
52
+ useEffect(() => {
53
+ const {
54
+ limit,
55
+ offset,
56
+ value
57
+ } = queryParams;
58
+ const isNewValueSet = value && value !== searchedValue;
59
+ const isNewOffsetSet = previousOffset !== null && offset !== previousOffset;
60
+ const notSameLength = previousEntities.length !== entities.length;
61
+ const parsedEntities = entities.length ? entities.map(entity => ({
62
+ match: {
63
+ docType: entity
64
+ }
65
+ })) : [];
66
+ if (value && (isNewValueSet || isNewOffsetSet || notSameLength)) {
67
+ const variables = {
68
+ variables: {
69
+ limit,
70
+ offset,
71
+ rawQuery: {
72
+ query: {
73
+ bool: {
74
+ must: [{
75
+ query_string: {
76
+ query: value,
77
+ fields,
78
+ type: 'most_fields',
79
+ default_operator: 'AND',
80
+ extraFilters
81
+ }
82
+ }, {
83
+ bool: {
84
+ should: parsedEntities
85
+ }
86
+ }]
87
+ }
88
+ }
89
+ }
90
+ }
91
+ };
92
+ const updatedVariables = queryHook ? queryHook(variables) : variables;
93
+ getSearchResults(updatedVariables);
94
+ setSearchedValue(value);
95
+ setPreviousOffset(offset);
96
+ setPreviousEntities(entities);
97
+ }
98
+ }, [queryParams, queryParams.limit, queryParams.value, queryParams.offset, searchedValue, previousOffset, getSearchResults, entities, fields, entities.length, previousEntities.length, extraFilters, queryHook]);
99
+ return [{
100
+ searchedValue: queryParams.value,
101
+ loading,
102
+ data: {
103
+ results: results || jsonResults,
104
+ total
105
+ }
106
+ }, handleQueryParams];
107
+ }
108
+ export default useSearch;
109
+ //# sourceMappingURL=useSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSearch.js","names":["useState","useEffect","useLazyQuery","searchQueries","useSearch","queryKey","resultKeys","entities","fields","extraFilters","queryHook","queryParams","setParams","limit","offset","value","searchedValue","setSearchedValue","previousEntities","setPreviousEntities","previousOffset","setPreviousOffset","buildSearchQuery","getSearchResults","loading","data","ssr","search","defaultSearch","results","jsonResults","total","handleQueryParams","newQueryParams","_objectSpread","isNewValueSet","isNewOffsetSet","notSameLength","length","parsedEntities","map","entity","match","docType","variables","rawQuery","query","bool","must","query_string","type","default_operator","should","updatedVariables"],"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, extraFilters, queryHook }) {\n const [queryParams, setParams] = useState({ limit: 20, offset: 0, value: '' });\n const [searchedValue, setSearchedValue] = useState(null);\n const [previousEntities, setPreviousEntities] = useState([]);\n const [previousOffset, setPreviousOffset] = useState(null);\n const buildSearchQuery = searchQueries[queryKey];\n\n const [getSearchResults, { loading, data = {} } = {}] = useLazyQuery(\n buildSearchQuery({ resultKeys }),\n { ssr: false }\n );\n\n const { search } = data;\n\n const defaultSearch = {\n results: [],\n jsonResults: null,\n total: 0\n };\n\n const { results, jsonResults, total } = search ?? defaultSearch;\n\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 const { limit, offset, value } = queryParams;\n const isNewValueSet = value && value !== searchedValue;\n const isNewOffsetSet = previousOffset !== null && offset !== previousOffset;\n const notSameLength = previousEntities.length !== entities.length;\n const parsedEntities = entities.length\n ? entities.map(entity => ({\n match: { docType: entity }\n }))\n : [];\n\n if (value && (isNewValueSet || isNewOffsetSet || notSameLength)) {\n const variables = {\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 extraFilters\n }\n },\n {\n bool: {\n should: parsedEntities\n }\n }\n ]\n }\n }\n }\n }\n };\n const updatedVariables = queryHook ? queryHook(variables) : variables;\n getSearchResults(updatedVariables);\n setSearchedValue(value);\n setPreviousOffset(offset);\n setPreviousEntities(entities);\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 previousEntities.length,\n extraFilters,\n queryHook\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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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import useSearchResults from './useSearchResults';
2
+ export default useSearchResults;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useSearchResults"],"sources":["../../../src/components/useSearchResults/index.js"],"sourcesContent":["import useSearchResults from './useSearchResults';\n\nexport default useSearchResults;\n"],"mappings":"AAAA,OAAOA,gBAAgB,MAAM,oBAAoB;AAEjD,eAAeA,gBAAgB","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import { useState, useEffect } from 'react';
5
+ import useSearch from '../useSearch';
6
+ function useSearchResults({
7
+ queryKey,
8
+ resultKeys,
9
+ entities,
10
+ fields,
11
+ queryHook
12
+ }) {
13
+ const [currentResults, setCurrentResults] = useState([]);
14
+ const [allResults, setAllResults] = useState([]);
15
+ const [{
16
+ searchedValue,
17
+ loading,
18
+ data: {
19
+ results,
20
+ total
21
+ }
22
+ }, setParams] = useSearch({
23
+ queryKey,
24
+ resultKeys,
25
+ entities,
26
+ fields,
27
+ queryHook
28
+ });
29
+ useEffect(() => {
30
+ if (currentResults.length !== results.length) {
31
+ setAllResults([...allResults, ...results]);
32
+ setCurrentResults(results);
33
+ }
34
+ }, [allResults, currentResults, results]);
35
+ const clearList = params => {
36
+ setAllResults([]);
37
+ setParams(_objectSpread(_objectSpread({}, params), {}, {
38
+ offset: 0
39
+ }));
40
+ };
41
+ const setQueryParams = params => {
42
+ params.value !== searchedValue ? clearList(params) : setParams(params);
43
+ };
44
+ return [{
45
+ loading,
46
+ results: allResults,
47
+ currentResults,
48
+ newResults: results,
49
+ total
50
+ }, setQueryParams];
51
+ }
52
+ export default useSearchResults;
53
+ //# sourceMappingURL=useSearchResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSearchResults.js","names":["useState","useEffect","useSearch","useSearchResults","queryKey","resultKeys","entities","fields","queryHook","currentResults","setCurrentResults","allResults","setAllResults","searchedValue","loading","data","results","total","setParams","length","clearList","params","_objectSpread","offset","setQueryParams","value","newResults"],"sources":["../../../src/components/useSearchResults/useSearchResults.js"],"sourcesContent":["import { useState, useEffect } from 'react';\nimport useSearch from '../useSearch';\n\nfunction useSearchResults({ queryKey, resultKeys, entities, fields, queryHook }) {\n const [currentResults, setCurrentResults] = useState([]);\n const [allResults, setAllResults] = useState([]);\n const [\n {\n searchedValue,\n loading,\n data: { results, total }\n },\n setParams\n ] = useSearch({ queryKey, resultKeys, entities, fields, queryHook });\n\n useEffect(() => {\n if (currentResults.length !== results.length) {\n setAllResults([...allResults, ...results]);\n setCurrentResults(results);\n }\n }, [allResults, currentResults, results]);\n\n const clearList = params => {\n setAllResults([]);\n setParams({ ...params, offset: 0 });\n };\n\n const setQueryParams = params => {\n params.value !== searchedValue ? clearList(params) : setParams(params);\n };\n\n return [\n {\n loading,\n results: allResults,\n currentResults,\n newResults: results,\n total\n },\n setQueryParams\n ];\n}\n\nexport default useSearchResults;\n"],"mappings":";;;AAAA,SAASA,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AAC3C,OAAOC,SAAS,MAAM,cAAc;AAEpC,SAASC,gBAAgBA,CAAC;EAAEC,QAAQ;EAAEC,UAAU;EAAEC,QAAQ;EAAEC,MAAM;EAAEC;AAAU,CAAC,EAAE;EAC/E,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGV,QAAQ,CAAC,EAAE,CAAC;EACxD,MAAM,CAACW,UAAU,EAAEC,aAAa,CAAC,GAAGZ,QAAQ,CAAC,EAAE,CAAC;EAChD,MAAM,CACJ;IACEa,aAAa;IACbC,OAAO;IACPC,IAAI,EAAE;MAAEC,OAAO;MAAEC;IAAM;EACzB,CAAC,EACDC,SAAS,CACV,GAAGhB,SAAS,CAAC;IAAEE,QAAQ;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,MAAM;IAAEC;EAAU,CAAC,CAAC;EAEpEP,SAAS,CAAC,MAAM;IACd,IAAIQ,cAAc,CAACU,MAAM,KAAKH,OAAO,CAACG,MAAM,EAAE;MAC5CP,aAAa,CAAC,CAAC,GAAGD,UAAU,EAAE,GAAGK,OAAO,CAAC,CAAC;MAC1CN,iBAAiB,CAACM,OAAO,CAAC;IAC5B;EACF,CAAC,EAAE,CAACL,UAAU,EAAEF,cAAc,EAAEO,OAAO,CAAC,CAAC;EAEzC,MAAMI,SAAS,GAAGC,MAAM,IAAI;IAC1BT,aAAa,CAAC,EAAE,CAAC;IACjBM,SAAS,CAAAI,aAAA,CAAAA,aAAA,KAAMD,MAAM;MAAEE,MAAM,EAAE;IAAC,EAAE,CAAC;EACrC,CAAC;EAED,MAAMC,cAAc,GAAGH,MAAM,IAAI;IAC/BA,MAAM,CAACI,KAAK,KAAKZ,aAAa,GAAGO,SAAS,CAACC,MAAM,CAAC,GAAGH,SAAS,CAACG,MAAM,CAAC;EACxE,CAAC;EAED,OAAO,CACL;IACEP,OAAO;IACPE,OAAO,EAAEL,UAAU;IACnBF,cAAc;IACdiB,UAAU,EAAEV,OAAO;IACnBC;EACF,CAAC,EACDO,cAAc,CACf;AACH;AAEA,eAAerB,gBAAgB","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ const SEARCH_ADMIN = 'SEARCH_ADMIN';
2
+ const SEARCH_PUBLISHED = 'SEARCH_PUBLISHED';
3
+ const SEARCH_RESULTS_OVER_SCAN_BUFFER = 0;
4
+ const SEARCH_RESULTS_ELEMENTS_HEIGHT_ABOVE_LIST = 186;
5
+ const SEARCH_RESULTS_HEIGHT_OFFSET = 100;
6
+ const SEARCH_RESULTS_ITEM_SIZE = 105;
7
+ const DEFAULT_RESULTS_KEYS = 'name, url';
8
+ const SEARCH_BUTTON = 'search-button';
9
+ const FILE = 'file';
10
+ export { SEARCH_ADMIN, SEARCH_PUBLISHED, SEARCH_RESULTS_OVER_SCAN_BUFFER, SEARCH_RESULTS_ELEMENTS_HEIGHT_ABOVE_LIST, SEARCH_RESULTS_HEIGHT_OFFSET, SEARCH_RESULTS_ITEM_SIZE, DEFAULT_RESULTS_KEYS, SEARCH_BUTTON, FILE };
11
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":["SEARCH_ADMIN","SEARCH_PUBLISHED","SEARCH_RESULTS_OVER_SCAN_BUFFER","SEARCH_RESULTS_ELEMENTS_HEIGHT_ABOVE_LIST","SEARCH_RESULTS_HEIGHT_OFFSET","SEARCH_RESULTS_ITEM_SIZE","DEFAULT_RESULTS_KEYS","SEARCH_BUTTON","FILE"],"sources":["../src/constants.js"],"sourcesContent":["const SEARCH_ADMIN = 'SEARCH_ADMIN';\nconst SEARCH_PUBLISHED = 'SEARCH_PUBLISHED';\nconst SEARCH_RESULTS_OVER_SCAN_BUFFER = 0;\nconst SEARCH_RESULTS_ELEMENTS_HEIGHT_ABOVE_LIST = 186;\nconst SEARCH_RESULTS_HEIGHT_OFFSET = 100;\nconst SEARCH_RESULTS_ITEM_SIZE = 105;\nconst DEFAULT_RESULTS_KEYS = 'name, url';\nconst SEARCH_BUTTON = 'search-button';\nconst FILE = 'file';\n\nexport {\n SEARCH_ADMIN,\n SEARCH_PUBLISHED,\n SEARCH_RESULTS_OVER_SCAN_BUFFER,\n SEARCH_RESULTS_ELEMENTS_HEIGHT_ABOVE_LIST,\n SEARCH_RESULTS_HEIGHT_OFFSET,\n SEARCH_RESULTS_ITEM_SIZE,\n DEFAULT_RESULTS_KEYS,\n SEARCH_BUTTON,\n FILE\n};\n"],"mappings":"AAAA,MAAMA,YAAY,GAAG,cAAc;AACnC,MAAMC,gBAAgB,GAAG,kBAAkB;AAC3C,MAAMC,+BAA+B,GAAG,CAAC;AACzC,MAAMC,yCAAyC,GAAG,GAAG;AACrD,MAAMC,4BAA4B,GAAG,GAAG;AACxC,MAAMC,wBAAwB,GAAG,GAAG;AACpC,MAAMC,oBAAoB,GAAG,WAAW;AACxC,MAAMC,aAAa,GAAG,eAAe;AACrC,MAAMC,IAAI,GAAG,MAAM;AAEnB,SACER,YAAY,EACZC,gBAAgB,EAChBC,+BAA+B,EAC/BC,yCAAyC,EACzCC,4BAA4B,EAC5BC,wBAAwB,EACxBC,oBAAoB,EACpBC,aAAa,EACbC,IAAI","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import useDebounceSearch from './useDebounceSearch';
2
+ export default useDebounceSearch;
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useDebounceSearch"],"sources":["../../src/hooks/index.js"],"sourcesContent":["import useDebounceSearch from './useDebounceSearch';\n\nexport default useDebounceSearch;\n"],"mappings":"AAAA,OAAOA,iBAAiB,MAAM,qBAAqB;AAEnD,eAAeA,iBAAiB","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { useDebounce } from '@blaze-react/utils/lib/customHooks';
3
+ import useSearchResults from '../components/useSearchResults';
4
+ import { SEARCH_PUBLISHED } from '../constants';
5
+ const useDebounceSearch = ({
6
+ entities,
7
+ resultKeys,
8
+ fields,
9
+ initialSearchTerm,
10
+ queryHook
11
+ }) => {
12
+ const [searchTerm, setSearchTerm] = useState(initialSearchTerm !== null && initialSearchTerm !== void 0 ? initialSearchTerm : '');
13
+ const [previousSearchTerm, setPreviousSearchTerm] = useState(null);
14
+ const debouncedSearchTerm = useDebounce(searchTerm, 500);
15
+ const [{
16
+ loading,
17
+ results
18
+ }, setQueryParams] = useSearchResults({
19
+ queryKey: SEARCH_PUBLISHED,
20
+ resultKeys,
21
+ entities,
22
+ fields,
23
+ queryHook
24
+ });
25
+ useEffect(() => {
26
+ if (debouncedSearchTerm && debouncedSearchTerm !== previousSearchTerm) {
27
+ setQueryParams({
28
+ value: debouncedSearchTerm
29
+ });
30
+ setPreviousSearchTerm(debouncedSearchTerm);
31
+ }
32
+ }, [debouncedSearchTerm, previousSearchTerm, setQueryParams]);
33
+ return {
34
+ loading,
35
+ results,
36
+ searchTerm,
37
+ setSearchTerm,
38
+ setPreviousSearchTerm,
39
+ debouncedSearchTerm,
40
+ previousSearchTerm
41
+ };
42
+ };
43
+ export default useDebounceSearch;
44
+ //# sourceMappingURL=useDebounceSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebounceSearch.js","names":["useEffect","useState","useDebounce","useSearchResults","SEARCH_PUBLISHED","useDebounceSearch","entities","resultKeys","fields","initialSearchTerm","queryHook","searchTerm","setSearchTerm","previousSearchTerm","setPreviousSearchTerm","debouncedSearchTerm","loading","results","setQueryParams","queryKey","value"],"sources":["../../src/hooks/useDebounceSearch.js"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useDebounce } from '@blaze-react/utils/lib/customHooks';\nimport useSearchResults from '../components/useSearchResults';\nimport { SEARCH_PUBLISHED } from '../constants';\n\nconst useDebounceSearch = ({ entities, resultKeys, fields, initialSearchTerm, queryHook }) => {\n const [searchTerm, setSearchTerm] = useState(initialSearchTerm ?? '');\n const [previousSearchTerm, setPreviousSearchTerm] = useState(null);\n const debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n const [{ loading, results }, setQueryParams] = useSearchResults({\n queryKey: SEARCH_PUBLISHED,\n resultKeys,\n entities,\n fields,\n queryHook\n });\n\n useEffect(() => {\n if (debouncedSearchTerm && debouncedSearchTerm !== previousSearchTerm) {\n setQueryParams({ value: debouncedSearchTerm });\n setPreviousSearchTerm(debouncedSearchTerm);\n }\n }, [debouncedSearchTerm, previousSearchTerm, setQueryParams]);\n\n return {\n loading,\n results,\n searchTerm,\n setSearchTerm,\n setPreviousSearchTerm,\n debouncedSearchTerm,\n previousSearchTerm\n };\n};\n\nexport default useDebounceSearch;\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,WAAW,QAAQ,oCAAoC;AAChE,OAAOC,gBAAgB,MAAM,gCAAgC;AAC7D,SAASC,gBAAgB,QAAQ,cAAc;AAE/C,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,UAAU;EAAEC,MAAM;EAAEC,iBAAiB;EAAEC;AAAU,CAAC,KAAK;EAC5F,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGX,QAAQ,CAACQ,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAI,EAAE,CAAC;EACrE,MAAM,CAACI,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGb,QAAQ,CAAC,IAAI,CAAC;EAClE,MAAMc,mBAAmB,GAAGb,WAAW,CAACS,UAAU,EAAE,GAAG,CAAC;EAExD,MAAM,CAAC;IAAEK,OAAO;IAAEC;EAAQ,CAAC,EAAEC,cAAc,CAAC,GAAGf,gBAAgB,CAAC;IAC9DgB,QAAQ,EAAEf,gBAAgB;IAC1BG,UAAU;IACVD,QAAQ;IACRE,MAAM;IACNE;EACF,CAAC,CAAC;EAEFV,SAAS,CAAC,MAAM;IACd,IAAIe,mBAAmB,IAAIA,mBAAmB,KAAKF,kBAAkB,EAAE;MACrEK,cAAc,CAAC;QAAEE,KAAK,EAAEL;MAAoB,CAAC,CAAC;MAC9CD,qBAAqB,CAACC,mBAAmB,CAAC;IAC5C;EACF,CAAC,EAAE,CAACA,mBAAmB,EAAEF,kBAAkB,EAAEK,cAAc,CAAC,CAAC;EAE7D,OAAO;IACLF,OAAO;IACPC,OAAO;IACPN,UAAU;IACVC,aAAa;IACbE,qBAAqB;IACrBC,mBAAmB;IACnBF;EACF,CAAC;AACH,CAAC;AAED,eAAeR,iBAAiB","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import SearchAdmin from './components/SearchAdmin';
2
+ import SearchPublishedContent from './components/SearchPublishedContent';
3
+ import SearchBar from './components/SearchAdmin/SearchBar';
4
+ import useDebounceSearch from './hooks/useDebounceSearch';
5
+ export { SearchAdmin, SearchPublishedContent, SearchBar, useDebounceSearch };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["SearchAdmin","SearchPublishedContent","SearchBar","useDebounceSearch"],"sources":["../src/index.js"],"sourcesContent":["import SearchAdmin from './components/SearchAdmin';\nimport SearchPublishedContent from './components/SearchPublishedContent';\nimport SearchBar from './components/SearchAdmin/SearchBar';\nimport useDebounceSearch from './hooks/useDebounceSearch';\n\nexport { SearchAdmin, SearchPublishedContent, SearchBar, useDebounceSearch };\n"],"mappings":"AAAA,OAAOA,WAAW,MAAM,0BAA0B;AAClD,OAAOC,sBAAsB,MAAM,qCAAqC;AACxE,OAAOC,SAAS,MAAM,oCAAoC;AAC1D,OAAOC,iBAAiB,MAAM,2BAA2B;AAEzD,SAASH,WAAW,EAAEC,sBAAsB,EAAEC,SAAS,EAAEC,iBAAiB","ignoreList":[]}
package/package.json CHANGED
@@ -1,9 +1,14 @@
1
1
  {
2
2
  "name": "@blaze-cms/plugin-search-ui",
3
- "version": "0.146.0-rc-eagle.0",
3
+ "version": "0.146.0-rc-eagle-3.2",
4
4
  "description": "Blaze plugin search ui",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib-es/index.js",
7
+ "files": [
8
+ "lib",
9
+ "lib-es",
10
+ "src"
11
+ ],
7
12
  "source": "src/index.js",
8
13
  "directories": {
9
14
  "src": "src/"
@@ -27,9 +32,9 @@
27
32
  },
28
33
  "license": "GPL-3.0",
29
34
  "dependencies": {
30
- "@blaze-cms/admin-ui-utils": "0.146.0-rc-eagle.0",
31
- "@blaze-cms/core-errors": "0.146.0-rc-eagle.0",
32
- "@blaze-cms/setup-ui": "0.146.0-rc-eagle.0",
35
+ "@blaze-cms/admin-ui-utils": "0.146.0-rc-eagle-3.2",
36
+ "@blaze-cms/core-errors": "0.146.0-rc-eagle-3.0",
37
+ "@blaze-cms/setup-ui": "0.146.0-rc-eagle-3.0",
33
38
  "@blaze-react/button": "0.5.19",
34
39
  "@blaze-react/checkboxes": "^0.7.0",
35
40
  "@blaze-react/input": "0.8.0-alpha.100",
@@ -40,7 +45,7 @@
40
45
  "react-tiny-virtual-list": "2.2.0"
41
46
  },
42
47
  "devDependencies": {
43
- "@blaze-cms/core-ui": "0.146.0-rc-eagle.0"
48
+ "@blaze-cms/core-ui": "0.146.0-rc-eagle-3.2"
44
49
  },
45
50
  "peerDependencies": {
46
51
  "@apollo/client": "3.x",
@@ -51,5 +56,6 @@
51
56
  "eslintIgnore": [
52
57
  "lib/*",
53
58
  "lib-es/*"
54
- ]
59
+ ],
60
+ "gitHead": "3219f29b6e4e8c40f34fe79804b2cd315c84467a"
55
61
  }