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,39 @@
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 _Box = _interopRequireDefault(require("cozy-ui/transpiled/react/Box"));
13
+
14
+ var _Typography = _interopRequireDefault(require("cozy-ui/transpiled/react/Typography"));
15
+
16
+ var _ChatItemLabel = _interopRequireDefault(require("./ChatItemLabel"));
17
+
18
+ var ChatItem = function ChatItem(_ref) {
19
+ var className = _ref.className,
20
+ icon = _ref.icon,
21
+ name = _ref.name,
22
+ label = _ref.label;
23
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Box.default, {
24
+ className: className,
25
+ display: "flex",
26
+ alignItems: "center",
27
+ gridGap: 12
28
+ }, icon, /*#__PURE__*/_react.default.createElement(_Typography.default, {
29
+ variant: "h6",
30
+ display: "inline"
31
+ }, name)), /*#__PURE__*/_react.default.createElement(_Box.default, {
32
+ pl: "44px"
33
+ }, /*#__PURE__*/_react.default.createElement(_ChatItemLabel.default, {
34
+ label: label
35
+ })));
36
+ };
37
+
38
+ var _default = ChatItem;
39
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ declare const _default: React.MemoExoticComponent<({ label }: {
2
+ label: any;
3
+ }) => any>;
4
+ export default _default;
5
+ import React from 'react';
@@ -0,0 +1,29 @@
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 _Markdown = _interopRequireDefault(require("cozy-ui/transpiled/react/Markdown"));
13
+
14
+ var ChatItemLabel = function ChatItemLabel(_ref) {
15
+ var label = _ref.label;
16
+
17
+ if (typeof label === 'string') {
18
+ return /*#__PURE__*/_react.default.createElement(_Markdown.default, {
19
+ content: label
20
+ });
21
+ }
22
+
23
+ return label;
24
+ }; // need memo to avoid rendering all label of all items
25
+
26
+
27
+ var _default = /*#__PURE__*/_react.default.memo(ChatItemLabel);
28
+
29
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ export default ChatRealtimeAnswer;
2
+ declare function ChatRealtimeAnswer({ isLoading, label }: {
3
+ isLoading: any;
4
+ label: any;
5
+ }): JSX.Element;
@@ -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 _Skeleton = _interopRequireDefault(require("cozy-ui/transpiled/react/Skeleton"));
13
+
14
+ var _ChatAssistantItem = _interopRequireDefault(require("./ChatAssistantItem"));
15
+
16
+ var ChatRealtimeAnswer = function ChatRealtimeAnswer(_ref) {
17
+ var isLoading = _ref.isLoading,
18
+ label = _ref.label;
19
+ return /*#__PURE__*/_react.default.createElement(_ChatAssistantItem.default, {
20
+ className: "u-mt-1-half",
21
+ label: isLoading ? /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_Skeleton.default, {
22
+ width: "100%"
23
+ }), /*#__PURE__*/_react.default.createElement(_Skeleton.default, {
24
+ width: "60%"
25
+ })) : label
26
+ });
27
+ };
28
+
29
+ var _default = ChatRealtimeAnswer;
30
+ exports.default = _default;
@@ -0,0 +1,7 @@
1
+ export default ChatUserItem;
2
+ declare function ChatUserItem({ className, label, myself, ...props }: {
3
+ [x: string]: any;
4
+ className: any;
5
+ label: any;
6
+ myself: any;
7
+ }): JSX.Element;
@@ -0,0 +1,41 @@
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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _contact = require("cozy-client/dist/models/contact");
17
+
18
+ var _Avatar = _interopRequireDefault(require("cozy-ui/transpiled/react/Avatar"));
19
+
20
+ var _ChatItem = _interopRequireDefault(require("./ChatItem"));
21
+
22
+ var _excluded = ["className", "label", "myself"];
23
+
24
+ var ChatUserItem = function ChatUserItem(_ref) {
25
+ var className = _ref.className,
26
+ label = _ref.label,
27
+ myself = _ref.myself,
28
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
29
+ return /*#__PURE__*/_react.default.createElement(_ChatItem.default, (0, _extends2.default)({}, props, {
30
+ className: className,
31
+ icon: /*#__PURE__*/_react.default.createElement(_Avatar.default, {
32
+ text: (0, _contact.getInitials)(myself),
33
+ size: "small"
34
+ }),
35
+ name: (0, _contact.getDisplayName)(myself),
36
+ label: label
37
+ }));
38
+ };
39
+
40
+ var _default = ChatUserItem;
41
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ export default Conversation;
2
+ declare function Conversation({ id }: {
3
+ id: any;
4
+ }): JSX.Element | null;
@@ -0,0 +1,41 @@
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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _cozyClient = require("cozy-client");
15
+
16
+ var _ChatConversation = _interopRequireDefault(require("./ChatConversation"));
17
+
18
+ var _queries = require("../queries");
19
+
20
+ var _excluded = ["data"];
21
+
22
+ var Conversation = function Conversation(_ref) {
23
+ var id = _ref.id;
24
+ var myselfQuery = (0, _queries.buildMyselfQuery)();
25
+
26
+ var _useQuery = (0, _cozyClient.useQuery)(myselfQuery.definition, myselfQuery.options),
27
+ myselves = _useQuery.data,
28
+ queryMyselfResult = (0, _objectWithoutProperties2.default)(_useQuery, _excluded);
29
+
30
+ var isLoading = (0, _cozyClient.isQueryLoading)(queryMyselfResult);
31
+ if (isLoading) return null;
32
+ return /*#__PURE__*/_react.default.createElement("div", {
33
+ className: "u-maw-7 u-mh-auto"
34
+ }, /*#__PURE__*/_react.default.createElement(_ChatConversation.default, {
35
+ id: id,
36
+ myself: myselves[0]
37
+ }));
38
+ };
39
+
40
+ var _default = Conversation;
41
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ export default ConversationBar;
2
+ declare function ConversationBar({ assistantStatus }: {
3
+ assistantStatus: any;
4
+ }): JSX.Element;
@@ -0,0 +1,164 @@
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _reactRouterDom = require("react-router-dom");
15
+
16
+ var _Buttons = _interopRequireDefault(require("cozy-ui/transpiled/react/Buttons"));
17
+
18
+ var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
19
+
20
+ var _IconButton = _interopRequireDefault(require("cozy-ui/transpiled/react/IconButton"));
21
+
22
+ var _Paperplane = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Paperplane"));
23
+
24
+ var _Stop = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Stop"));
25
+
26
+ var _SearchBar = _interopRequireDefault(require("cozy-ui/transpiled/react/SearchBar"));
27
+
28
+ var _useEventListener = _interopRequireDefault(require("cozy-ui/transpiled/react/hooks/useEventListener"));
29
+
30
+ var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
31
+
32
+ var _I18n = require("cozy-ui/transpiled/react/providers/I18n");
33
+
34
+ var _AssistantProvider = require("../AssistantProvider");
35
+
36
+ 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); }
37
+
38
+ 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; }
39
+
40
+ var styles = {
41
+ "conversationBar": "styles__conversationBar___2J-Us",
42
+ "conversationBar-input": "styles__conversationBar-input___2DfdZ"
43
+ };
44
+
45
+ var ConversationBar = function ConversationBar(_ref) {
46
+ var assistantStatus = _ref.assistantStatus;
47
+
48
+ var _useI18n = (0, _I18n.useI18n)(),
49
+ t = _useI18n.t;
50
+
51
+ var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
52
+ isMobile = _useBreakpoints.isMobile;
53
+
54
+ var _useAssistant = (0, _AssistantProvider.useAssistant)(),
55
+ onAssistantExecute = _useAssistant.onAssistantExecute;
56
+
57
+ var _useState = (0, _react.useState)(''),
58
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
59
+ inputValue = _useState2[0],
60
+ setInputValue = _useState2[1];
61
+
62
+ var inputRef = (0, _react.useRef)();
63
+
64
+ var _useParams = (0, _reactRouterDom.useParams)(),
65
+ conversationId = _useParams.conversationId; // to adjust input height for multiline when typing in it
66
+
67
+
68
+ (0, _useEventListener.default)(inputRef.current, 'input', function () {
69
+ inputRef.current.style.height = 'auto'; // to resize input when emptying it
70
+
71
+ inputRef.current.style.height = "".concat(inputRef.current.scrollHeight, "px");
72
+ });
73
+
74
+ var handleClear = function handleClear() {
75
+ setInputValue('');
76
+ };
77
+
78
+ var handleChange = function handleChange(ev) {
79
+ setInputValue(ev.target.value);
80
+ };
81
+
82
+ var handleStop = function handleStop() {
83
+ // not supported right now
84
+ return;
85
+ };
86
+
87
+ var handleClick = function handleClick() {
88
+ return onAssistantExecute({
89
+ value: inputValue,
90
+ conversationId: conversationId
91
+ }, function () {
92
+ handleClear();
93
+ inputRef.current.style.height = 'auto';
94
+ });
95
+ };
96
+
97
+ return /*#__PURE__*/_react.default.createElement("div", {
98
+ className: "u-w-100 u-maw-7 u-mh-auto"
99
+ }, /*#__PURE__*/_react.default.createElement(_SearchBar.default, {
100
+ className: styles['conversationBar'],
101
+ icon: null,
102
+ size: "auto",
103
+ placeholder: t('assistant.search.placeholder'),
104
+ value: inputValue,
105
+ disabledClear: true,
106
+ componentsProps: {
107
+ inputBase: {
108
+ inputRef: inputRef,
109
+ className: 'u-pv-0',
110
+ rows: 1,
111
+ multiline: true,
112
+ inputProps: {
113
+ className: styles['conversationBar-input']
114
+ },
115
+ autoFocus: !isMobile,
116
+ endAdornment: assistantStatus !== 'idle' ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
117
+ className: "u-p-half",
118
+ onClick: handleStop
119
+ }, /*#__PURE__*/_react.default.createElement(_Buttons.default, {
120
+ component: "div",
121
+ className: "u-miw-auto u-w-2 u-h-2 u-bdrs-circle",
122
+ classes: {
123
+ label: 'u-flex u-w-auto'
124
+ },
125
+ label: /*#__PURE__*/_react.default.createElement(_Icon.default, {
126
+ icon: _Stop.default,
127
+ size: 12
128
+ })
129
+ })) : /*#__PURE__*/_react.default.createElement(_IconButton.default, {
130
+ className: "u-p-half",
131
+ disabled: !inputValue,
132
+ onClick: handleClick
133
+ }, /*#__PURE__*/_react.default.createElement(_Buttons.default, {
134
+ component: "div",
135
+ className: "u-miw-auto u-w-2 u-h-2 u-bdrs-circle",
136
+ classes: {
137
+ label: 'u-flex u-w-auto'
138
+ },
139
+ label: /*#__PURE__*/_react.default.createElement(_Icon.default, {
140
+ icon: _Paperplane.default
141
+ }),
142
+ disabled: !inputValue
143
+ })),
144
+ onKeyDown: function onKeyDown(ev) {
145
+ if (!isMobile) {
146
+ if (ev.shiftKey && ev.key === 'Enter') {
147
+ return ev;
148
+ }
149
+
150
+ if (ev.key === 'Enter') {
151
+ ev.preventDefault(); // prevent form submit
152
+
153
+ return handleClick();
154
+ }
155
+ }
156
+ }
157
+ }
158
+ },
159
+ onChange: handleChange
160
+ }));
161
+ };
162
+
163
+ var _default = ConversationBar;
164
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ export default SourcesWithFilesQuery;
2
+ declare function SourcesWithFilesQuery({ messageId, sources }: {
3
+ messageId: any;
4
+ sources: any;
5
+ }): JSX.Element | null;
@@ -0,0 +1,134 @@
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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _cozyClient = require("cozy-client");
17
+
18
+ var _Box = _interopRequireDefault(require("cozy-ui/transpiled/react/Box"));
19
+
20
+ var _Chips = _interopRequireDefault(require("cozy-ui/transpiled/react/Chips"));
21
+
22
+ var _Grow = _interopRequireDefault(require("cozy-ui/transpiled/react/Grow"));
23
+
24
+ var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
25
+
26
+ var _MultiFiles = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/MultiFiles"));
27
+
28
+ var _Right = _interopRequireDefault(require("cozy-ui/transpiled/react/Icons/Right"));
29
+
30
+ var _I18n = require("cozy-ui/transpiled/react/providers/I18n");
31
+
32
+ var _SourcesItem = _interopRequireDefault(require("./SourcesItem"));
33
+
34
+ var _queries = require("../../queries");
35
+
36
+ var _excluded = ["data"];
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 Sources = function Sources(_ref) {
43
+ var messageId = _ref.messageId,
44
+ files = _ref.files;
45
+
46
+ var _useState = (0, _react.useState)(false),
47
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
48
+ showSources = _useState2[0],
49
+ setShowSources = _useState2[1];
50
+
51
+ var _useI18n = (0, _I18n.useI18n)(),
52
+ t = _useI18n.t;
53
+
54
+ var ref = (0, _react.useRef)();
55
+
56
+ var handleShowSources = function handleShowSources() {
57
+ setShowSources(function (v) {
58
+ return !v;
59
+ });
60
+ }; // we want to scroll down to the sources button when it is displayed
61
+
62
+
63
+ (0, _react.useEffect)(function () {
64
+ var _ref$current;
65
+
66
+ (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.scrollIntoView(false);
67
+ }, []);
68
+ (0, _react.useEffect)(function () {
69
+ if (showSources) {
70
+ var sourcesBottom = ref.current.getBoundingClientRect().bottom;
71
+ var innerContainer = document.getElementsByClassName('cozyDialogContent')[0];
72
+ var innerContainerBottom = innerContainer.getBoundingClientRect().bottom;
73
+
74
+ if (sourcesBottom > innerContainerBottom) {
75
+ ref.current.scrollIntoView(false);
76
+ }
77
+ }
78
+ }, [showSources]);
79
+ return /*#__PURE__*/_react.default.createElement(_Box.default, {
80
+ ref: ref,
81
+ className: "u-mt-1-half",
82
+ pl: "44px"
83
+ }, /*#__PURE__*/_react.default.createElement(_Chips.default, {
84
+ className: "u-mb-1",
85
+ icon: /*#__PURE__*/_react.default.createElement(_Icon.default, {
86
+ icon: _MultiFiles.default,
87
+ className: "u-ml-half"
88
+ }),
89
+ label: t('assistant.sources', files.length),
90
+ deleteIcon: /*#__PURE__*/_react.default.createElement(_Icon.default, {
91
+ className: "u-h-1",
92
+ icon: _Right.default,
93
+ rotate: showSources ? 90 : 0
94
+ }),
95
+ clickable: true,
96
+ onClick: handleShowSources,
97
+ onDelete: handleShowSources
98
+ }), /*#__PURE__*/_react.default.createElement(_Grow.default, {
99
+ in: showSources,
100
+ style: {
101
+ transformOrigin: '0 0 0'
102
+ },
103
+ mountOnEnter: true,
104
+ unmountOnExit: true
105
+ }, /*#__PURE__*/_react.default.createElement("div", null, files.map(function (file) {
106
+ return /*#__PURE__*/_react.default.createElement(_SourcesItem.default, {
107
+ key: "".concat(messageId, "-").concat(file._id),
108
+ file: file
109
+ });
110
+ }))));
111
+ };
112
+
113
+ var SourcesWithFilesQuery = function SourcesWithFilesQuery(_ref2) {
114
+ var messageId = _ref2.messageId,
115
+ sources = _ref2.sources;
116
+ var fileIds = sources.map(function (source) {
117
+ return source.id;
118
+ });
119
+ var filesByIds = (0, _queries.buildFilesByIds)(fileIds);
120
+
121
+ var _useQuery = (0, _cozyClient.useQuery)(filesByIds.definition, filesByIds.options),
122
+ files = _useQuery.data,
123
+ queryResult = (0, _objectWithoutProperties2.default)(_useQuery, _excluded);
124
+
125
+ var isLoading = (0, _cozyClient.isQueryLoading)(queryResult);
126
+ if (isLoading || files.length === 0) return null;
127
+ return /*#__PURE__*/_react.default.createElement(Sources, {
128
+ messageId: messageId,
129
+ files: files
130
+ });
131
+ };
132
+
133
+ var _default = SourcesWithFilesQuery;
134
+ exports.default = _default;
@@ -0,0 +1,4 @@
1
+ export default SourcesItem;
2
+ declare function SourcesItem({ file }: {
3
+ file: any;
4
+ }): JSX.Element;
@@ -0,0 +1,55 @@
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 _cozyClient = require("cozy-client");
13
+
14
+ var _file = require("cozy-client/dist/models/file");
15
+
16
+ var _Icon = _interopRequireDefault(require("cozy-ui/transpiled/react/Icon"));
17
+
18
+ var _ListItem = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItem"));
19
+
20
+ var _ListItemIcon = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemIcon"));
21
+
22
+ var _ListItemText = _interopRequireDefault(require("cozy-ui/transpiled/react/ListItemText"));
23
+
24
+ var _getIconForSearchResult = require("../../Search/getIconForSearchResult");
25
+
26
+ var styles = {
27
+ "sourcesItem": "styles__sourcesItem___204Zw"
28
+ };
29
+
30
+ var SourcesItem = function SourcesItem(_ref) {
31
+ var file = _ref.file;
32
+ var client = (0, _cozyClient.useClient)();
33
+ var docUrl = (0, _cozyClient.generateWebLink)({
34
+ slug: (0, _file.isNote)(file) ? 'notes' : 'drive',
35
+ cozyUrl: client === null || client === void 0 ? void 0 : client.getStackClient().uri,
36
+ subDomainType: client === null || client === void 0 ? void 0 : client.getInstanceOptions().subdomain,
37
+ hash: (0, _file.isNote)(file) ? "/n/".concat(file._id) : "/folder/".concat(file.dir_id, "/file/").concat(file._id)
38
+ });
39
+ return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
40
+ className: styles['sourcesItem'],
41
+ component: "a",
42
+ href: docUrl,
43
+ target: "_blank",
44
+ button: true
45
+ }, /*#__PURE__*/_react.default.createElement(_ListItemIcon.default, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
46
+ icon: (0, _getIconForSearchResult.getDriveMimeTypeIcon)(false, file.name, file.mime),
47
+ size: 32
48
+ })), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
49
+ primary: file.name,
50
+ secondary: file.path.replace(file.name, '')
51
+ }));
52
+ };
53
+
54
+ var _default = SourcesItem;
55
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ .sourcesItem
2
+ // !important here to override Mui styles
3
+ margin-bottom 0.25rem !important
4
+ border 1px solid var(--borderMainColor) !important
5
+ border-radius 8px !important
@@ -0,0 +1,15 @@
1
+ @require 'settings/breakpoints.styl'
2
+
3
+ .conversationBar
4
+ max-height 95px
5
+ min-height 48px
6
+ z-index calc(var(--zIndex-modal) + 15)
7
+
8
+ +gt-mobile()
9
+ max-height 178px
10
+
11
+ .conversationBar-input
12
+ max-height 80px
13
+
14
+ +gt-mobile()
15
+ max-height 155px
@@ -0,0 +1,2 @@
1
+ export default NoResultItem;
2
+ declare function NoResultItem(): JSX.Element;
@@ -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 NoResultItem = function NoResultItem() {
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.noItem')
26
+ }));
27
+ };
28
+
29
+ var _default = NoResultItem;
30
+ exports.default = _default;
@@ -0,0 +1,2 @@
1
+ export default NotEnoughItem;
2
+ declare function NotEnoughItem(): JSX.Element;