cozy-search 0.1.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 (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +89 -0
  3. package/dist/components/AssistantDesktop.d.ts +16 -0
  4. package/dist/components/AssistantDesktop.js +44 -0
  5. package/dist/components/AssistantIcon/AssistantIcon.d.ts +6 -0
  6. package/dist/components/AssistantIcon/AssistantIcon.js +43 -0
  7. package/dist/components/AssistantMobile.d.ts +2 -0
  8. package/dist/components/AssistantMobile.js +50 -0
  9. package/dist/components/AssistantProvider.d.ts +7 -0
  10. package/dist/components/AssistantProvider.js +174 -0
  11. package/dist/components/Conversations/ChatAssistantItem.d.ts +8 -0
  12. package/dist/components/Conversations/ChatAssistantItem.js +53 -0
  13. package/dist/components/Conversations/ChatConversation.d.ts +5 -0
  14. package/dist/components/Conversations/ChatConversation.js +110 -0
  15. package/dist/components/Conversations/ChatItem.d.ts +7 -0
  16. package/dist/components/Conversations/ChatItem.js +39 -0
  17. package/dist/components/Conversations/ChatItemLabel.d.ts +5 -0
  18. package/dist/components/Conversations/ChatItemLabel.js +29 -0
  19. package/dist/components/Conversations/ChatRealtimeAnswer.d.ts +5 -0
  20. package/dist/components/Conversations/ChatRealtimeAnswer.js +30 -0
  21. package/dist/components/Conversations/ChatUserItem.d.ts +7 -0
  22. package/dist/components/Conversations/ChatUserItem.js +41 -0
  23. package/dist/components/Conversations/Conversation.d.ts +4 -0
  24. package/dist/components/Conversations/Conversation.js +41 -0
  25. package/dist/components/Conversations/ConversationBar.d.ts +4 -0
  26. package/dist/components/Conversations/ConversationBar.js +164 -0
  27. package/dist/components/Conversations/Sources/Sources.d.ts +5 -0
  28. package/dist/components/Conversations/Sources/Sources.js +134 -0
  29. package/dist/components/Conversations/Sources/SourcesItem.d.ts +4 -0
  30. package/dist/components/Conversations/Sources/SourcesItem.js +55 -0
  31. package/dist/components/Conversations/Sources/styles.styl +5 -0
  32. package/dist/components/Conversations/styles.styl +15 -0
  33. package/dist/components/ResultMenu/NoResultItem.d.ts +2 -0
  34. package/dist/components/ResultMenu/NoResultItem.js +30 -0
  35. package/dist/components/ResultMenu/NotEnoughItem.d.ts +2 -0
  36. package/dist/components/ResultMenu/NotEnoughItem.js +30 -0
  37. package/dist/components/ResultMenu/ResultMenu.d.ts +6 -0
  38. package/dist/components/ResultMenu/ResultMenu.js +47 -0
  39. package/dist/components/ResultMenu/ResultMenuContent.d.ts +3 -0
  40. package/dist/components/ResultMenu/ResultMenuContent.js +117 -0
  41. package/dist/components/ResultMenu/ResultMenuItem.d.ts +12 -0
  42. package/dist/components/ResultMenu/ResultMenuItem.js +65 -0
  43. package/dist/components/ResultMenu/SuggestionItemTextHighlighted.d.ts +5 -0
  44. package/dist/components/ResultMenu/SuggestionItemTextHighlighted.js +100 -0
  45. package/dist/components/ResultMenu/SuggestionItemTextSecondary.d.ts +7 -0
  46. package/dist/components/ResultMenu/SuggestionItemTextSecondary.js +70 -0
  47. package/dist/components/ResultMenu/styles.styl +8 -0
  48. package/dist/components/Search/EncryptedFolderIcon.d.ts +2 -0
  49. package/dist/components/Search/EncryptedFolderIcon.js +34 -0
  50. package/dist/components/Search/SearchBar.d.ts +4 -0
  51. package/dist/components/Search/SearchBar.js +71 -0
  52. package/dist/components/Search/SearchBarDesktop.d.ts +15 -0
  53. package/dist/components/Search/SearchBarDesktop.js +167 -0
  54. package/dist/components/Search/SearchBarMobile.d.ts +6 -0
  55. package/dist/components/Search/SearchBarMobile.js +71 -0
  56. package/dist/components/Search/SearchProvider.d.ts +7 -0
  57. package/dist/components/Search/SearchProvider.js +81 -0
  58. package/dist/components/Search/SearchSubmitFab.d.ts +5 -0
  59. package/dist/components/Search/SearchSubmitFab.js +59 -0
  60. package/dist/components/Search/SuggestionsPlaceholder.d.ts +2 -0
  61. package/dist/components/Search/SuggestionsPlaceholder.js +55 -0
  62. package/dist/components/Search/getFileMimetype.d.ts +1 -0
  63. package/dist/components/Search/getFileMimetype.js +54 -0
  64. package/dist/components/Search/getIconForSearchResult.d.ts +12 -0
  65. package/dist/components/Search/getIconForSearchResult.js +127 -0
  66. package/dist/components/Search/styles.styl +7 -0
  67. package/dist/components/Search/useFetchResult.d.ts +4 -0
  68. package/dist/components/Search/useFetchResult.js +191 -0
  69. package/dist/components/Views/AssistantDialog.d.ts +2 -0
  70. package/dist/components/Views/AssistantDialog.js +79 -0
  71. package/dist/components/Views/SearchDialog.d.ts +2 -0
  72. package/dist/components/Views/SearchDialog.js +96 -0
  73. package/dist/components/helpers.d.ts +5 -0
  74. package/dist/components/helpers.js +58 -0
  75. package/dist/components/queries.d.ts +25 -0
  76. package/dist/components/queries.js +58 -0
  77. package/dist/components/styles.styl +18 -0
  78. package/dist/index.d.ts +4 -0
  79. package/dist/index.js +39 -0
  80. package/dist/locales/en.json +21 -0
  81. package/dist/locales/fr.json +21 -0
  82. package/dist/locales/index.d.ts +6 -0
  83. package/dist/locales/index.js +53 -0
  84. package/dist/stylesheet.css +48 -0
  85. package/package.json +91 -0
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _ListItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItem"));
13
+
14
+ var _ListItemText = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemText"));
15
+
16
+ var _I18n = require("cozy-ui/transpiled/react/providers/I18n");
17
+
18
+ var NotEnoughItem = function NotEnoughItem() {
19
+ var _useI18n = (0, _I18n.useI18n)(),
20
+ t = _useI18n.t;
21
+
22
+ return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
23
+ size: "small"
24
+ }, /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
25
+ primary: t('assistant.search.notEnough')
26
+ }));
27
+ };
28
+
29
+ var _default = NotEnoughItem;
30
+ exports.default = _default;
@@ -0,0 +1,6 @@
1
+ export default ResultMenu;
2
+ declare function ResultMenu({ anchorRef, listRef, onClick }: {
3
+ anchorRef: any;
4
+ listRef: any;
5
+ onClick: any;
6
+ }): JSX.Element;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _Paper = _interopRequireDefault(require("cozy-ui/transpiled/react/Paper"));
13
+
14
+ var _Popper = _interopRequireDefault(require("cozy-ui/transpiled/react/Popper"));
15
+
16
+ var _ResultMenuContent = _interopRequireDefault(require("./ResultMenuContent"));
17
+
18
+ var styles = {
19
+ "resultMenu": "styles__resultMenu___o76q-",
20
+ "resultMenu-inner": "styles__resultMenu-inner___2Lf0d"
21
+ };
22
+
23
+ var ResultMenu = function ResultMenu(_ref) {
24
+ var anchorRef = _ref.anchorRef,
25
+ listRef = _ref.listRef,
26
+ onClick = _ref.onClick;
27
+ return /*#__PURE__*/_react.default.createElement(_Popper.default, {
28
+ style: {
29
+ width: anchorRef.current.offsetWidth,
30
+ zIndex: 'var(--zIndex-popover)'
31
+ },
32
+ anchorEl: anchorRef.current,
33
+ open: Boolean(anchorRef.current),
34
+ placement: "bottom-start"
35
+ }, /*#__PURE__*/_react.default.createElement(_Paper.default, {
36
+ className: styles['resultMenu'],
37
+ square: true
38
+ }, /*#__PURE__*/_react.default.createElement("div", {
39
+ className: styles['resultMenu-inner']
40
+ }, /*#__PURE__*/_react.default.createElement(_ResultMenuContent.default, {
41
+ ref: listRef,
42
+ onClick: onClick
43
+ }))));
44
+ };
45
+
46
+ var _default = ResultMenu;
47
+ exports.default = _default;
@@ -0,0 +1,3 @@
1
+ export default ResultMenuContent;
2
+ declare const ResultMenuContent: React.ForwardRefExoticComponent<React.RefAttributes<any>>;
3
+ import React from 'react';
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _cozyDataproxyLib = require("cozy-dataproxy-lib");
13
+
14
+ var _Circle = _interopRequireDefault(require("cozy-ui/transpiled/react/Circle"));
15
+
16
+ var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
17
+
18
+ var _Paperplane = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Paperplane"));
19
+
20
+ var _List = _interopRequireDefault(require("cozy-ui/transpiled/react/List"));
21
+
22
+ var _ListItemSkeleton = _interopRequireDefault(require("cozy-ui/transpiled/react/Skeletons/ListItemSkeleton"));
23
+
24
+ var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
25
+
26
+ var _I18n = require("cozy-ui/transpiled/react/providers/I18n");
27
+
28
+ var _NoResultItem = _interopRequireDefault(require("./NoResultItem"));
29
+
30
+ var _NotEnoughItem = _interopRequireDefault(require("./NotEnoughItem"));
31
+
32
+ var _ResultMenuItem = _interopRequireDefault(require("./ResultMenuItem"));
33
+
34
+ var _SearchProvider = require("../Search/SearchProvider");
35
+
36
+ var _helpers = require("../helpers");
37
+
38
+ 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); }
39
+
40
+ 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; }
41
+
42
+ var SearchResult = function SearchResult() {
43
+ var _useSearch = (0, _SearchProvider.useSearch)(),
44
+ isLoading = _useSearch.isLoading,
45
+ results = _useSearch.results,
46
+ selectedIndex = _useSearch.selectedIndex,
47
+ searchValue = _useSearch.searchValue;
48
+
49
+ if (isLoading && !(results !== null && results !== void 0 && results.length)) {
50
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ListItemSkeleton.default, {
51
+ hasSecondary: true
52
+ }), /*#__PURE__*/_react.default.createElement(_ListItemSkeleton.default, {
53
+ hasSecondary: true
54
+ }), /*#__PURE__*/_react.default.createElement(_ListItemSkeleton.default, {
55
+ hasSecondary: true
56
+ }));
57
+ }
58
+
59
+ if (!isLoading && !(results !== null && results !== void 0 && results.length) && !(0, _helpers.isAssistantEnabled)()) {
60
+ if (searchValue.length >= 3) {
61
+ return /*#__PURE__*/_react.default.createElement(_NoResultItem.default, null);
62
+ } else {
63
+ return /*#__PURE__*/_react.default.createElement(_NotEnoughItem.default, null);
64
+ }
65
+ }
66
+
67
+ return results.map(function (result, idx) {
68
+ return /*#__PURE__*/_react.default.createElement(_ResultMenuItem.default, {
69
+ key: result.id || idx,
70
+ icon: result.icon,
71
+ slug: result.slug,
72
+ primaryText: result.primary,
73
+ secondaryText: result.secondary,
74
+ secondaryUrl: result.secondaryUrl,
75
+ query: searchValue,
76
+ highlightQuery: "true",
77
+ selected: (0, _helpers.isAssistantEnabled)() ? selectedIndex === idx + 1 : selectedIndex === idx,
78
+ onClick: result.onClick
79
+ });
80
+ });
81
+ };
82
+
83
+ var ResultMenuContent = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
84
+ var onClick = _ref.onClick;
85
+
86
+ var _useI18n = (0, _I18n.useI18n)(),
87
+ t = _useI18n.t;
88
+
89
+ var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
90
+ isMobile = _useBreakpoints.isMobile;
91
+
92
+ var _useSearch2 = (0, _SearchProvider.useSearch)(),
93
+ searchValue = _useSearch2.searchValue,
94
+ selectedIndex = _useSearch2.selectedIndex;
95
+
96
+ var _useDataProxy = (0, _cozyDataproxyLib.useDataProxy)(),
97
+ dataProxyServicesAvailable = _useDataProxy.dataProxyServicesAvailable;
98
+
99
+ return /*#__PURE__*/_react.default.createElement(_List.default, {
100
+ ref: ref
101
+ }, (0, _helpers.isAssistantEnabled)() && /*#__PURE__*/_react.default.createElement(_ResultMenuItem.default, {
102
+ icon: /*#__PURE__*/_react.default.createElement(_Circle.default, {
103
+ size: "small"
104
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
105
+ icon: _Paperplane.default,
106
+ size: isMobile ? 12 : undefined
107
+ })),
108
+ primaryText: searchValue,
109
+ query: searchValue,
110
+ secondaryText: t('assistant.search.result'),
111
+ selected: selectedIndex === 0,
112
+ onClick: onClick
113
+ }), dataProxyServicesAvailable && /*#__PURE__*/_react.default.createElement(SearchResult, null));
114
+ });
115
+ ResultMenuContent.displayName = 'ResultMenuContent';
116
+ var _default = ResultMenuContent;
117
+ exports.default = _default;
@@ -0,0 +1,12 @@
1
+ export default ResultMenuItem;
2
+ declare function ResultMenuItem({ icon, primaryText, secondaryText, secondaryUrl, slug, selected, onClick, query, highlightQuery }: {
3
+ icon: any;
4
+ primaryText: any;
5
+ secondaryText: any;
6
+ secondaryUrl: any;
7
+ slug: any;
8
+ selected: any;
9
+ onClick: any;
10
+ query: any;
11
+ highlightQuery?: boolean | undefined;
12
+ }): JSX.Element;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _AppIcon = _interopRequireDefault(require("cozy-ui/transpiled/react/AppIcon"));
13
+
14
+ var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
15
+
16
+ var _ListItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItem"));
17
+
18
+ var _ListItemIcon = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemIcon"));
19
+
20
+ var _ListItemText = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemText"));
21
+
22
+ var _SuggestionItemTextHighlighted = _interopRequireDefault(require("./SuggestionItemTextHighlighted"));
23
+
24
+ var _SuggestionItemTextSecondary = _interopRequireDefault(require("./SuggestionItemTextSecondary"));
25
+
26
+ var ResultMenuItem = function ResultMenuItem(_ref) {
27
+ var icon = _ref.icon,
28
+ primaryText = _ref.primaryText,
29
+ secondaryText = _ref.secondaryText,
30
+ secondaryUrl = _ref.secondaryUrl,
31
+ slug = _ref.slug,
32
+ selected = _ref.selected,
33
+ onClick = _ref.onClick,
34
+ query = _ref.query,
35
+ _ref$highlightQuery = _ref.highlightQuery,
36
+ highlightQuery = _ref$highlightQuery === void 0 ? false : _ref$highlightQuery;
37
+ var iconComponent = icon.type === 'component' ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
38
+ icon: icon.component,
39
+ size: 32
40
+ }) : icon.type === 'app' ? /*#__PURE__*/_react.default.createElement(_AppIcon.default, {
41
+ app: icon.app
42
+ }) : icon;
43
+ var primary = highlightQuery ? /*#__PURE__*/_react.default.createElement(_SuggestionItemTextHighlighted.default, {
44
+ text: primaryText,
45
+ query: query
46
+ }) : primaryText;
47
+ var secondary = highlightQuery ? /*#__PURE__*/_react.default.createElement(_SuggestionItemTextSecondary.default, {
48
+ text: secondaryText,
49
+ query: query,
50
+ slug: slug,
51
+ url: secondaryUrl
52
+ }) : secondaryText;
53
+ return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
54
+ button: true,
55
+ size: "small",
56
+ selected: selected,
57
+ onClick: onClick
58
+ }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, iconComponent), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
59
+ primary: primary,
60
+ secondary: secondary
61
+ }));
62
+ };
63
+
64
+ var _default = ResultMenuItem;
65
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ export default SuggestionItemTextHighlighted;
2
+ declare function SuggestionItemTextHighlighted({ text, query }: {
3
+ text: any;
4
+ query: any;
5
+ }): any[] | null;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
15
+
16
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
17
+
18
+ var normalizeString = function normalizeString(str) {
19
+ return str.toString().toLowerCase().replace(/\//g, ' ').normalize('NFD').replace(/[\u0300-\u036f]/g, '').split(' ');
20
+ };
21
+ /**
22
+ * Add <b> on part that equlas query into each result
23
+ *
24
+ * @param {Array} searchResult - list of results
25
+ * @param {string} query - search input
26
+ * @returns list of results with the query highlighted
27
+ */
28
+
29
+
30
+ var highlightQueryTerms = function highlightQueryTerms(searchResult, query) {
31
+ var normalizedQueryTerms = normalizeString(query);
32
+ var normalizedResultTerms = normalizeString(searchResult);
33
+ var matchedIntervals = [];
34
+ var spacerLength = 1;
35
+ var currentIndex = 0;
36
+ normalizedResultTerms.forEach(function (resultTerm) {
37
+ normalizedQueryTerms.forEach(function (queryTerm) {
38
+ var index = resultTerm.indexOf(queryTerm);
39
+
40
+ if (index >= 0) {
41
+ matchedIntervals.push({
42
+ from: currentIndex + index,
43
+ to: currentIndex + index + queryTerm.length
44
+ });
45
+ }
46
+ });
47
+ currentIndex += resultTerm.length + spacerLength;
48
+ }); // matchedIntervals can overlap, so we merge them.
49
+ // - sort the intervals by starting index
50
+ // - add the first interval to the stack
51
+ // - for every interval,
52
+ // - - add it to the stack if it doesn't overlap with the stack top
53
+ // - - or extend the stack top if the start overlaps and the new interval's top is bigger
54
+
55
+ var mergedIntervals = matchedIntervals.sort(function (intervalA, intervalB) {
56
+ return intervalA.from > intervalB.from;
57
+ }).reduce(function (computedIntervals, newInterval) {
58
+ if (computedIntervals.length === 0 || computedIntervals[computedIntervals.length - 1].to < newInterval.from) {
59
+ computedIntervals.push(newInterval);
60
+ } else if (computedIntervals[computedIntervals.length - 1].to < newInterval.to) {
61
+ computedIntervals[computedIntervals.length - 1].to = newInterval.to;
62
+ }
63
+
64
+ return computedIntervals;
65
+ }, []); // create an array containing the entire search result, with special characters, and the intervals surrounded y `<b>` tags
66
+
67
+ var slicedOriginalResult = mergedIntervals.length > 0 ? [/*#__PURE__*/_react.default.createElement("span", {
68
+ key: "0"
69
+ }, searchResult.slice(0, mergedIntervals[0].from))] : searchResult;
70
+
71
+ for (var i = 0, l = mergedIntervals.length; i < l; ++i) {
72
+ slicedOriginalResult.push( /*#__PURE__*/_react.default.createElement("span", {
73
+ className: "u-primaryColor"
74
+ }, searchResult.slice(mergedIntervals[i].from, mergedIntervals[i].to)));
75
+ if (i + 1 < l) slicedOriginalResult.push( /*#__PURE__*/_react.default.createElement("span", null, searchResult.slice(mergedIntervals[i].to, mergedIntervals[i + 1].from)));
76
+ }
77
+
78
+ if (mergedIntervals.length > 0) slicedOriginalResult.push( /*#__PURE__*/_react.default.createElement("span", null, searchResult.slice(mergedIntervals[mergedIntervals.length - 1].to, searchResult.length)));
79
+ return slicedOriginalResult;
80
+ };
81
+
82
+ var SuggestionItemTextHighlighted = function SuggestionItemTextHighlighted(_ref) {
83
+ var text = _ref.text,
84
+ query = _ref.query;
85
+ if (!text) return null;
86
+ var textHighlighted = highlightQueryTerms(text, query);
87
+
88
+ if (Array.isArray(textHighlighted)) {
89
+ return textHighlighted.map(function (item, idx) {
90
+ return _objectSpread(_objectSpread({}, item), {}, {
91
+ key: idx
92
+ });
93
+ });
94
+ }
95
+
96
+ return textHighlighted;
97
+ };
98
+
99
+ var _default = SuggestionItemTextHighlighted;
100
+ exports.default = _default;
@@ -0,0 +1,7 @@
1
+ export default SuggestionItemTextSecondary;
2
+ declare function SuggestionItemTextSecondary({ text, query, url, slug }: {
3
+ text: any;
4
+ query: any;
5
+ url: any;
6
+ slug: any;
7
+ }): JSX.Element;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _AppLinker = _interopRequireDefault(require("cozy-ui/transpiled/react/AppLinker"));
13
+
14
+ var _Link = _interopRequireDefault(require("cozy-ui/transpiled/react/Link"));
15
+
16
+ var _Breakpoints = _interopRequireDefault(require("cozy-ui/transpiled/react/providers/Breakpoints"));
17
+
18
+ var _SuggestionItemTextHighlighted = _interopRequireDefault(require("./SuggestionItemTextHighlighted"));
19
+
20
+ /**
21
+ * Code copied and adapted from cozy-drive
22
+ *
23
+ * See source: https://github.com/cozy/cozy-drive/blob/fbe2df67199683b23a40f476ccdacb00ee027459/src/modules/search/components/SuggestionItemTextSecondary.jsx
24
+ */
25
+ var SuggestionItemTextSecondary = function SuggestionItemTextSecondary(_ref) {
26
+ var text = _ref.text,
27
+ query = _ref.query,
28
+ url = _ref.url,
29
+ slug = _ref.slug;
30
+
31
+ var _useBreakpoints = (0, _Breakpoints.default)(),
32
+ isMobile = _useBreakpoints.isMobile;
33
+
34
+ if (isMobile || !url) {
35
+ return /*#__PURE__*/_react.default.createElement(_SuggestionItemTextHighlighted.default, {
36
+ text: text,
37
+ query: query
38
+ });
39
+ }
40
+
41
+ var app = {
42
+ slug: slug
43
+ };
44
+ return /*#__PURE__*/_react.default.createElement(_AppLinker.default, {
45
+ app: app,
46
+ href: url
47
+ }, function (_ref2) {
48
+ var href = _ref2.href,
49
+ _onClick = _ref2.onClick;
50
+ return /*#__PURE__*/_react.default.createElement(_Link.default, {
51
+ color: "textSecondary",
52
+ underline: "hover",
53
+ href: href,
54
+ onClick: function onClick(e) {
55
+ e.stopPropagation();
56
+
57
+ if (typeof _onClick == 'function') {
58
+ _onClick(e);
59
+ }
60
+ }
61
+ }, /*#__PURE__*/_react.default.createElement(_SuggestionItemTextHighlighted.default, {
62
+ text: text,
63
+ query: query,
64
+ slug: slug
65
+ }));
66
+ });
67
+ };
68
+
69
+ var _default = SuggestionItemTextSecondary;
70
+ exports.default = _default;
@@ -0,0 +1,8 @@
1
+ .resultMenu
2
+ overflow hidden
3
+ max-height 16.5rem
4
+ border-radius 0 0 28px 28px
5
+
6
+ &-inner
7
+ max-height 16.5rem
8
+ overflow auto
@@ -0,0 +1,2 @@
1
+ export default EncryptedFolderIcon;
2
+ declare function EncryptedFolderIcon(props: any): JSX.Element;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var EncryptedFolderIcon = function EncryptedFolderIcon(props) {
15
+ return /*#__PURE__*/_react.default.createElement("svg", (0, _extends2.default)({
16
+ viewBox: "0 0 32 32",
17
+ fill: "none",
18
+ xmlns: "http://www.w3.org/2000/svg"
19
+ }, props), /*#__PURE__*/_react.default.createElement("path", {
20
+ opacity: "0.34",
21
+ fillRule: "evenodd",
22
+ clipRule: "evenodd",
23
+ d: "M12.9657 1C13.5206 1 14.2876 1.3125 14.6803 1.6995L16 3H30.0059C31.1072 3 32 3.89498 32 4.997V27.003C32 28.1059 31.1107 29 29.9983 29H2.00174C0.896211 29 0 28.1001 0 27.0088V1.99653C0 1.44616 0.448999 1 1.00472 1H12.9657Z",
24
+ fill: "#297EF2"
25
+ }), /*#__PURE__*/_react.default.createElement("path", {
26
+ fillRule: "evenodd",
27
+ clipRule: "evenodd",
28
+ d: "M1 1C0.447715 1 0 1.44772 0 2V6C0 6.55228 0.447716 7 1 7H13.5858C13.851 7 14.1054 6.89464 14.2929 6.70711L15.7071 5.29289C15.8946 5.10536 16.149 5 16.4142 5H32C32 3.89543 31.1046 3 30 3H16.4142C16.149 3 15.8946 2.89464 15.7071 2.70711L14.2929 1.29289C14.1054 1.10536 13.851 1 13.5858 1H1ZM10 15.9954V24.0046C10 24.5543 10.4558 25 11.0025 25H20.9975C21.5512 25 22 24.5443 22 24.0046V15.9954C22 15.4457 21.5561 15 21 15H20V13C20 10.794 18.2053 9 16 9C13.794 9 12 10.794 12 13V15H11C10.4477 15 10 15.4557 10 15.9954ZM16 11C14.8968 11 14 12.1215 14 13.5V15H18V13.5C18 12.1215 17.1028 11 16 11ZM17.5 19C17.5 18.172 16.8265 17.5 16 17.5C15.172 17.5 14.5 18.172 14.5 19C14.5 19.552 14.803 20.032 15.25 20.29V22.75C15.25 23.1625 15.586 23.5 16 23.5C16.4125 23.5 16.75 23.1625 16.75 22.75V20.29C17.1955 20.032 17.5 19.552 17.5 19Z",
29
+ fill: "#297EF2"
30
+ }));
31
+ };
32
+
33
+ var _default = EncryptedFolderIcon;
34
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ export default SearchBar;
2
+ declare function SearchBar({ componentsProps }: {
3
+ componentsProps: any;
4
+ }): JSX.Element;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
17
+
18
+ var _SearchBarDesktop = _interopRequireDefault(require("./SearchBarDesktop"));
19
+
20
+ var _SearchBarMobile = _interopRequireDefault(require("./SearchBarMobile"));
21
+
22
+ var _SearchProvider = require("./SearchProvider");
23
+
24
+ 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); }
25
+
26
+ 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; }
27
+
28
+ var SearchBar = function SearchBar(_ref) {
29
+ var componentsProps = _ref.componentsProps;
30
+
31
+ var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
32
+ isMobile = _useBreakpoints.isMobile;
33
+
34
+ var _useState = (0, _react.useState)(''),
35
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
36
+ inputValue = _useState2[0],
37
+ setInputValue = _useState2[1];
38
+
39
+ var _useSearch = (0, _SearchProvider.useSearch)(),
40
+ clearSearch = _useSearch.clearSearch,
41
+ setSelectedIndex = _useSearch.setSelectedIndex,
42
+ delayedSetSearchValue = _useSearch.delayedSetSearchValue;
43
+
44
+ var handleClear = function handleClear() {
45
+ setInputValue('');
46
+ clearSearch();
47
+ };
48
+
49
+ var handleChange = function handleChange(ev) {
50
+ setSelectedIndex(0);
51
+ delayedSetSearchValue(ev.target.value);
52
+ setInputValue(ev.target.value);
53
+ };
54
+
55
+ if (isMobile) {
56
+ return /*#__PURE__*/_react.default.createElement(_SearchBarMobile.default, {
57
+ value: inputValue,
58
+ onClear: handleClear,
59
+ onChange: handleChange
60
+ });
61
+ }
62
+
63
+ return /*#__PURE__*/_react.default.createElement(_SearchBarDesktop.default, (0, _extends2.default)({}, componentsProps === null || componentsProps === void 0 ? void 0 : componentsProps.SearchBarDesktop, {
64
+ value: inputValue,
65
+ onClear: handleClear,
66
+ onChange: handleChange
67
+ }));
68
+ };
69
+
70
+ var _default = SearchBar;
71
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ export default SearchBarDesktop;
2
+ declare function SearchBarDesktop({ value, onClear, onChange, elevation, size, hasHalfBorderRadius }: {
3
+ value: any;
4
+ onClear: any;
5
+ onChange: any;
6
+ elevation: any;
7
+ size: any;
8
+ hasHalfBorderRadius: any;
9
+ }): JSX.Element;
10
+ declare namespace SearchBarDesktop {
11
+ namespace defaultProps {
12
+ let size: string;
13
+ let elevation: boolean;
14
+ }
15
+ }