@messenger-box/platform-mobile 10.0.2-alpha.5 → 10.0.3-alpha.5
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/CHANGELOG.md +8 -0
- package/lib/compute.js +14 -14
- package/lib/compute.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/module.js +1 -2
- package/lib/module.js.map +1 -1
- package/lib/screens/inbox/DialogMessages.js +44 -20
- package/lib/screens/inbox/DialogMessages.js.map +1 -1
- package/lib/screens/inbox/DialogThreadMessages.js +13 -48
- package/lib/screens/inbox/DialogThreadMessages.js.map +1 -1
- package/lib/screens/inbox/DialogThreads.js +13 -70
- package/lib/screens/inbox/DialogThreads.js.map +1 -1
- package/lib/screens/inbox/Inbox.js +18 -9
- package/lib/screens/inbox/Inbox.js.map +1 -1
- package/lib/screens/inbox/components/CachedImage/consts.js.map +1 -1
- package/lib/screens/inbox/components/CachedImage/index.js +41 -27
- package/lib/screens/inbox/components/CachedImage/index.js.map +1 -1
- package/lib/screens/inbox/components/DialogsListItem.js +96 -146
- package/lib/screens/inbox/components/DialogsListItem.js.map +1 -1
- package/lib/screens/inbox/components/ServiceDialogsListItem.js +95 -148
- package/lib/screens/inbox/components/ServiceDialogsListItem.js.map +1 -1
- package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.js +37 -51
- package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.js.map +1 -1
- package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.js +113 -97
- package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.js.map +1 -1
- package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.js +50 -42
- package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.js.map +1 -1
- package/lib/screens/inbox/components/ThreadsViewItem.js +41 -149
- package/lib/screens/inbox/components/ThreadsViewItem.js.map +1 -1
- package/lib/screens/inbox/config/config.js +8 -10
- package/lib/screens/inbox/config/config.js.map +1 -1
- package/lib/screens/inbox/containers/ConversationView.js +357 -501
- package/lib/screens/inbox/containers/ConversationView.js.map +1 -1
- package/lib/screens/inbox/containers/Dialogs.js +49 -140
- package/lib/screens/inbox/containers/Dialogs.js.map +1 -1
- package/lib/screens/inbox/containers/ThreadConversationView.js +297 -400
- package/lib/screens/inbox/containers/ThreadConversationView.js.map +1 -1
- package/lib/screens/inbox/containers/ThreadsView.js +83 -190
- package/lib/screens/inbox/containers/ThreadsView.js.map +1 -1
- package/package.json +4 -4
- package/rollup.config.mjs +5 -1
- package/lib/compute.d.ts +0 -5
- package/lib/index.d.ts +0 -4
- package/lib/module.d.ts +0 -3
- package/lib/navigation/InboxNavigation.d.ts +0 -2
- package/lib/navigation/index.d.ts +0 -1
- package/lib/screens/inbox/DialogMessages.d.ts +0 -8
- package/lib/screens/inbox/DialogThreadMessages.d.ts +0 -8
- package/lib/screens/inbox/DialogThreads.d.ts +0 -7
- package/lib/screens/inbox/Inbox.d.ts +0 -2
- package/lib/screens/inbox/components/CachedImage/consts.d.ts +0 -2
- package/lib/screens/inbox/components/CachedImage/index.d.ts +0 -8
- package/lib/screens/inbox/components/DialogsHeader.d.ts +0 -8
- package/lib/screens/inbox/components/DialogsListItem.d.ts +0 -19
- package/lib/screens/inbox/components/ServiceDialogsListItem.d.ts +0 -21
- package/lib/screens/inbox/components/SlackMessageContainer/ImageViewerModal.d.ts +0 -3
- package/lib/screens/inbox/components/SlackMessageContainer/SlackBubble.d.ts +0 -34
- package/lib/screens/inbox/components/SlackMessageContainer/SlackMessage.d.ts +0 -25
- package/lib/screens/inbox/components/SlackMessageContainer/index.d.ts +0 -3
- package/lib/screens/inbox/components/SupportServiceDialogsListItem.d.ts +0 -21
- package/lib/screens/inbox/components/ThreadsViewItem.d.ts +0 -20
- package/lib/screens/inbox/config/config.d.ts +0 -11
- package/lib/screens/inbox/config/index.d.ts +0 -1
- package/lib/screens/inbox/containers/ConversationView.d.ts +0 -11
- package/lib/screens/inbox/containers/Dialogs.d.ts +0 -7
- package/lib/screens/inbox/containers/SupportServiceDialogs.d.ts +0 -6
- package/lib/screens/inbox/containers/ThreadConversationView.d.ts +0 -11
- package/lib/screens/inbox/containers/ThreadsView.d.ts +0 -13
- package/lib/screens/index.d.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/screens/inbox/components/CachedImage/index.tsx"],"sourcesContent":[null],"names":["CONST.IMAGE_CACHE_FOLDER","React"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/screens/inbox/components/CachedImage/index.tsx"],"sourcesContent":["import React, { useEffect, useState, useRef } from 'react';\nimport { Image } from 'react-native';\n// import { Image } from \"react-native\"\nimport * as FileSystem from 'expo-file-system';\n\nimport * as CONST from './consts';\n\nconst CachedImage = (props: any) => {\n const { source, cacheKey, placeholderContent } = props;\n const { uri, headers, expiresIn } = source;\n const fileURI = `${CONST.IMAGE_CACHE_FOLDER}${cacheKey}`;\n\n const [imgUri, setImgUri] = useState<any>(fileURI);\n\n const componentIsMounted = useRef(true);\n const requestOption = headers ? { headers } : {};\n\n const _callback = (downloadProgress: any) => {\n if (componentIsMounted.current === false) {\n downloadResumableRef.current.pauseAsync();\n FileSystem.deleteAsync(fileURI, { idempotent: true }); // delete file locally if it was not downloaded properly\n }\n };\n\n const downloadResumableRef = useRef(FileSystem.createDownloadResumable(uri, fileURI, requestOption, _callback));\n\n useEffect(() => {\n loadImage();\n return () => {\n componentIsMounted.current = false;\n };\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const loadImage = async () => {\n try {\n // Use the cached image if it exists\n const metadata: any = await FileSystem.getInfoAsync(fileURI);\n const expired = expiresIn && new Date().getTime() / 1000 - metadata?.modificationTime > expiresIn;\n // console.log({expiresIn, expired})\n\n // console.log({modificationTime: metadata.modificationTime, currentTime: new Date().getTime() / 1000})\n // console.log({metadata})\n if (!metadata.exists || metadata?.size === 0 || expired) {\n if (componentIsMounted.current) {\n setImgUri(null);\n\n if (expired) {\n await FileSystem.deleteAsync(fileURI, { idempotent: true });\n }\n // download to cache\n setImgUri(null);\n\n const response: any = await downloadResumableRef.current.downloadAsync();\n if (componentIsMounted.current && response.status === 200) {\n setImgUri(`${fileURI}?`); // deep clone to force re-render\n }\n if (response.status !== 200) {\n FileSystem.deleteAsync(fileURI, { idempotent: true }); // delete file locally if it was not downloaded properly\n }\n }\n }\n } catch (err) {\n // console.log({ err })\n }\n };\n // console.log({placeholderContent})\n if (!imgUri) return placeholderContent || null;\n\n return (\n <Image\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n source={{\n ...source,\n uri: imgUri,\n }}\n />\n );\n};\n\nexport const CacheManager = {\n addToCache: async ({ file, key }: any) => {\n await FileSystem.copyAsync({\n from: file,\n to: `${CONST.IMAGE_CACHE_FOLDER}${key}`,\n });\n // const uri = await FileSystem.getContentUriAsync(`${CONST.IMAGE_CACHE_FOLDER}${key}`)\n // return uri\n const uri = await CacheManager.getCachedUri({ key });\n return uri;\n },\n\n getCachedUri: async ({ key }: any) => {\n const uri = await FileSystem.getContentUriAsync(`${CONST.IMAGE_CACHE_FOLDER}${key}`);\n return uri;\n },\n\n downloadAsync: async ({ uri, key, options }: any) => {\n return await FileSystem.downloadAsync(uri, `${CONST.IMAGE_CACHE_FOLDER}${key}`, options);\n },\n};\n\nexport default CachedImage;\n"],"names":["CONST.IMAGE_CACHE_FOLDER","React"],"mappings":"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"}
|
|
@@ -1,18 +1,34 @@
|
|
|
1
|
-
import React__default,{useState,useMemo}from'react';import {Pressable,HStack,Box,AvatarGroup,Avatar,AvatarFallbackText,AvatarImage,AvatarBadge,Text}from'@admin-layout/gluestack-ui-mobile';import {isToday,isYesterday,format}from'date-fns';import {useFocusEffect}from'@react-navigation/native';import {useMessagesQuery,useOnChatMessageAddedSubscription,OnChatMessageAddedDocument}from'common/lib/generated/generated.js';import {startCase}from'lodash-es';
|
|
2
|
-
|
|
1
|
+
import React__default,{useState,useMemo}from'react';import {Pressable,HStack,Box,AvatarGroup,Avatar,AvatarFallbackText,AvatarImage,AvatarBadge,Text}from'@admin-layout/gluestack-ui-mobile';import {isToday,isYesterday,format}from'date-fns';import {useFocusEffect}from'@react-navigation/native';import {useMessagesQuery,useOnChatMessageAddedSubscription,OnChatMessageAddedDocument}from'common/lib/generated/generated.js';import {startCase}from'lodash-es';var __defProp = Object.defineProperty;
|
|
2
|
+
var __defProps = Object.defineProperties;
|
|
3
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
+
var __spreadValues = (a, b) => {
|
|
9
|
+
for (var prop in b || (b = {}))
|
|
10
|
+
if (__hasOwnProp.call(b, prop))
|
|
11
|
+
__defNormalProp(a, prop, b[prop]);
|
|
12
|
+
if (__getOwnPropSymbols)
|
|
13
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
+
if (__propIsEnum.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
}
|
|
17
|
+
return a;
|
|
18
|
+
};
|
|
19
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
+
const createdAtText = (value) => {
|
|
21
|
+
if (!value)
|
|
22
|
+
return "";
|
|
3
23
|
let date = new Date(value);
|
|
4
|
-
if (isToday(date))
|
|
5
|
-
|
|
6
|
-
|
|
24
|
+
if (isToday(date))
|
|
25
|
+
return "Today";
|
|
26
|
+
if (isYesterday(date))
|
|
27
|
+
return "Yesterday";
|
|
28
|
+
return format(new Date(value), "MMM dd, yyyy");
|
|
7
29
|
};
|
|
8
|
-
|
|
9
|
-
* TODO:
|
|
10
|
-
* - Get Reservation info: reservation date, status
|
|
11
|
-
* - Add ability to get property information: name, logo
|
|
12
|
-
*/
|
|
13
|
-
const DialogsListItemComponent = function DialogsListItem({
|
|
30
|
+
const DialogsListItemComponent = function DialogsListItem2({
|
|
14
31
|
currentUser,
|
|
15
|
-
// users,
|
|
16
32
|
selectedChannelId,
|
|
17
33
|
channel,
|
|
18
34
|
onOpen
|
|
@@ -27,158 +43,111 @@ const DialogsListItemComponent = function DialogsListItem({
|
|
|
27
43
|
subscribeToMore
|
|
28
44
|
} = useMessagesQuery({
|
|
29
45
|
variables: {
|
|
30
|
-
channelId: (_a = channel
|
|
31
|
-
parentId
|
|
46
|
+
channelId: (_a = channel == null ? void 0 : channel.id) == null ? void 0 : _a.toString(),
|
|
47
|
+
parentId,
|
|
32
48
|
limit: 10
|
|
33
|
-
// sort: {
|
|
34
|
-
// key: 'updatedAt',
|
|
35
|
-
// value: SortEnum.Desc,
|
|
36
|
-
// },
|
|
37
|
-
//limit: 25,
|
|
38
49
|
},
|
|
39
|
-
fetchPolicy:
|
|
40
|
-
refetchWritePolicy:
|
|
50
|
+
fetchPolicy: "cache-and-network",
|
|
51
|
+
refetchWritePolicy: "merge"
|
|
41
52
|
});
|
|
42
|
-
|
|
53
|
+
const {
|
|
54
|
+
data: newMessage,
|
|
55
|
+
loading: newMsgLoading,
|
|
56
|
+
error: newMsgError
|
|
57
|
+
} = useOnChatMessageAddedSubscription({
|
|
43
58
|
variables: {
|
|
44
|
-
channelId: (_b = channel
|
|
59
|
+
channelId: (_b = channel == null ? void 0 : channel.id) == null ? void 0 : _b.toString()
|
|
45
60
|
}
|
|
46
61
|
});
|
|
47
62
|
useFocusEffect(React__default.useCallback(() => {
|
|
48
|
-
var
|
|
49
|
-
// Do something when the screen is focused
|
|
63
|
+
var _a2;
|
|
50
64
|
refetchMessages({
|
|
51
|
-
channelId: (
|
|
52
|
-
parentId
|
|
65
|
+
channelId: (_a2 = channel == null ? void 0 : channel.id) == null ? void 0 : _a2.toString(),
|
|
66
|
+
parentId,
|
|
53
67
|
limit: 10
|
|
54
|
-
// sort: {
|
|
55
|
-
// key: 'updatedAt',
|
|
56
|
-
// value: SortEnum.Desc,
|
|
57
|
-
// },
|
|
58
|
-
//limit: 25
|
|
59
68
|
});
|
|
60
69
|
return () => {
|
|
61
|
-
// Do something when the screen is unfocused
|
|
62
|
-
// Useful for cleanup functions
|
|
63
70
|
};
|
|
64
71
|
}, []));
|
|
65
72
|
React__default.useEffect(() => {
|
|
66
|
-
var
|
|
73
|
+
var _a2, _b2, _c2;
|
|
67
74
|
if (messagesQuery) {
|
|
68
|
-
if ((
|
|
69
|
-
const msg = (
|
|
70
|
-
setMessages(pre => [...pre, ...msg]);
|
|
75
|
+
if ((_b2 = (_a2 = messagesQuery == null ? void 0 : messagesQuery.messages) == null ? void 0 : _a2.data) == null ? void 0 : _b2.length) {
|
|
76
|
+
const msg = (_c2 = messagesQuery == null ? void 0 : messagesQuery.messages) == null ? void 0 : _c2.data;
|
|
77
|
+
setMessages((pre) => [...pre, ...msg]);
|
|
71
78
|
}
|
|
72
79
|
}
|
|
73
80
|
}, [messagesQuery]);
|
|
74
81
|
const lastMessage = useMemo(() => {
|
|
75
|
-
var
|
|
76
|
-
if (!(messages
|
|
82
|
+
var _a2;
|
|
83
|
+
if (!(messages == null ? void 0 : messages.length)) {
|
|
77
84
|
return null;
|
|
78
85
|
}
|
|
79
|
-
// const { data } = messagesQuery.messages;
|
|
80
86
|
const data = messages;
|
|
81
|
-
const filteredData = data
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}, [])) !== null && _a !== void 0 ? _a : null : null;
|
|
87
|
+
const filteredData = data == null ? void 0 : data.filter((p) => (p == null ? void 0 : p.message) !== "");
|
|
88
|
+
let filteredLastMessage = filteredData && (filteredData == null ? void 0 : filteredData.length) ? (_a2 = filteredData == null ? void 0 : filteredData.reduce((a, b) => {
|
|
89
|
+
return new Date(a == null ? void 0 : a.updatedAt) > new Date(b == null ? void 0 : b.updatedAt) ? a : b;
|
|
90
|
+
}, [])) != null ? _a2 : null : null;
|
|
86
91
|
return filteredLastMessage;
|
|
87
|
-
//return data[data.length - 1];
|
|
88
92
|
}, [messages]);
|
|
89
93
|
const channelMembers = useMemo(() => {
|
|
90
|
-
var
|
|
91
|
-
return (
|
|
92
|
-
var
|
|
93
|
-
return ((
|
|
94
|
-
}))
|
|
94
|
+
var _a2, _b2, _c2;
|
|
95
|
+
return (_c2 = (_b2 = (_a2 = channel == null ? void 0 : channel.members) == null ? void 0 : _a2.filter((ch) => {
|
|
96
|
+
var _a3, _b3;
|
|
97
|
+
return ((_a3 = ch == null ? void 0 : ch.user) == null ? void 0 : _a3.id) != (currentUser == null ? void 0 : currentUser.id) && ((_b3 = ch == null ? void 0 : ch.user) == null ? void 0 : _b3.__typename) == "UserAccount";
|
|
98
|
+
})) == null ? void 0 : _b2.map((m) => m == null ? void 0 : m.user)) != null ? _c2 : null;
|
|
95
99
|
}, [currentUser, channel]);
|
|
96
100
|
const title = useMemo(() => {
|
|
97
|
-
var
|
|
98
|
-
const titleString = (
|
|
99
|
-
var
|
|
100
|
-
return (u
|
|
101
|
-
}))
|
|
101
|
+
var _a2, _b2, _c2;
|
|
102
|
+
const titleString = (_c2 = (_b2 = (_a2 = channelMembers == null ? void 0 : channelMembers.map((u) => {
|
|
103
|
+
var _a3;
|
|
104
|
+
return (u == null ? void 0 : u.givenName) + " " + ((_a3 = u == null ? void 0 : u.familyName) != null ? _a3 : "");
|
|
105
|
+
})) == null ? void 0 : _a2.filter((mu) => mu)) == null ? void 0 : _b2.join(", ")) != null ? _c2 : "";
|
|
102
106
|
const length = 30;
|
|
103
|
-
return titleString.length > length ? titleString.substring(0, length - 3) +
|
|
107
|
+
return titleString.length > length ? titleString.substring(0, length - 3) + "..." : titleString;
|
|
104
108
|
}, [channelMembers]);
|
|
105
|
-
return React__default.createElement(Pressable, {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
, {
|
|
119
|
-
// px={2}
|
|
120
|
-
// pl={3}
|
|
121
|
-
py: '$3',
|
|
122
|
-
space: 'sm',
|
|
123
|
-
w: '100%',
|
|
124
|
-
flex: 1,
|
|
125
|
-
// direction={'row'}
|
|
126
|
-
justifyContent: 'space-between',
|
|
127
|
-
alignItems: 'center'
|
|
128
|
-
}, React__default.createElement(Box, {
|
|
129
|
-
flex: 0.1,
|
|
130
|
-
alignItems: 'flex-start',
|
|
131
|
-
pl: '$3'
|
|
132
|
-
}, React__default.createElement(AvatarGroup, null, channelMembers && (channelMembers === null || channelMembers === void 0 ? void 0 : channelMembers.length) > 0 && ((_c = channelMembers === null || channelMembers === void 0 ? void 0 : channelMembers.slice(0, 2)) === null || _c === void 0 ? void 0 : _c.map((ch, i) => {
|
|
133
|
-
var _a;
|
|
134
|
-
return React__default.createElement(Avatar, {
|
|
135
|
-
key: 'dialogs-list-' + i,
|
|
136
|
-
bg: 'transparent',
|
|
137
|
-
size: 'sm',
|
|
138
|
-
top: i == 1 ? '$4' : '$0',
|
|
139
|
-
right: i == 1 ? '-$2' : '$0',
|
|
140
|
-
zIndex: i == 1 ? 5 : 1
|
|
141
|
-
}, React__default.createElement(AvatarFallbackText, null, startCase((_a = ch === null || ch === void 0 ? void 0 : ch.username) === null || _a === void 0 ? void 0 : _a.charAt(0))), React__default.createElement(AvatarImage, {
|
|
142
|
-
alt: "user image",
|
|
143
|
-
style: {
|
|
109
|
+
return /* @__PURE__ */ React__default.createElement(Pressable, { onPress: () => (channel == null ? void 0 : channel.id) !== selectedChannelId && onOpen(channel == null ? void 0 : channel.id, title), borderWidth: "$1", borderRadius: "$md", borderColor: "$trueGray200", flex: 1, "$dark-borderColor": "$coolGray600", "$dark-backgroundColor": "$trueGray700", "$light-backgroundColor": "$trueGray50", "$light-borderColor": "$trueGray200" }, /* @__PURE__ */ React__default.createElement(
|
|
110
|
+
HStack,
|
|
111
|
+
{
|
|
112
|
+
py: "$3",
|
|
113
|
+
space: "sm",
|
|
114
|
+
w: "100%",
|
|
115
|
+
flex: 1,
|
|
116
|
+
justifyContent: "space-between",
|
|
117
|
+
alignItems: "center"
|
|
118
|
+
},
|
|
119
|
+
/* @__PURE__ */ React__default.createElement(Box, { flex: 0.1, alignItems: "flex-start", pl: "$3" }, /* @__PURE__ */ React__default.createElement(AvatarGroup, null, channelMembers && (channelMembers == null ? void 0 : channelMembers.length) > 0 && ((_c = channelMembers == null ? void 0 : channelMembers.slice(0, 2)) == null ? void 0 : _c.map((ch, i) => {
|
|
120
|
+
var _a2;
|
|
121
|
+
return /* @__PURE__ */ React__default.createElement(Avatar, { key: "dialogs-list-" + i, bg: "transparent", size: "sm", top: i == 1 ? "$4" : "$0", right: i == 1 ? "-$2" : "$0", zIndex: i == 1 ? 5 : 1 }, /* @__PURE__ */ React__default.createElement(AvatarFallbackText, null, startCase((_a2 = ch == null ? void 0 : ch.username) == null ? void 0 : _a2.charAt(0))), /* @__PURE__ */ React__default.createElement(AvatarImage, { alt: "user image", style: {
|
|
144
122
|
borderRadius: 6,
|
|
145
123
|
borderWidth: 2,
|
|
146
|
-
borderColor:
|
|
147
|
-
},
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
}), (channelMembers === null || channelMembers === void 0 ? void 0 : channelMembers.length) == 1 && React__default.createElement(AvatarBadge, {
|
|
152
|
-
style: {
|
|
124
|
+
borderColor: "#fff"
|
|
125
|
+
}, source: {
|
|
126
|
+
uri: ch == null ? void 0 : ch.picture
|
|
127
|
+
} }), (channelMembers == null ? void 0 : channelMembers.length) == 1 && /* @__PURE__ */ React__default.createElement(AvatarBadge, { style: {
|
|
153
128
|
width: 10,
|
|
154
129
|
height: 10
|
|
155
|
-
},
|
|
156
|
-
|
|
157
|
-
})
|
|
158
|
-
|
|
159
|
-
flex: 0.9
|
|
160
|
-
}, React__default.createElement(LastMessageComponent, {
|
|
161
|
-
title: title,
|
|
162
|
-
lastMessage: lastMessage,
|
|
163
|
-
channelId: channel === null || channel === void 0 ? void 0 : channel.id,
|
|
164
|
-
subscribeToNewMessages: () => {
|
|
165
|
-
var _a;
|
|
130
|
+
}, bg: "$green800" }));
|
|
131
|
+
})))),
|
|
132
|
+
/* @__PURE__ */ React__default.createElement(Box, { flex: 0.9 }, /* @__PURE__ */ React__default.createElement(LastMessageComponent, { title, lastMessage, channelId: channel == null ? void 0 : channel.id, subscribeToNewMessages: () => {
|
|
133
|
+
var _a2;
|
|
166
134
|
return subscribeToMore({
|
|
167
135
|
document: OnChatMessageAddedDocument,
|
|
168
136
|
variables: {
|
|
169
|
-
channelId: (
|
|
137
|
+
channelId: (_a2 = channel.id) == null ? void 0 : _a2.toString()
|
|
170
138
|
},
|
|
171
139
|
updateQuery: (prev, {
|
|
172
140
|
subscriptionData
|
|
173
141
|
}) => {
|
|
174
|
-
var
|
|
175
|
-
if (!subscriptionData.data)
|
|
176
|
-
|
|
177
|
-
const
|
|
178
|
-
const
|
|
179
|
-
const
|
|
180
|
-
const
|
|
181
|
-
|
|
142
|
+
var _a3;
|
|
143
|
+
if (!subscriptionData.data)
|
|
144
|
+
return prev;
|
|
145
|
+
const newMessage2 = (_a3 = subscriptionData == null ? void 0 : subscriptionData.data) == null ? void 0 : _a3.chatMessageAdded;
|
|
146
|
+
const existingMessages = prev == null ? void 0 : prev.messages;
|
|
147
|
+
const previousData = (existingMessages == null ? void 0 : existingMessages.data) ? [...existingMessages.data, newMessage2] : [];
|
|
148
|
+
const totalMsgCount = (existingMessages == null ? void 0 : existingMessages.totalCount) + 1;
|
|
149
|
+
const merged = __spreadProps(__spreadValues({}, prev), {
|
|
150
|
+
messages: __spreadProps(__spreadValues({}, existingMessages), {
|
|
182
151
|
data: previousData,
|
|
183
152
|
totalCount: totalMsgCount
|
|
184
153
|
})
|
|
@@ -186,8 +155,8 @@ const DialogsListItemComponent = function DialogsListItem({
|
|
|
186
155
|
return merged;
|
|
187
156
|
}
|
|
188
157
|
});
|
|
189
|
-
}
|
|
190
|
-
|
|
158
|
+
} }))
|
|
159
|
+
));
|
|
191
160
|
};
|
|
192
161
|
const LastMessageComponent = ({
|
|
193
162
|
subscribeToNewMessages,
|
|
@@ -197,25 +166,6 @@ const LastMessageComponent = ({
|
|
|
197
166
|
}) => {
|
|
198
167
|
var _a;
|
|
199
168
|
React__default.useEffect(() => subscribeToNewMessages(), [channelId]);
|
|
200
|
-
return React__default.createElement(HStack, {
|
|
201
|
-
space: 'sm',
|
|
202
|
-
flex: 1,
|
|
203
|
-
justifyContent: 'center',
|
|
204
|
-
alignItems: 'center'
|
|
205
|
-
}, React__default.createElement(Box, {
|
|
206
|
-
flex: 0.8
|
|
207
|
-
}, React__default.createElement(Text, {
|
|
208
|
-
color: "$trueGray600",
|
|
209
|
-
fontSize: "$lg",
|
|
210
|
-
flexWrap: 'wrap',
|
|
211
|
-
fontWeight: "$semibold"
|
|
212
|
-
}, title), React__default.createElement(Text, {
|
|
213
|
-
color: "$trueGray600",
|
|
214
|
-
numberOfLines: 1
|
|
215
|
-
}, (_a = lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.message) !== null && _a !== void 0 ? _a : '')), React__default.createElement(Box, {
|
|
216
|
-
flex: 0.2
|
|
217
|
-
}, React__default.createElement(Text, {
|
|
218
|
-
color: "$trueGray500"
|
|
219
|
-
}, lastMessage ? createdAtText(lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.createdAt) : '')));
|
|
169
|
+
return /* @__PURE__ */ React__default.createElement(HStack, { space: "sm", flex: 1, justifyContent: "center", alignItems: "center" }, /* @__PURE__ */ React__default.createElement(Box, { flex: 0.8 }, /* @__PURE__ */ React__default.createElement(Text, { color: "$trueGray600", fontSize: "$lg", flexWrap: "wrap", fontWeight: "$semibold" }, title), /* @__PURE__ */ React__default.createElement(Text, { color: "$trueGray600", numberOfLines: 1 }, (_a = lastMessage == null ? void 0 : lastMessage.message) != null ? _a : "")), /* @__PURE__ */ React__default.createElement(Box, { flex: 0.2 }, /* @__PURE__ */ React__default.createElement(Text, { color: "$trueGray500" }, lastMessage ? createdAtText(lastMessage == null ? void 0 : lastMessage.createdAt) : "")));
|
|
220
170
|
};
|
|
221
171
|
const DialogsListItem = React__default.memo(DialogsListItemComponent);export{DialogsListItem,DialogsListItemComponent};//# sourceMappingURL=DialogsListItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogsListItem.js","sources":["../../../../src/screens/inbox/components/DialogsListItem.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DialogsListItem.js","sources":["../../../../src/screens/inbox/components/DialogsListItem.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n Text,\n Image,\n Pressable,\n HStack,\n Box,\n AvatarGroup,\n Avatar,\n AvatarFallbackText,\n AvatarImage,\n AvatarBadge,\n View,\n} from '@admin-layout/gluestack-ui-mobile';\nimport { format, isToday, isYesterday } from 'date-fns';\nimport { useFocusEffect } from '@react-navigation/native';\nimport { IChannel, SortEnum, IUserAccount } from 'common';\nimport {\n useMessagesQuery,\n useOnChatMessageAddedSubscription,\n OnChatMessageAddedDocument as CHAT_MESSAGE_ADDED,\n useUserAccountQuery,\n} from 'common/lib/generated/generated.js';\nimport { startCase } from 'lodash-es';\n\nconst createdAtText = (value: string) => {\n if (!value) return '';\n let date = new Date(value);\n if (isToday(date)) return 'Today';\n if (isYesterday(date)) return 'Yesterday';\n return format(new Date(value), 'MMM dd, yyyy');\n};\n\nexport interface IDialogListChannel extends IChannel {\n users: IUserAccount[];\n}\n\nexport interface IDialogListItemProps {\n currentUser?: any;\n users?: any;\n selectedChannelId?: any;\n channel?: any;\n onOpen: (id: any, title: any) => void;\n}\n\n/**\n * TODO:\n * - Get Reservation info: reservation date, status\n * - Add ability to get property information: name, logo\n */\nexport const DialogsListItemComponent: React.FC<IDialogListItemProps> = function DialogsListItem({\n currentUser,\n // users,\n selectedChannelId,\n channel,\n onOpen,\n}) {\n const parentId: any = null;\n const [messages, setMessages] = useState<any>([]);\n const {\n data: messagesQuery,\n loading: messageLoading,\n refetch: refetchMessages,\n subscribeToMore,\n } = useMessagesQuery({\n variables: {\n channelId: channel?.id?.toString(),\n parentId: parentId,\n limit: 10,\n // sort: {\n // key: 'updatedAt',\n // value: SortEnum.Desc,\n // },\n //limit: 25,\n },\n fetchPolicy: 'cache-and-network',\n refetchWritePolicy: 'merge',\n });\n\n const {\n data: newMessage,\n loading: newMsgLoading,\n error: newMsgError,\n }: any = useOnChatMessageAddedSubscription({\n variables: {\n channelId: channel?.id?.toString(),\n },\n });\n\n useFocusEffect(\n React.useCallback(() => {\n // Do something when the screen is focused\n refetchMessages({\n channelId: channel?.id?.toString(),\n parentId: parentId,\n limit: 10,\n // sort: {\n // key: 'updatedAt',\n // value: SortEnum.Desc,\n // },\n //limit: 25\n });\n\n return () => {\n // Do something when the screen is unfocused\n // Useful for cleanup functions\n };\n }, []),\n );\n\n React.useEffect(() => {\n if (messagesQuery) {\n if (messagesQuery?.messages?.data?.length) {\n const msg = messagesQuery?.messages?.data;\n setMessages((pre: any[]) => [...pre, ...msg]);\n }\n }\n }, [messagesQuery]);\n\n const lastMessage = useMemo(() => {\n if (!messages?.length) {\n return null;\n }\n // const { data } = messagesQuery.messages;\n const data = messages;\n const filteredData: any = data?.filter((p: any) => p?.message !== '');\n // return filteredData[0];\n let filteredLastMessage =\n filteredData && filteredData?.length\n ? filteredData?.reduce((a, b) => {\n return new Date(a?.updatedAt) > new Date(b?.updatedAt) ? a : b;\n }, []) ?? null\n : null;\n return filteredLastMessage;\n //return data[data.length - 1];\n }, [messages]);\n\n const channelMembers = useMemo(\n () =>\n channel?.members\n ?.filter((ch: any) => ch?.user?.id != currentUser?.id && ch?.user?.__typename == 'UserAccount')\n ?.map((m: any) => m?.user) ?? null,\n [currentUser, channel],\n );\n\n const title = useMemo(() => {\n const titleString =\n channelMembers\n ?.map((u: any) => u?.givenName + ' ' + (u?.familyName ?? ''))\n ?.filter((mu: any) => mu)\n ?.join(', ') ?? '';\n\n const length = 30;\n return titleString.length > length ? titleString.substring(0, length - 3) + '...' : titleString;\n }, [channelMembers]);\n\n return (\n <Pressable\n onPress={() => channel?.id !== selectedChannelId && onOpen(channel?.id, title)}\n borderWidth={'$1'}\n borderRadius={'$md'}\n borderColor={'$trueGray200'}\n flex={1}\n $dark-borderColor=\"$coolGray600\"\n $dark-backgroundColor=\"$trueGray700\"\n $light-backgroundColor=\"$trueGray50\"\n $light-borderColor=\"$trueGray200\"\n >\n <HStack\n // px={2}\n // pl={3}\n py={'$3'}\n space={'sm'}\n w={'100%'}\n flex={1}\n // direction={'row'}\n justifyContent={'space-between'}\n alignItems={'center'}\n >\n <Box flex={0.1} alignItems={'flex-start'} pl={'$3'}>\n <AvatarGroup>\n {channelMembers &&\n channelMembers?.length > 0 &&\n channelMembers?.slice(0, 2)?.map((ch: any, i: Number) => (\n <Avatar\n key={'dialogs-list-' + i}\n bg={'transparent'}\n size={'sm'}\n top={i == 1 ? '$4' : '$0'}\n right={i == 1 ? '-$2' : '$0'}\n zIndex={i == 1 ? 5 : 1}\n >\n <AvatarFallbackText>{startCase(ch?.username?.charAt(0))}</AvatarFallbackText>\n <AvatarImage\n alt=\"user image\"\n style={{ borderRadius: 6, borderWidth: 2, borderColor: '#fff' }}\n source={{\n uri: ch?.picture,\n }}\n />\n {channelMembers?.length == 1 && (\n <AvatarBadge style={{ width: 10, height: 10 }} bg=\"$green800\" />\n )}\n </Avatar>\n ))}\n </AvatarGroup>\n </Box>\n <Box flex={0.9}>\n {/* <HStack space={1} flex={1} direction={'row'} justifyContent={'center'} alignItems={'center'}>\n <Box flex={0.8}>\n <Text color=\"gray.600\" fontSize=\"lg\" flexWrap={'wrap'} fontWeight=\"semibold\">\n {title}\n </Text>\n <Text color=\"gray.600\" noOfLines={1}>\n {lastMessage?.message ?? ''}\n </Text>\n </Box>\n\n <Box flex={0.2}>\n <Text color=\"gray.500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </Box>\n </HStack> */}\n <LastMessageComponent\n title={title}\n lastMessage={lastMessage}\n channelId={channel?.id}\n subscribeToNewMessages={() =>\n subscribeToMore({\n document: CHAT_MESSAGE_ADDED,\n variables: {\n channelId: channel.id?.toString(),\n },\n updateQuery: (prev, { subscriptionData }: any) => {\n if (!subscriptionData.data) return prev;\n const newMessage: any = subscriptionData?.data?.chatMessageAdded;\n const existingMessages: any = prev?.messages;\n const previousData = existingMessages?.data\n ? [...existingMessages.data, newMessage]\n : [];\n const totalMsgCount = existingMessages?.totalCount + 1;\n const merged = {\n ...prev,\n messages: {\n ...existingMessages,\n data: previousData,\n totalCount: totalMsgCount,\n },\n };\n return merged;\n },\n })\n }\n />\n {/* <Text\n flex={1}\n color=\"gray.600\"\n p={0}\n m={0}\n w={'100%'}\n justifyContent={''}\n fontSize=\"lg\"\n fontWeight=\"semibold\"\n >\n {title}\n </Text> */}\n {/* <Text flex={0.1} color=\"gray.600\">\n {lastMessage?.message ?? ''}\n </Text> */}\n </Box>\n {/* <Text flex={0.2} color=\"gray.500\">\n {lastMessage ? createdAtText(lastMessage?.createdAt) : ''}\n </Text> */}\n </HStack>\n </Pressable>\n );\n};\n\nconst LastMessageComponent = ({ subscribeToNewMessages, title, lastMessage, channelId }) => {\n React.useEffect(() => subscribeToNewMessages(), [channelId]);\n return (\n <HStack space={'sm'} flex={1} justifyContent={'center'} alignItems={'center'}>\n <Box flex={0.8}>\n <Text color=\"$trueGray600\" fontSize=\"$lg\" flexWrap={'wrap'} fontWeight=\"$semibold\">\n {title}\n </Text>\n <Text color=\"$trueGray600\" numberOfLines={1}>\n {lastMessage?.message ?? ''}\n </Text>\n </Box>\n\n <Box flex={0.2}>\n <Text color=\"$trueGray500\">{lastMessage ? createdAtText(lastMessage?.createdAt) : ''}</Text>\n </Box>\n </HStack>\n );\n};\n\nexport const DialogsListItem = React.memo(DialogsListItemComponent);\n"],"names":["DialogsListItem","React","_a","_b","_c","CHAT_MESSAGE_ADDED","newMessage"],"mappings":";;;;;;;;;;;;;;;;;;;AAOA,MAAM,aAAA,GAAgB,CAAC,KAAkB,KAAA;AACvC,EAAA,IAAI,CAAC,KAAA;AAAO,IAAO,OAAA,EAAA;AACnB,EAAI,IAAA,IAAA,GAAO,IAAI,IAAA,CAAK,KAAK,CAAA;AACzB,EAAA,IAAI,QAAQ,IAAI,CAAA;AAAG,IAAO,OAAA,OAAA;AAC1B,EAAA,IAAI,YAAY,IAAI,CAAA;AAAG,IAAO,OAAA,WAAA;AAC9B,EAAA,OAAO,MAAO,CAAA,IAAI,IAAK,CAAA,KAAK,GAAG,cAAc,CAAA;AAC/C,CAAA;AAiBa,MAAA,wBAAA,GAA2D,SAASA,gBAAgB,CAAA;AAAA,EAC/F,WAAA;AAAA,EAEA,iBAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAG,EAAA;AApCH,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAqCE,EAAA,MAAM,QAAgB,GAAA,IAAA;AACtB,EAAA,MAAM,CAAC,QAAU,EAAA,WAAW,CAAI,GAAA,QAAA,CAAc,EAAE,CAAA;AAChD,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,aAAA;AAAA,IACN,OAAS,EAAA,cAAA;AAAA,IACT,OAAS,EAAA,eAAA;AAAA,IACT;AAAA,MACE,gBAAiB,CAAA;AAAA,IACnB,SAAW,EAAA;AAAA,MACT,SAAA,EAAA,CAAW,EAAS,GAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA,EAAA,KAAT,IAAa,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA,EAAA;AAAA,MACxB,QAAA;AAAA,MACA,KAAO,EAAA;AAAA,KAMT;AAAA,IACA,WAAa,EAAA,mBAAA;AAAA,IACb,kBAAoB,EAAA;AAAA,GACrB,CAAA;AACD,EAAM,MAAA;AAAA,IACJ,IAAM,EAAA,UAAA;AAAA,IACN,OAAS,EAAA,aAAA;AAAA,IACT,KAAO,EAAA;AAAA,MACA,iCAAkC,CAAA;AAAA,IACzC,SAAW,EAAA;AAAA,MACT,SAAA,EAAA,CAAW,EAAS,GAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA,EAAA,KAAT,IAAa,GAAA,MAAA,GAAA,EAAA,CAAA,QAAA;AAAA;AAC1B,GACD,CAAA;AACD,EAAe,cAAA,CAAAC,cAAA,CAAM,YAAY,MAAM;AAnEzC,IAAAC,IAAAA,GAAAA;AAqEI,IAAgB,eAAA,CAAA;AAAA,MACd,SAAWA,EAAAA,CAAAA,GAAAA,GAAA,OAAS,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAA,EAAA,KAAT,gBAAAA,GAAa,CAAA,QAAA,EAAA;AAAA,MACxB,QAAA;AAAA,MACA,KAAO,EAAA;AAAA,KAMR,CAAA;AACD,IAAA,OAAO,MAAM;AAAA,KAGb;AAAA,GACF,EAAG,EAAE,CAAC,CAAA;AACN,EAAAD,cAAA,CAAM,UAAU,MAAM;AApFxB,IAAA,IAAAC,KAAAC,GAAAC,EAAAA,GAAAA;AAqFI,IAAA,IAAI,aAAe,EAAA;AACjB,MAAID,IAAAA,CAAAA,GAAAA,GAAAA,CAAAD,MAAA,aAAe,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAA,QAAA,KAAf,gBAAAA,GAAyB,CAAA,IAAA,KAAzB,IAAAC,GAAAA,MAAAA,GAAAA,GAAAA,CAA+B,MAAQ,EAAA;AACzC,QAAA,MAAM,GAAMC,GAAAA,CAAAA,GAAAA,GAAA,aAAe,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAA,QAAA,KAAf,gBAAAA,GAAyB,CAAA,IAAA;AACrC,QAAA,WAAA,CAAY,CAAC,GAAe,KAAA,CAAC,GAAG,GAAK,EAAA,GAAG,GAAG,CAAC,CAAA;AAAA;AAC9C;AACF,GACF,EAAG,CAAC,aAAa,CAAC,CAAA;AAClB,EAAM,MAAA,WAAA,GAAc,QAAQ,MAAM;AA5FpC,IAAAF,IAAAA,GAAAA;AA6FI,IAAI,IAAA,EAAC,qCAAU,MAAQ,CAAA,EAAA;AACrB,MAAO,OAAA,IAAA;AAAA;AAGT,IAAA,MAAM,IAAO,GAAA,QAAA;AACb,IAAA,MAAM,eAAoB,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,MAAA,CAAO,CAAC,CAAA,KAAA,CAAW,uBAAG,OAAY,MAAA,EAAA,CAAA;AAElE,IAAI,IAAA,mBAAA,GAAsB,iBAAgB,YAAc,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAASA,MAAA,YAAc,IAAA,IAAA,GAAA,MAAA,GAAA,YAAA,CAAA,MAAA,CAAO,CAAC,CAAA,EAAG,CAAM,KAAA;AAC9F,MAAO,OAAA,IAAI,IAAK,CAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,SAAS,CAAA,GAAI,IAAI,IAAK,CAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,SAAS,CAAA,GAAI,CAAI,GAAA,CAAA;AAAA,KAC5D,EAAA,EAF8D,CAAA,KAAA,IAAA,GAAAA,MAEvD,IAAO,GAAA,IAAA;AACjB,IAAO,OAAA,mBAAA;AAAA,GAET,EAAG,CAAC,QAAQ,CAAC,CAAA;AACb,EAAM,MAAA,cAAA,GAAiB,QAAQ,MAAG;AA1GpC,IAAA,IAAAA,KAAAC,GAAAC,EAAAA,GAAAA;AA0GuC,IAAAA,OAAAA,CAAAA,GAAAA,GAAAA,CAAAD,OAAAD,GAAA,GAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,YAAT,IAAAA,GAAAA,MAAAA,GAAAA,GAAAA,CAAkB,MAAO,CAAA,CAAC,EAAS,KAAA;AA1G1E,MAAA,IAAAA,GAAAC,EAAAA,GAAAA;AA0G6E,MAAA,OAAA,CAAA,CAAAD,GAAA,GAAA,EAAA,IAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAI,IAAJ,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAU,CAAA,EAAA,MAAM,WAAa,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAA,EAAA,CAAA,IAAA,CAAA,CAAMC,GAAA,GAAA,EAAA,IAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAI,IAAJ,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAU,UAAc,KAAA,aAAA;AAAA,KAAjG,CAAA,KAAA,IAAA,GAAA,MAAA,GAAAA,IAAiH,GAAI,CAAA,CAAC,MAAW,CAAG,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAA,IAAA,CAAA,KAApI,OAAAC,GAA6I,GAAA,IAAA;AAAA,GAAM,EAAA,CAAC,WAAa,EAAA,OAAO,CAAC,CAAA;AAC9M,EAAM,MAAA,KAAA,GAAQ,QAAQ,MAAM;AA3G9B,IAAA,IAAAF,KAAAC,GAAAC,EAAAA,GAAAA;AA4GI,IAAA,MAAM,eAAcA,GAAAD,GAAAA,CAAAA,GAAAA,GAAAA,CAAAD,MAAA,cAAgB,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAA,GAAA,CAAI,CAAC,CAAQ,KAAA;AA5GrD,MAAAA,IAAAA,GAAAA;AA4GwD,MAAA,OAAA,CAAA,CAAA,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAG,aAAY,GAAOA,IAAAA,CAAAA,GAAAA,GAAA,CAAG,IAAA,IAAA,GAAA,MAAA,GAAA,CAAA,CAAA,UAAA,KAAH,OAAAA,GAAiB,GAAA,EAAA,CAAA;AAAA,KAAvE,CAAA,KAAA,IAAA,GAAA,MAAA,GAAAA,GAA6E,CAAA,MAAA,CAAO,CAAC,EAAA,KAAY,EAAjG,CAAA,KAAA,IAAA,GAAA,MAAA,GAAAC,GAAsG,CAAA,IAAA,CAAK,IAA3G,CAAA,KAAA,IAAA,GAAAC,GAAoH,GAAA,EAAA;AACxI,IAAA,MAAM,MAAS,GAAA,EAAA;AACf,IAAO,OAAA,WAAA,CAAY,SAAS,MAAS,GAAA,WAAA,CAAY,UAAU,CAAG,EAAA,MAAA,GAAS,CAAC,CAAA,GAAI,KAAQ,GAAA,WAAA;AAAA,GACtF,EAAG,CAAC,cAAc,CAAC,CAAA;AACnB,EAAO,uBAAAH,cAAA,CAAA,aAAA,CAAC,SAAU,EAAA,EAAA,OAAA,EAAS,MAAM,CAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,EAAO,MAAA,iBAAA,IAAqB,MAAO,CAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,EAAI,EAAA,KAAK,CAAG,EAAA,WAAA,EAAa,IAAM,EAAA,YAAA,EAAc,KAAO,EAAA,WAAA,EAAa,cAAgB,EAAA,IAAA,EAAM,CAAG,EAAA,mBAAA,EAAkB,cAAe,EAAA,uBAAA,EAAsB,cAAe,EAAA,wBAAA,EAAuB,aAAc,EAAA,oBAAA,EAAmB,cACpS,EAAA,kBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MAGT,EAAI,EAAA,IAAA;AAAA,MAAM,KAAO,EAAA,IAAA;AAAA,MAAM,CAAG,EAAA,MAAA;AAAA,MAAQ,IAAM,EAAA,CAAA;AAAA,MAExC,cAAgB,EAAA,eAAA;AAAA,MAAiB,UAAY,EAAA;AAAA,KAAA;AAAA,oBACjCA,cAAA,CAAA,aAAA,CAAC,OAAI,IAAM,EAAA,GAAA,EAAK,YAAY,YAAc,EAAA,EAAA,EAAI,IAC1C,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,WACI,EAAA,IAAA,EAAA,cAAA,IAAA,CAAkB,iDAAgB,MAAS,IAAA,CAAA,KAAA,CAAK,sDAAgB,KAAM,CAAA,CAAA,EAAG,OAAzB,IAA6B,GAAA,MAAA,GAAA,EAAA,CAAA,GAAA,CAAI,CAAC,EAAA,EAAS,CAAW,KAAA;AAzH/H,MAAAC,IAAAA,GAAAA;AAyHkI,MAAA,uBAAAD,cAAA,CAAA,aAAA,CAAC,UAAO,GAAK,EAAA,eAAA,GAAkB,CAAG,EAAA,EAAA,EAAI,eAAe,IAAM,EAAA,IAAA,EAAM,GAAK,EAAA,CAAA,IAAK,IAAI,IAAO,GAAA,IAAA,EAAM,OAAO,CAAK,IAAA,CAAA,GAAI,QAAQ,IAAM,EAAA,MAAA,EAAQ,CAAK,IAAA,CAAA,GAAI,IAAI,CAC7O,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,0BAAoB,SAAUC,CAAAA,CAAAA,GAAAA,GAAA,yBAAI,QAAJ,KAAA,IAAA,GAAA,MAAA,GAAAA,GAAc,CAAA,MAAA,CAAO,EAAE,CAAE,CAAA,+CACvD,WAAY,EAAA,EAAA,GAAA,EAAI,cAAa,KAAO,EAAA;AAAA,QAC3D,YAAc,EAAA,CAAA;AAAA,QACd,WAAa,EAAA,CAAA;AAAA,QACb,WAAa,EAAA;AAAA,SACZ,MAAQ,EAAA;AAAA,QACT,KAAK,EAAI,IAAA,IAAA,GAAA,MAAA,GAAA,EAAA,CAAA;AAAA,SACR,CACsB,EAAA,CAAA,cAAA,IAAA,IAAA,GAAA,MAAA,GAAA,cAAA,CAAgB,WAAU,CAAK,oBAAAD,cAAA,CAAA,aAAA,CAAC,eAAY,KAAO,EAAA;AAAA,QAC1E,KAAO,EAAA,EAAA;AAAA,QACP,MAAQ,EAAA;AAAA,OACV,EAAG,EAAG,EAAA,WAAA,EAAY,CACE,CAAA;AAAA,KAAA,CAAA,CACZ,CACJ,CAAA;AAAA,oBACCA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,IAAM,EAAA,GAAA,EAAA,kBAcNA,cAAA,CAAA,aAAA,CAAA,oBAAA,EAAA,EAAqB,KAAc,EAAA,WAAA,EAA0B,SAAW,EAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAS,EAAI,EAAA,sBAAA,EAAwB,MAAG;AAvJrI,MAAAC,IAAAA,GAAAA;AAuJwI,MAAgB,OAAA,eAAA,CAAA;AAAA,QAC9I,QAAU,EAAAG,0BAAA;AAAA,QACV,SAAW,EAAA;AAAA,UACT,SAAWH,EAAAA,CAAAA,GAAAA,GAAA,OAAQ,CAAA,EAAA,KAAR,gBAAAA,GAAY,CAAA,QAAA;AAAA,SACzB;AAAA,QACA,WAAA,EAAa,CAAC,IAAM,EAAA;AAAA,UAClB;AAAA,SACS,KAAA;AA9JrB,UAAAA,IAAAA,GAAAA;AA+JY,UAAA,IAAI,CAAC,gBAAiB,CAAA,IAAA;AAAM,YAAO,OAAA,IAAA;AACnC,UAAA,MAAMI,WAAkBJ,GAAAA,CAAAA,GAAAA,GAAA,gBAAkB,IAAA,IAAA,GAAA,MAAA,GAAA,gBAAA,CAAA,IAAA,KAAlB,gBAAAA,GAAwB,CAAA,gBAAA;AAChD,UAAA,MAAM,mBAAwB,IAAM,IAAA,IAAA,GAAA,MAAA,GAAA,IAAA,CAAA,QAAA;AACpC,UAAM,MAAA,YAAA,GAAA,CAAe,qDAAkB,IAAO,IAAA,CAAC,GAAG,gBAAiB,CAAA,IAAA,EAAMI,WAAU,CAAA,GAAI,EAAC;AACxF,UAAM,MAAA,aAAA,GAAA,CAAgB,qDAAkB,UAAa,IAAA,CAAA;AACrD,UAAM,MAAA,MAAA,GAAS,iCACV,IADU,CAAA,EAAA;AAAA,YAEb,QAAA,EAAU,iCACL,gBADK,CAAA,EAAA;AAAA,cAER,IAAM,EAAA,YAAA;AAAA,cACN,UAAY,EAAA;AAAA,aACd;AAAA,WACF,CAAA;AACA,UAAO,OAAA,MAAA;AAAA;AACT,OACD,CAAA;AAAA,KAAA,EAAG,CAgBI;AAAA,GAKR,CAAA;AACR;AACA,MAAM,uBAAuB,CAAC;AAAA,EAC5B,sBAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAM,KAAA;AA1MN,EAAA,IAAA,EAAA;AA2ME,EAAAL,cAAA,CAAM,UAAU,MAAM,sBAAA,EAA0B,EAAA,CAAC,SAAS,CAAC,CAAA;AAC3D,EAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,MAAO,EAAA,EAAA,KAAA,EAAO,IAAM,EAAA,IAAA,EAAM,GAAG,cAAgB,EAAA,QAAA,EAAU,UAAY,EAAA,QAAA,EAAA,kBAChEA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,MAAM,GACP,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAM,cAAe,EAAA,QAAA,EAAS,OAAM,QAAU,EAAA,MAAA,EAAQ,UAAW,EAAA,WAAA,EAAA,EAClE,KACL,CAAA,+CACC,IAAK,EAAA,EAAA,KAAA,EAAM,cAAe,EAAA,aAAA,EAAe,CACrC,EAAA,EAAA,CAAA,EAAA,GAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,YAAb,IAAwB,GAAA,EAAA,GAAA,EAC7B,CACJ,CAAA,kBAECA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAI,MAAM,GACP,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,IAAK,EAAA,EAAA,KAAA,EAAM,cAAgB,EAAA,EAAA,WAAA,GAAc,aAAc,CAAA,WAAA,IAAA,IAAA,GAAA,MAAA,GAAA,WAAA,CAAa,SAAS,CAAA,GAAI,EAAG,CACzF,CACJ,CAAA;AACR,CAAA;AACa,MAAA,eAAA,GAAkBA,cAAM,CAAA,IAAA,CAAK,wBAAwB"}
|