@smart-link/im-base 1.0.1

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 (185) hide show
  1. package/REMAD.md +2 -0
  2. package/dist/DBAdapter.d.ts +60 -0
  3. package/dist/DBAdapter.js +151 -0
  4. package/dist/DBAdapter.js.map +1 -0
  5. package/dist/ImManager.d.ts +116 -0
  6. package/dist/ImManager.js +400 -0
  7. package/dist/ImManager.js.map +1 -0
  8. package/dist/api/api.config.d.ts +35 -0
  9. package/dist/api/api.config.js +40 -0
  10. package/dist/api/api.config.js.map +1 -0
  11. package/dist/api/index.d.ts +32 -0
  12. package/dist/api/index.js +29 -0
  13. package/dist/api/index.js.map +1 -0
  14. package/dist/constants.d.ts +192 -0
  15. package/dist/constants.js +181 -0
  16. package/dist/constants.js.map +1 -0
  17. package/dist/db/indexdb/index.d.ts +82 -0
  18. package/dist/db/indexdb/index.js +591 -0
  19. package/dist/db/indexdb/index.js.map +1 -0
  20. package/dist/db/indexdb/indexdb.config.d.ts +18 -0
  21. package/dist/db/indexdb/indexdb.config.js +117 -0
  22. package/dist/db/indexdb/indexdb.config.js.map +1 -0
  23. package/dist/db/sqlite/index.d.ts +65 -0
  24. package/dist/db/sqlite/index.js +687 -0
  25. package/dist/db/sqlite/index.js.map +1 -0
  26. package/dist/db/sqlite/scripts/db-script-1.0.0.d.ts +2 -0
  27. package/dist/db/sqlite/scripts/db-script-1.0.0.js +77 -0
  28. package/dist/db/sqlite/scripts/db-script-1.0.0.js.map +1 -0
  29. package/dist/db/sqlite/scripts/db-script-1.0.1.d.ts +2 -0
  30. package/dist/db/sqlite/scripts/db-script-1.0.1.js +7 -0
  31. package/dist/db/sqlite/scripts/db-script-1.0.1.js.map +1 -0
  32. package/dist/db/sqlite/sqlite.config.d.ts +11 -0
  33. package/dist/db/sqlite/sqlite.config.js +24 -0
  34. package/dist/db/sqlite/sqlite.config.js.map +1 -0
  35. package/dist/index.d.ts +13 -0
  36. package/dist/index.js +39 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/interface.d.ts +386 -0
  39. package/dist/interface.js +3 -0
  40. package/dist/interface.js.map +1 -0
  41. package/dist/locales/en/im.d.ts +3 -0
  42. package/dist/locales/en/im.js +305 -0
  43. package/dist/locales/en/im.js.map +1 -0
  44. package/dist/locales/index.d.ts +4 -0
  45. package/dist/locales/index.js +28 -0
  46. package/dist/locales/index.js.map +1 -0
  47. package/dist/locales/lao/im.d.ts +3 -0
  48. package/dist/locales/lao/im.js +305 -0
  49. package/dist/locales/lao/im.js.map +1 -0
  50. package/dist/locales/zh/im.d.ts +303 -0
  51. package/dist/locales/zh/im.js +307 -0
  52. package/dist/locales/zh/im.js.map +1 -0
  53. package/dist/slice/call/call.action.d.ts +1 -0
  54. package/dist/slice/call/call.action.js +518 -0
  55. package/dist/slice/call/call.action.js.map +1 -0
  56. package/dist/slice/call/call.slice.d.ts +29 -0
  57. package/dist/slice/call/call.slice.js +107 -0
  58. package/dist/slice/call/call.slice.js.map +1 -0
  59. package/dist/slice/collection/collection.action.d.ts +4 -0
  60. package/dist/slice/collection/collection.action.js +28 -0
  61. package/dist/slice/collection/collection.action.js.map +1 -0
  62. package/dist/slice/collection/collection.slice.d.ts +10 -0
  63. package/dist/slice/collection/collection.slice.js +33 -0
  64. package/dist/slice/collection/collection.slice.js.map +1 -0
  65. package/dist/slice/collection/index.d.ts +8 -0
  66. package/dist/slice/collection/index.js +30 -0
  67. package/dist/slice/collection/index.js.map +1 -0
  68. package/dist/slice/conversation/conversation.action.d.ts +47 -0
  69. package/dist/slice/conversation/conversation.action.js +507 -0
  70. package/dist/slice/conversation/conversation.action.js.map +1 -0
  71. package/dist/slice/conversation/conversation.slice.d.ts +39 -0
  72. package/dist/slice/conversation/conversation.slice.js +79 -0
  73. package/dist/slice/conversation/conversation.slice.js.map +1 -0
  74. package/dist/slice/conversation/index.d.ts +60 -0
  75. package/dist/slice/conversation/index.js +30 -0
  76. package/dist/slice/conversation/index.js.map +1 -0
  77. package/dist/slice/forward/forward.action.d.ts +8 -0
  78. package/dist/slice/forward/forward.action.js +100 -0
  79. package/dist/slice/forward/forward.action.js.map +1 -0
  80. package/dist/slice/forward/forward.slice.d.ts +17 -0
  81. package/dist/slice/forward/forward.slice.js +29 -0
  82. package/dist/slice/forward/forward.slice.js.map +1 -0
  83. package/dist/slice/forward/index.d.ts +11 -0
  84. package/dist/slice/forward/index.js +30 -0
  85. package/dist/slice/forward/index.js.map +1 -0
  86. package/dist/slice/getState.d.ts +8 -0
  87. package/dist/slice/getState.js +12 -0
  88. package/dist/slice/getState.js.map +1 -0
  89. package/dist/slice/group/group.action.d.ts +2 -0
  90. package/dist/slice/group/group.action.js +24 -0
  91. package/dist/slice/group/group.action.js.map +1 -0
  92. package/dist/slice/group/group.slice.d.ts +10 -0
  93. package/dist/slice/group/group.slice.js +33 -0
  94. package/dist/slice/group/group.slice.js.map +1 -0
  95. package/dist/slice/group/index.d.ts +8 -0
  96. package/dist/slice/group/index.js +32 -0
  97. package/dist/slice/group/index.js.map +1 -0
  98. package/dist/slice/index.d.ts +28 -0
  99. package/dist/slice/index.js +60 -0
  100. package/dist/slice/index.js.map +1 -0
  101. package/dist/slice/message/index.d.ts +47 -0
  102. package/dist/slice/message/index.js +31 -0
  103. package/dist/slice/message/index.js.map +1 -0
  104. package/dist/slice/message/message.action.d.ts +16 -0
  105. package/dist/slice/message/message.action.js +269 -0
  106. package/dist/slice/message/message.action.js.map +1 -0
  107. package/dist/slice/message/message.panel.action.d.ts +23 -0
  108. package/dist/slice/message/message.panel.action.js +234 -0
  109. package/dist/slice/message/message.panel.action.js.map +1 -0
  110. package/dist/slice/message/message.slice.d.ts +66 -0
  111. package/dist/slice/message/message.slice.js +119 -0
  112. package/dist/slice/message/message.slice.js.map +1 -0
  113. package/dist/slice/setting/index.d.ts +20 -0
  114. package/dist/slice/setting/index.js +31 -0
  115. package/dist/slice/setting/index.js.map +1 -0
  116. package/dist/slice/setting/setting.action.d.ts +8 -0
  117. package/dist/slice/setting/setting.action.js +94 -0
  118. package/dist/slice/setting/setting.action.js.map +1 -0
  119. package/dist/slice/setting/setting.slice.d.ts +18 -0
  120. package/dist/slice/setting/setting.slice.js +64 -0
  121. package/dist/slice/setting/setting.slice.js.map +1 -0
  122. package/dist/socket/emitter-call.d.ts +1 -0
  123. package/dist/socket/emitter-call.js +290 -0
  124. package/dist/socket/emitter-call.js.map +1 -0
  125. package/dist/socket/emitter-message.d.ts +15 -0
  126. package/dist/socket/emitter-message.js +341 -0
  127. package/dist/socket/emitter-message.js.map +1 -0
  128. package/dist/socket/listener/busi-notify.d.ts +3 -0
  129. package/dist/socket/listener/busi-notify.js +49 -0
  130. package/dist/socket/listener/busi-notify.js.map +1 -0
  131. package/dist/socket/listener/c2c.d.ts +5 -0
  132. package/dist/socket/listener/c2c.js +95 -0
  133. package/dist/socket/listener/c2c.js.map +1 -0
  134. package/dist/socket/listener/c2g.d.ts +4 -0
  135. package/dist/socket/listener/c2g.js +35 -0
  136. package/dist/socket/listener/c2g.js.map +1 -0
  137. package/dist/socket/listener/conversation.d.ts +3 -0
  138. package/dist/socket/listener/conversation.js +83 -0
  139. package/dist/socket/listener/conversation.js.map +1 -0
  140. package/dist/socket/listener/group-operate.d.ts +13 -0
  141. package/dist/socket/listener/group-operate.js +102 -0
  142. package/dist/socket/listener/group-operate.js.map +1 -0
  143. package/dist/socket/listener/index.d.ts +33 -0
  144. package/dist/socket/listener/index.js +33 -0
  145. package/dist/socket/listener/index.js.map +1 -0
  146. package/dist/socket/listener/one-2-one-call.d.ts +1 -0
  147. package/dist/socket/listener/one-2-one-call.js +200 -0
  148. package/dist/socket/listener/one-2-one-call.js.map +1 -0
  149. package/dist/socket/listener/session.d.ts +8 -0
  150. package/dist/socket/listener/session.js +91 -0
  151. package/dist/socket/listener/session.js.map +1 -0
  152. package/dist/socket/message-handler.d.ts +27 -0
  153. package/dist/socket/message-handler.js +436 -0
  154. package/dist/socket/message-handler.js.map +1 -0
  155. package/dist/socket/sync-subscribe.d.ts +8 -0
  156. package/dist/socket/sync-subscribe.js +408 -0
  157. package/dist/socket/sync-subscribe.js.map +1 -0
  158. package/dist/utils/carousel-lock.d.ts +7 -0
  159. package/dist/utils/carousel-lock.js +35 -0
  160. package/dist/utils/carousel-lock.js.map +1 -0
  161. package/dist/utils/conversation.d.ts +9 -0
  162. package/dist/utils/conversation.js +58 -0
  163. package/dist/utils/conversation.js.map +1 -0
  164. package/dist/utils/file.d.ts +3 -0
  165. package/dist/utils/file.js +53 -0
  166. package/dist/utils/file.js.map +1 -0
  167. package/dist/utils/guid.d.ts +1 -0
  168. package/dist/utils/guid.js +15 -0
  169. package/dist/utils/guid.js.map +1 -0
  170. package/dist/utils/message.d.ts +14 -0
  171. package/dist/utils/message.js +242 -0
  172. package/dist/utils/message.js.map +1 -0
  173. package/dist/utils/request.d.ts +41 -0
  174. package/dist/utils/request.js +72 -0
  175. package/dist/utils/request.js.map +1 -0
  176. package/dist/utils/time.d.ts +6 -0
  177. package/dist/utils/time.js +45 -0
  178. package/dist/utils/time.js.map +1 -0
  179. package/dist/utils/url.d.ts +1 -0
  180. package/dist/utils/url.js +22 -0
  181. package/dist/utils/url.js.map +1 -0
  182. package/dist/utils/version.d.ts +1 -0
  183. package/dist/utils/version.js +15 -0
  184. package/dist/utils/version.js.map +1 -0
  185. package/package.json +35 -0
