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.
- package/LICENSE +21 -0
- package/README.md +89 -0
- package/dist/components/AssistantDesktop.d.ts +16 -0
- package/dist/components/AssistantDesktop.js +44 -0
- package/dist/components/AssistantIcon/AssistantIcon.d.ts +6 -0
- package/dist/components/AssistantIcon/AssistantIcon.js +43 -0
- package/dist/components/AssistantMobile.d.ts +2 -0
- package/dist/components/AssistantMobile.js +50 -0
- package/dist/components/AssistantProvider.d.ts +7 -0
- package/dist/components/AssistantProvider.js +174 -0
- package/dist/components/Conversations/ChatAssistantItem.d.ts +8 -0
- package/dist/components/Conversations/ChatAssistantItem.js +53 -0
- package/dist/components/Conversations/ChatConversation.d.ts +5 -0
- package/dist/components/Conversations/ChatConversation.js +110 -0
- package/dist/components/Conversations/ChatItem.d.ts +7 -0
- package/dist/components/Conversations/ChatItem.js +39 -0
- package/dist/components/Conversations/ChatItemLabel.d.ts +5 -0
- package/dist/components/Conversations/ChatItemLabel.js +29 -0
- package/dist/components/Conversations/ChatRealtimeAnswer.d.ts +5 -0
- package/dist/components/Conversations/ChatRealtimeAnswer.js +30 -0
- package/dist/components/Conversations/ChatUserItem.d.ts +7 -0
- package/dist/components/Conversations/ChatUserItem.js +41 -0
- package/dist/components/Conversations/Conversation.d.ts +4 -0
- package/dist/components/Conversations/Conversation.js +41 -0
- package/dist/components/Conversations/ConversationBar.d.ts +4 -0
- package/dist/components/Conversations/ConversationBar.js +164 -0
- package/dist/components/Conversations/Sources/Sources.d.ts +5 -0
- package/dist/components/Conversations/Sources/Sources.js +134 -0
- package/dist/components/Conversations/Sources/SourcesItem.d.ts +4 -0
- package/dist/components/Conversations/Sources/SourcesItem.js +55 -0
- package/dist/components/Conversations/Sources/styles.styl +5 -0
- package/dist/components/Conversations/styles.styl +15 -0
- package/dist/components/ResultMenu/NoResultItem.d.ts +2 -0
- package/dist/components/ResultMenu/NoResultItem.js +30 -0
- package/dist/components/ResultMenu/NotEnoughItem.d.ts +2 -0
- package/dist/components/ResultMenu/NotEnoughItem.js +30 -0
- package/dist/components/ResultMenu/ResultMenu.d.ts +6 -0
- package/dist/components/ResultMenu/ResultMenu.js +47 -0
- package/dist/components/ResultMenu/ResultMenuContent.d.ts +3 -0
- package/dist/components/ResultMenu/ResultMenuContent.js +117 -0
- package/dist/components/ResultMenu/ResultMenuItem.d.ts +12 -0
- package/dist/components/ResultMenu/ResultMenuItem.js +65 -0
- package/dist/components/ResultMenu/SuggestionItemTextHighlighted.d.ts +5 -0
- package/dist/components/ResultMenu/SuggestionItemTextHighlighted.js +100 -0
- package/dist/components/ResultMenu/SuggestionItemTextSecondary.d.ts +7 -0
- package/dist/components/ResultMenu/SuggestionItemTextSecondary.js +70 -0
- package/dist/components/ResultMenu/styles.styl +8 -0
- package/dist/components/Search/EncryptedFolderIcon.d.ts +2 -0
- package/dist/components/Search/EncryptedFolderIcon.js +34 -0
- package/dist/components/Search/SearchBar.d.ts +4 -0
- package/dist/components/Search/SearchBar.js +71 -0
- package/dist/components/Search/SearchBarDesktop.d.ts +15 -0
- package/dist/components/Search/SearchBarDesktop.js +167 -0
- package/dist/components/Search/SearchBarMobile.d.ts +6 -0
- package/dist/components/Search/SearchBarMobile.js +71 -0
- package/dist/components/Search/SearchProvider.d.ts +7 -0
- package/dist/components/Search/SearchProvider.js +81 -0
- package/dist/components/Search/SearchSubmitFab.d.ts +5 -0
- package/dist/components/Search/SearchSubmitFab.js +59 -0
- package/dist/components/Search/SuggestionsPlaceholder.d.ts +2 -0
- package/dist/components/Search/SuggestionsPlaceholder.js +55 -0
- package/dist/components/Search/getFileMimetype.d.ts +1 -0
- package/dist/components/Search/getFileMimetype.js +54 -0
- package/dist/components/Search/getIconForSearchResult.d.ts +12 -0
- package/dist/components/Search/getIconForSearchResult.js +127 -0
- package/dist/components/Search/styles.styl +7 -0
- package/dist/components/Search/useFetchResult.d.ts +4 -0
- package/dist/components/Search/useFetchResult.js +191 -0
- package/dist/components/Views/AssistantDialog.d.ts +2 -0
- package/dist/components/Views/AssistantDialog.js +79 -0
- package/dist/components/Views/SearchDialog.d.ts +2 -0
- package/dist/components/Views/SearchDialog.js +96 -0
- package/dist/components/helpers.d.ts +5 -0
- package/dist/components/helpers.js +58 -0
- package/dist/components/queries.d.ts +25 -0
- package/dist/components/queries.js +58 -0
- package/dist/components/styles.styl +18 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +39 -0
- package/dist/locales/en.json +21 -0
- package/dist/locales/fr.json +21 -0
- package/dist/locales/index.d.ts +6 -0
- package/dist/locales/index.js +53 -0
- package/dist/stylesheet.css +48 -0
- 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,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,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,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,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,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,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,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,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,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;
|