@@ -0,0 +1,47 @@
1
+ declare const MessageActions: {
2
+ getMessageFromState(messageSeq: string, getState: any): import("../..").IMessage | undefined;
3
+ addMessage: (imManager: import("../../ImManager").default, message: import("../..").IChatMessage, download?: boolean | undefined) => import("../..").AsyncAction;
4
+ updateMessage: (messageSeq: string, message: Partial<import("../..").IMessage>) => import("../..").AsyncAction;
5
+ updateMessageStatus: (message: Partial<import("../..").IMessage>) => import("../..").AsyncAction;
6
+ addMessages: (imManager: import("../../ImManager").default, id: string, adds: import("../..").IChatMessage[], download?: boolean | undefined) => import("../..").AsyncAction;
7
+ deleteMessage: (messageSeq: string) => import("../..").AsyncAction;
8
+ deleteMessages: (messageSeqs: string[]) => import("../..").AsyncAction;
9
+ loadMessages: (imManager: import("../../ImManager").default, id: string) => import("../..").AsyncAction;
10
+ loadBusiNotifyMessages: (imManager: import("../../ImManager").default, id: string) => import("../..").AsyncAction;
11
+ loadSearchMessages: (imManager: import("../../ImManager").default, conversationId: string, messageSeq: string) => import("../..").AsyncAction;
12
+ loadBeforeMessages: (imManager: import("../../ImManager").default, conversationId: string, page: import("../..").IPage) => import("../..").AsyncAction;
13
+ loadAfterMessages: (imManager: import("../../ImManager").default, conversationId: string, page: import("../..").IPage) => import("../..").AsyncAction;
14
+ collectMessage: (imManager: import("../../ImManager").default, message: import("../..").IMessage) => import("../..").AsyncAction;
15
+ replyMessage: (imManager: import("../../ImManager").default, message: import("../..").IMessage) => import("../..").AsyncAction;
16
+ resetState: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chat/message/resetState">;
17
+ setUserOnlineClients: import("@reduxjs/toolkit").ActionCreatorWithPayload<string[], "chat/message/setUserOnlineClients">;
18
+ setVoicePlayMessageSeq: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "chat/message/setVoicePlayMessageSeq">;
19
+ setTips: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
20
+ messageSeq: string;
21
+ type: import("../..").TipsType;
22
+ text?: string | undefined;
23
+ } | null, "chat/message/setTips">;
24
+ setTipsQueue: import("@reduxjs/toolkit").ActionCreatorWithPayload<any[], "chat/message/setTipsQueue">;
25
+ setQuote: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessageQuote | null, "chat/message/setQuote">;
26
+ setOptionTitle: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/message/setOptionTitle">;
27
+ setAllMembers: import("@reduxjs/toolkit").ActionCreatorWithPayload<[], "chat/message/setAllMembers">;
28
+ setBusiNotifyType: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "chat/message/setBusiNotifyType">;
29
+ setBusiNotifyKeyword: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/message/setBusiNotifyKeyword">;
30
+ setLastMessageSeq: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "chat/message/setLastMessageSeq">;
31
+ setFlatListRef: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "chat/message/setFlatListRef">;
32
+ setDragHeight: import("@reduxjs/toolkit").ActionCreatorWithPayload<number, "chat/message/setDragHeight">;
33
+ setDragList: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessage[], "chat/message/setDragList">;
34
+ setRangeList: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessage[], "chat/message/setRangeList">;
35
+ setFocusMessageSeq: import("@reduxjs/toolkit").ActionCreatorWithPayload<string | null, "chat/message/setFocusMessageSeq">;
36
+ setIsSearch: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "chat/message/setIsSearch">;
37
+ setIsMultiple: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "chat/message/setIsMultiple">;
38
+ setMultipleSelect: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "chat/message/setMultipleSelect">;
39
+ setMessageListData: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessage[], "chat/message/setMessageListData">;
40
+ setMessages: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessage[], "chat/message/setMessages">;
41
+ setMessageText: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/message/setMessageText">;
42
+ setAtUsers: import("@reduxjs/toolkit").ActionCreatorWithPayload<[], "chat/message/setAtUsers">;
43
+ addAtUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IGroupMember, "chat/message/addAtUser">;
44
+ setDraftText: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/message/setDraftText">;
45
+ setForwardMessage: import("@reduxjs/toolkit").ActionCreatorWithPayload<import("../..").IMessage | import("../..").IMessage[] | null, "chat/message/setForwardMessage">;
46
+ };
47
+ export { MessageActions };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.MessageActions = void 0;
27
+ const message_slice_1 = require("./message.slice");
28
+ const asyncActions = __importStar(require("./message.action"));
29
+ const MessageActions = Object.assign(Object.assign({}, message_slice_1.actions), asyncActions);
30
+ exports.MessageActions = MessageActions;
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/slice/message/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAwC;AACxC,+DAAiD;AAEjD,MAAM,cAAc,mCAAO,uBAAO,GAAK,YAAY,CAAC,CAAC;AAE7C,wCAAc"}
@@ -0,0 +1,16 @@
1
+ import ImManager from '../../ImManager';
2
+ import { AsyncAction, IMessage, IPage, IChatMessage } from '../../interface';
3
+ export declare const addMessage: (imManager: ImManager, message: IChatMessage, download?: boolean) => AsyncAction;
4
+ export declare const updateMessage: (messageSeq: string, message: Partial<IMessage>) => AsyncAction;
5
+ export declare const updateMessageStatus: (message: Partial<IMessage>) => AsyncAction;
6
+ export declare const addMessages: (imManager: ImManager, id: string, adds: IChatMessage[], download?: boolean) => AsyncAction;
7
+ export declare const deleteMessage: (messageSeq: string) => AsyncAction;
8
+ export declare const deleteMessages: (messageSeqs: string[]) => AsyncAction;
9
+ export declare const loadMessages: (imManager: ImManager, id: string) => AsyncAction;
10
+ export declare const loadBusiNotifyMessages: (imManager: ImManager, id: string) => AsyncAction;
11
+ export declare const loadSearchMessages: (imManager: ImManager, conversationId: string, messageSeq: string) => AsyncAction;
12
+ export declare const loadBeforeMessages: (imManager: ImManager, conversationId: string, page: IPage) => AsyncAction;
13
+ export declare const loadAfterMessages: (imManager: ImManager, conversationId: string, page: IPage) => AsyncAction;
14
+ export declare const collectMessage: (imManager: ImManager, message: IMessage) => AsyncAction;
15
+ export declare const replyMessage: (imManager: ImManager, message: IMessage) => AsyncAction;
16
+ export declare function getMessageFromState(messageSeq: string, getState: any): IMessage | undefined;
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getMessageFromState = exports.replyMessage = exports.collectMessage = exports.loadAfterMessages = exports.loadBeforeMessages = exports.loadSearchMessages = exports.loadBusiNotifyMessages = exports.loadMessages = exports.deleteMessages = exports.deleteMessage = exports.addMessages = exports.updateMessageStatus = exports.updateMessage = exports.addMessage = void 0;
13
+ const lodash_1 = require("lodash");
14
+ const constants_1 = require("../../constants");
15
+ const message_1 = require("../../utils/message");
16
+ const message_slice_1 = require("./message.slice");
17
+ const getState_1 = require("../getState");
18
+ const file_1 = require("../../utils/file");
19
+ const { setMessages, setTips, setTipsQueue, setIsMultiple, setUserOnlineClients, setQuote, setAtUsers, setMultipleSelect, setForwardMessage, } = message_slice_1.actions;
20
+ const addMessage = (imManager, message, download = false) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
21
+ const { messages } = (0, getState_1.getMessageState)(getState);
22
+ dispatch(setMessages([(0, lodash_1.cloneDeep)(message), ...messages]));
23
+ if (download) {
24
+ yield downloadPayload(imManager, message, dispatch);
25
+ yield downloadQuotePayload(imManager, message, dispatch);
26
+ }
27
+ });
28
+ exports.addMessage = addMessage;
29
+ const updateMessage = (messageSeq, message) => (dispatch, getState) => {
30
+ const { messages } = (0, getState_1.getMessageState)(getState);
31
+ dispatch(setMessages(messages.map(item => {
32
+ if (item.messageSeq === messageSeq) {
33
+ return (0, lodash_1.merge)({}, item, (0, lodash_1.cloneDeep)(message));
34
+ }
35
+ return item;
36
+ })));
37
+ };
38
+ exports.updateMessage = updateMessage;
39
+ const updateMessageStatus = (message) => (dispatch, getState) => {
40
+ const { messages } = (0, getState_1.getMessageState)(getState);
41
+ dispatch(setMessages(messages.map(item => {
42
+ if (item.messageFrom === message.messageFrom) {
43
+ return (0, lodash_1.merge)({}, item, {
44
+ messageStatus: message.messageStatus
45
+ });
46
+ }
47
+ return item;
48
+ })));
49
+ };
50
+ exports.updateMessageStatus = updateMessageStatus;
51
+ const addMessages = (imManager, id, adds, download = false) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
52
+ const { messages } = (0, getState_1.getMessageState)(getState);
53
+ yield addTips(imManager, id, dispatch);
54
+ const list = [...adds, ...messages].sort((a, b) => b.messageTime - a.messageTime);
55
+ dispatch(setMessages(list));
56
+ if (download) {
57
+ for (let i = 0; i < adds.length; i++) {
58
+ const newMessage = (0, lodash_1.cloneDeep)(adds[i]);
59
+ yield downloadPayload(imManager, newMessage, dispatch);
60
+ yield downloadQuotePayload(imManager, newMessage, dispatch);
61
+ }
62
+ }
63
+ });
64
+ exports.addMessages = addMessages;
65
+ function downloadMessage(imManager, messages, dispatch) {
66
+ setTimeout(() => {
67
+ (0, message_1.downloadCommonMessageFilter)(messages).forEach((item) => __awaiter(this, void 0, void 0, function* () { return yield downloadPayload(imManager, (0, lodash_1.cloneDeep)(item), dispatch); }));
68
+ (0, message_1.downloadQuoteMessageFilter)(messages).forEach((item) => __awaiter(this, void 0, void 0, function* () { return yield downloadQuotePayload(imManager, (0, lodash_1.cloneDeep)(item), dispatch); }));
69
+ }, 500);
70
+ }
71
+ function downloadPayload(imManager, message, dispatch) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ yield (0, file_1.doCommonMessageDownload)(imManager, message);
74
+ dispatch((0, exports.updateMessage)(message.messageSeq, message));
75
+ yield imManager.db.updateMessage(message);
76
+ });
77
+ }
78
+ function downloadQuotePayload(imManager, message, dispatch) {
79
+ return __awaiter(this, void 0, void 0, function* () {
80
+ yield (0, message_1.doQuoteMessageDownload)(imManager, message);
81
+ dispatch((0, exports.updateMessage)(message.messageSeq, message));
82
+ yield imManager.db.updateMessage(message);
83
+ });
84
+ }
85
+ function addTips(imManager, id, dispatch) {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ //处理新消息 @消息 回复消息
88
+ const tipsQueue = [];
89
+ const conversation = yield imManager.db.selectConversationById(id);
90
+ if (!conversation) {
91
+ return;
92
+ }
93
+ const { lastMessageSeq, unreadCount } = conversation;
94
+ if (lastMessageSeq && unreadCount >= 5) {
95
+ tipsQueue.push({
96
+ messageSeq: lastMessageSeq,
97
+ type: constants_1.TipsType.NEW_LINE,
98
+ text: unreadCount + imManager.t('newMessageTips'),
99
+ });
100
+ }
101
+ const { tipsList } = conversation;
102
+ (tipsList || []).forEach((item) => {
103
+ const { type, messageSeq } = item;
104
+ if (type === constants_1.TipsType.QUOTE) {
105
+ tipsQueue.push({
106
+ messageSeq: messageSeq,
107
+ type: constants_1.TipsType.QUOTE,
108
+ text: imManager.t('replyTips'),
109
+ });
110
+ }
111
+ else if (type === constants_1.TipsType.AT) {
112
+ tipsQueue.push({
113
+ messageSeq: messageSeq,
114
+ type: constants_1.TipsType.AT,
115
+ text: imManager.t('atTips'),
116
+ });
117
+ }
118
+ });
119
+ if (tipsQueue.length > 0) {
120
+ tipsQueue.reverse();
121
+ dispatch(setTips(tipsQueue.shift()));
122
+ dispatch(setTipsQueue(tipsQueue));
123
+ }
124
+ });
125
+ }
126
+ const deleteMessage = messageSeq => (dispatch, getState) => {
127
+ const { messages } = (0, getState_1.getMessageState)(getState);
128
+ dispatch(setMessages(messages.filter(item => item.messageSeq !== messageSeq)));
129
+ };
130
+ exports.deleteMessage = deleteMessage;
131
+ const deleteMessages = (messageSeqs) => (dispatch, getState) => {
132
+ const { messages } = (0, getState_1.getMessageState)(getState);
133
+ dispatch(setMessages(messages.filter(item => !messageSeqs.includes(item.messageSeq))));
134
+ };
135
+ exports.deleteMessages = deleteMessages;
136
+ const loadMessages = (imManager, id) => (dispatch) => __awaiter(void 0, void 0, void 0, function* () {
137
+ //查询发送中的消息
138
+ let tMessageEmitting = yield imManager.db.selectMessageEmitting({ conversationId: id });
139
+ //超时更新成失败
140
+ const currentTime = new Date().getTime();
141
+ tMessageEmitting.forEach(item => {
142
+ if (item === constants_1.MessageStatus.EMIT_ERROR) {
143
+ return;
144
+ }
145
+ if (currentTime - item.messageTime > 120000) {
146
+ item.messageStatus = constants_1.MessageStatus.EMIT_ERROR;
147
+ }
148
+ });
149
+ //查询已经发送及接收的消息
150
+ const tMessage = yield imManager.db.selectMessage({ conversationId: id });
151
+ yield addTips(imManager, id, dispatch);
152
+ //消息合并排序
153
+ //const sortList = [...tMessage].sort((a, b) => b.messageTime - a.messageTime);
154
+ const list = [...tMessageEmitting, ...tMessage].sort((a, b) => b.messageTime - a.messageTime);
155
+ dispatch(setMessages(list));
156
+ downloadMessage(imManager, list, dispatch);
157
+ handlerReceiptBack(imManager, tMessage);
158
+ });
159
+ exports.loadMessages = loadMessages;
160
+ function handlerReceiptBack(imManager, list) {
161
+ list.forEach(message => {
162
+ const { messageStatus, isMyMessage, conversationType, payloadType } = message;
163
+ if (messageStatus === constants_1.MessageStatus.UNDO ||
164
+ messageStatus === constants_1.MessageStatus.READ ||
165
+ isMyMessage ||
166
+ conversationType !== constants_1.ConversationType.C2C ||
167
+ payloadType === constants_1.PayloadType.VOICE) {
168
+ return;
169
+ }
170
+ const tMessage = (0, lodash_1.cloneDeep)(message);
171
+ tMessage.messageStatus = constants_1.MessageStatus.READ;
172
+ (0, message_1.emitReceiptBackMessage)(imManager, message);
173
+ });
174
+ }
175
+ const loadBusiNotifyMessages = (imManager, id) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
176
+ const { busiNotifyKeyword, busiNotifyType } = (0, getState_1.getMessageState)(getState);
177
+ yield addTips(imManager, id, dispatch);
178
+ const tMessages = yield imManager.db.searchMessages({
179
+ keyword: busiNotifyKeyword,
180
+ conversationId: id,
181
+ busiNotifyType,
182
+ });
183
+ dispatch(setMessages([...tMessages]));
184
+ });
185
+ exports.loadBusiNotifyMessages = loadBusiNotifyMessages;
186
+ const loadSearchMessages = (imManager, conversationId, messageSeq) => (dispatch) => __awaiter(void 0, void 0, void 0, function* () {
187
+ const messages = yield imManager.db.selectBeforeMessages({
188
+ conversationId,
189
+ messageSeq,
190
+ include: true,
191
+ limit: 15,
192
+ });
193
+ dispatch(setMessages(messages));
194
+ });
195
+ exports.loadSearchMessages = loadSearchMessages;
196
+ const loadBeforeMessages = (imManager, conversationId, page) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
197
+ const { messages } = (0, getState_1.getMessageState)(getState);
198
+ if (messages.length === 0) {
199
+ return;
200
+ }
201
+ const data = yield imManager.db.selectBeforeMessages(Object.assign({ conversationId, messageSeq: messages[messages.length - 1].messageSeq }, page));
202
+ if (data.length === 0) {
203
+ return;
204
+ }
205
+ data.sort((a, b) => b.messageTime - a.messageTime);
206
+ dispatch(setMessages([...messages, ...data]));
207
+ });
208
+ exports.loadBeforeMessages = loadBeforeMessages;
209
+ const loadAfterMessages = (imManager, conversationId, page) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
210
+ const { messages } = (0, getState_1.getMessageState)(getState);
211
+ if (messages.length === 0) {
212
+ return;
213
+ }
214
+ const lastMessage = messages.find(item => !item.messageSeq.startsWith('emitting_'));
215
+ if (lastMessage) {
216
+ const data = yield imManager.db.selectAfterMessages(Object.assign({ conversationId, messageSeq: lastMessage.messageSeq }, page));
217
+ if (data.length === 0) {
218
+ return;
219
+ }
220
+ data.sort((a, b) => b.messageTime - a.messageTime);
221
+ dispatch(setMessages([...data, ...messages]));
222
+ }
223
+ });
224
+ exports.loadAfterMessages = loadAfterMessages;
225
+ const collectMessage = (imManager, message) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
226
+ const collection = buildCollection(message, getState);
227
+ const isExist = yield imManager.db.isCollection(message.messageSeq);
228
+ if (!isExist) {
229
+ yield imManager.db.insertCollection(collection);
230
+ }
231
+ });
232
+ exports.collectMessage = collectMessage;
233
+ function buildCollection(message, getState) {
234
+ const { messageSeq, conversationId, messageTime, payloadType, payload } = message;
235
+ const { currentConversation } = (0, getState_1.getConversationState)(getState);
236
+ let searchText = (0, message_1.buildSearchText)(message);
237
+ return {
238
+ messageSeq,
239
+ conversationId,
240
+ conversationName: currentConversation.name,
241
+ payloadType,
242
+ messageTime,
243
+ searchText,
244
+ collectTime: new Date().getTime(),
245
+ payload,
246
+ };
247
+ }
248
+ function getQuoteText(imManager, message) {
249
+ const { payloadType, payload } = message;
250
+ return (0, message_1.buildSimpleText)(imManager, payloadType, payload);
251
+ }
252
+ const replyMessage = (imManager, message) => (dispatch, getState) => {
253
+ const quoteText = getQuoteText(imManager, message);
254
+ const { messageFrom, messageFromName, payload } = message;
255
+ dispatch(setQuote({
256
+ quoteId: messageFrom,
257
+ quoteAvatars: payload.avatars,
258
+ quoteTitle: messageFromName,
259
+ quoteText,
260
+ quoteMessage: message,
261
+ }));
262
+ };
263
+ exports.replyMessage = replyMessage;
264
+ function getMessageFromState(messageSeq, getState) {
265
+ const { messages } = (0, getState_1.getMessageState)(getState);
266
+ return messages.find(item => item.messageSeq === messageSeq);
267
+ }
268
+ exports.getMessageFromState = getMessageFromState;
269
+ //# sourceMappingURL=message.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.action.js","sourceRoot":"","sources":["../../../src/slice/message/message.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import ImManager from "../../ImManager";
2
+ import { AsyncAction, IConversation, IMessage } from "../../interface";
3
+ /**
4
+ * 消息选择操作 --- start
5
+ **/
6
+ export declare const onMultipleSelect: (messageSeq: string) => AsyncAction;
7
+ export declare const startMultipleSelect: (message: IMessage) => AsyncAction;
8
+ export declare const cancelMultipleSelect: () => AsyncAction;
9
+ export declare const onMultipleForward: (imManager: ImManager, needCancel: boolean) => AsyncAction;
10
+ export declare const onMultipleCollect: (imManager: ImManager) => AsyncAction;
11
+ export declare const onMultipleDelete: (imManager: ImManager) => AsyncAction;
12
+ /**
13
+ * 消息选择操作 --- end
14
+ **/
15
+ /**
16
+ * 草稿
17
+ */
18
+ export declare const saveDraftText: (imManager: ImManager) => AsyncAction;
19
+ export declare const addDraftText: (imManager: ImManager, updateInfo: Partial<IConversation>) => AsyncAction;
20
+ export declare const downloadFile: (imManager: ImManager, message: IMessage) => AsyncAction;
21
+ export declare const focusTipsMessage: (imManager: ImManager) => AsyncAction;
22
+ export declare const onPressQuote: (imManager: ImManager, messageSeq: string) => AsyncAction;
23
+ export declare const onRangeLayout: (imManager: ImManager) => AsyncAction;
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.onRangeLayout = exports.onPressQuote = exports.focusTipsMessage = exports.downloadFile = exports.addDraftText = exports.saveDraftText = exports.onMultipleDelete = exports.onMultipleCollect = exports.onMultipleForward = exports.cancelMultipleSelect = exports.startMultipleSelect = exports.onMultipleSelect = void 0;
13
+ const constants_1 = require("../../constants");
14
+ const conversation_1 = require("../conversation");
15
+ const conversation_action_1 = require("../conversation/conversation.action");
16
+ const getState_1 = require("../getState");
17
+ const message_action_1 = require("../message/message.action");
18
+ const message_1 = require("../message");
19
+ const message_2 = require("../../utils/message");
20
+ const file_1 = require("../../utils/file");
21
+ /**
22
+ * 消息选择操作 --- start
23
+ **/
24
+ const onMultipleSelect = messageSeq => (dispatch, getState) => {
25
+ const { messages, multipleSelect } = (0, getState_1.getMessageState)(getState);
26
+ const message = messages.find(item => item.messageSeq === messageSeq);
27
+ const newState = Object.assign({}, multipleSelect);
28
+ if (newState[messageSeq]) {
29
+ delete newState[messageSeq];
30
+ }
31
+ else {
32
+ newState[messageSeq] = message;
33
+ }
34
+ dispatch(message_1.MessageActions.setMultipleSelect(newState));
35
+ };
36
+ exports.onMultipleSelect = onMultipleSelect;
37
+ const startMultipleSelect = message => (dispatch, getState) => {
38
+ const { multipleSelect } = (0, getState_1.getMessageState)(getState);
39
+ const newState = Object.assign(Object.assign({}, multipleSelect), { [message.messageSeq]: message });
40
+ dispatch(message_1.MessageActions.setIsMultiple(true));
41
+ dispatch(message_1.MessageActions.setMultipleSelect(newState));
42
+ };
43
+ exports.startMultipleSelect = startMultipleSelect;
44
+ const cancelMultipleSelect = () => dispatch => {
45
+ dispatch(message_1.MessageActions.setIsMultiple(false));
46
+ dispatch(message_1.MessageActions.setMultipleSelect({}));
47
+ };
48
+ exports.cancelMultipleSelect = cancelMultipleSelect;
49
+ const onMultipleForward = (imManager, needCancel = true) => (dispatch, getState) => {
50
+ const { currentConversation } = (0, getState_1.getConversationState)(getState);
51
+ const { multipleSelect } = (0, getState_1.getMessageState)(getState);
52
+ const { id, name, type } = currentConversation;
53
+ const selectedMessages = Object.values(multipleSelect).sort((a, b) => a.messageTime - b.messageTime);
54
+ const message = {
55
+ payloadType: constants_1.PayloadType.MULTIPLE,
56
+ payload: {
57
+ id,
58
+ fromName: imManager.user.userName,
59
+ toName: name,
60
+ type,
61
+ selectedMessages,
62
+ },
63
+ };
64
+ dispatch(message_1.MessageActions.setForwardMessage(message));
65
+ if (needCancel) {
66
+ dispatch((0, exports.cancelMultipleSelect)());
67
+ }
68
+ };
69
+ exports.onMultipleForward = onMultipleForward;
70
+ const onMultipleCollect = imManager => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
71
+ const { multipleSelect } = (0, getState_1.getMessageState)(getState);
72
+ const selectedMessages = Object.values(multipleSelect);
73
+ for (let i = 0; i < selectedMessages.length; i++) {
74
+ yield dispatch((0, message_action_1.collectMessage)(imManager, selectedMessages[i]));
75
+ }
76
+ dispatch((0, exports.cancelMultipleSelect)());
77
+ });
78
+ exports.onMultipleCollect = onMultipleCollect;
79
+ const onMultipleDelete = imManager => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
80
+ const { currentConversation } = (0, getState_1.getConversationState)(getState);
81
+ const { multipleSelect, messages } = (0, getState_1.getMessageState)(getState);
82
+ const messageSeqs = Object.keys(multipleSelect);
83
+ const updateData = {
84
+ id: currentConversation === null || currentConversation === void 0 ? void 0 : currentConversation.id,
85
+ errorText: '',
86
+ text: imManager.t('userDeleteMessage', { count: messageSeqs.length }),
87
+ };
88
+ yield imManager.db.updateConversationById(updateData);
89
+ dispatch((0, conversation_action_1.updateConversation)(updateData));
90
+ yield imManager.db.deleteMessageByPKBatch(messageSeqs);
91
+ yield imManager.db.deleteMessageEmittingByPKBatch(messageSeqs);
92
+ dispatch(message_1.MessageActions.setMessages(messages.filter(item => !multipleSelect[item.messageSeq])));
93
+ dispatch((0, exports.cancelMultipleSelect)());
94
+ });
95
+ exports.onMultipleDelete = onMultipleDelete;
96
+ /**
97
+ * 消息选择操作 --- end
98
+ **/
99
+ /**
100
+ * 草稿
101
+ */
102
+ const saveDraftText = (imManager) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
103
+ const { currentConversation } = (0, getState_1.getConversationState)(getState);
104
+ if (!currentConversation) {
105
+ return;
106
+ }
107
+ const { draftText } = (0, getState_1.getMessageState)(getState);
108
+ const updateInfo = {
109
+ id: currentConversation.id,
110
+ draftText
111
+ };
112
+ dispatch(conversation_1.ConversationActions.updateConversation(updateInfo));
113
+ dispatch(message_1.MessageActions.setDraftText(''));
114
+ yield imManager.db.updateConversationById(updateInfo);
115
+ });
116
+ exports.saveDraftText = saveDraftText;
117
+ const addDraftText = (imManager, updateInfo) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
118
+ dispatch(conversation_1.ConversationActions.updateConversation(updateInfo));
119
+ imManager.db.updateConversationById(updateInfo);
120
+ });
121
+ exports.addDraftText = addDraftText;
122
+ const downloadFile = (imManager, message) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
123
+ const { messageSeq, payload, payload: { fileId, filename, } } = message;
124
+ if (!fileId) {
125
+ return;
126
+ }
127
+ payload.localPath = yield imManager.download({
128
+ fileId,
129
+ resourceType: constants_1.ResourceType.FILE,
130
+ filename: filename
131
+ });
132
+ yield imManager.db.updateMessage({
133
+ messageSeq,
134
+ payload,
135
+ });
136
+ dispatch(message_1.MessageActions.updateMessage(messageSeq, {
137
+ messageSeq,
138
+ payload,
139
+ }));
140
+ });
141
+ exports.downloadFile = downloadFile;
142
+ function downloadQuotePayload(imManager, message, dispatch) {
143
+ return __awaiter(this, void 0, void 0, function* () {
144
+ yield (0, message_2.doQuoteMessageDownload)(imManager, message);
145
+ dispatch(message_1.MessageActions.updateMessage(message.messageSeq, message));
146
+ yield imManager.db.updateMessage(message);
147
+ });
148
+ }
149
+ function downloadPayload(imManager, message, dispatch) {
150
+ return __awaiter(this, void 0, void 0, function* () {
151
+ yield (0, file_1.doCommonMessageDownload)(imManager, message);
152
+ dispatch((0, message_action_1.updateMessage)(message.messageSeq, message));
153
+ yield imManager.db.updateMessage(message);
154
+ });
155
+ }
156
+ function downloadMessage(imManager, messages, dispatch) {
157
+ setTimeout(() => {
158
+ (0, message_2.downloadCommonMessageFilter)(messages).forEach((item) => __awaiter(this, void 0, void 0, function* () { return yield downloadPayload(imManager, item, dispatch); }));
159
+ (0, message_2.downloadQuoteMessageFilter)(messages).forEach((item) => __awaiter(this, void 0, void 0, function* () { return yield downloadQuotePayload(imManager, item, dispatch); }));
160
+ }, 500);
161
+ }
162
+ function getContainIndex(messageSeq, messages) {
163
+ for (let i = 0; i < messages.length; i++) {
164
+ if (messages[i].messageSeq === messageSeq) {
165
+ return i;
166
+ }
167
+ }
168
+ return -1;
169
+ }
170
+ const focusTipsMessage = (imManager) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
171
+ const { currentConversation } = (0, getState_1.getConversationState)(getState);
172
+ const { tips, messages, tipsQueue } = (0, getState_1.getMessageState)(getState);
173
+ const { messageSeq } = tips;
174
+ const conversationId = currentConversation.id;
175
+ const index = getContainIndex(messageSeq, messages);
176
+ if (index >= 0) {
177
+ dispatch(message_1.MessageActions.setRangeList(messages));
178
+ }
179
+ else {
180
+ dispatch(message_1.MessageActions.setRangeList([]));
181
+ const rangeMessages = yield imManager.db.selectRangeMessage({
182
+ conversationId,
183
+ messageSeqBegin: messages[messages.length - 1].messageSeq,
184
+ messageSeqEnd: messageSeq
185
+ });
186
+ if (rangeMessages.length === 0) {
187
+ let newQueue = tipsQueue.slice();
188
+ dispatch(message_1.MessageActions.setTips(newQueue.shift()));
189
+ dispatch(message_1.MessageActions.setTipsQueue(newQueue));
190
+ dispatch(message_1.MessageActions.setRangeList([]));
191
+ return;
192
+ }
193
+ const ext = yield imManager.db.selectBeforeMessages({
194
+ conversationId,
195
+ messageSeq: rangeMessages[rangeMessages.length - 1].messageSeq,
196
+ limit: 5,
197
+ });
198
+ dispatch(message_1.MessageActions.setRangeList(rangeMessages));
199
+ const list = [...messages, ...rangeMessages, ...ext];
200
+ dispatch(message_1.MessageActions.setMessages(list));
201
+ downloadMessage(imManager, [...rangeMessages, ...ext], dispatch);
202
+ }
203
+ });
204
+ exports.focusTipsMessage = focusTipsMessage;
205
+ const onPressQuote = (imManager, messageSeq) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
206
+ if (!messageSeq) {
207
+ return;
208
+ }
209
+ const { messages } = (0, getState_1.getMessageState)(getState);
210
+ const index = getContainIndex(messageSeq, messages);
211
+ if (index >= 0) {
212
+ imManager.scrollTo(messageSeq, true);
213
+ return;
214
+ }
215
+ dispatch(message_1.MessageActions.setTips({
216
+ messageSeq: messageSeq,
217
+ type: constants_1.TipsType.QUOTE,
218
+ }));
219
+ yield dispatch((0, exports.focusTipsMessage)(imManager));
220
+ });
221
+ exports.onPressQuote = onPressQuote;
222
+ const onRangeLayout = (imManager) => (dispatch, getState) => __awaiter(void 0, void 0, void 0, function* () {
223
+ const { messages } = (0, getState_1.getMessageState)(getState);
224
+ const { tips } = (0, getState_1.getMessageState)(getState);
225
+ const { messageSeq } = tips;
226
+ const index = getContainIndex(messageSeq, messages);
227
+ if (index >= 0) {
228
+ imManager.scrollTo(messageSeq, true);
229
+ dispatch(message_1.MessageActions.setTips(null));
230
+ dispatch(message_1.MessageActions.setRangeList([]));
231
+ }
232
+ });
233
+ exports.onRangeLayout = onRangeLayout;
234
+ //# sourceMappingURL=message.panel.action.js.map