@droppii-org/chat-mobile 0.2.16 → 0.2.18
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/lib/module/assets/images/icon_excel.png +0 -0
- package/lib/module/assets/images/icon_img.png +0 -0
- package/lib/module/assets/images/icon_pdf.png +0 -0
- package/lib/module/assets/images/icon_txt.png +0 -0
- package/lib/module/assets/images/icon_word.png +0 -0
- package/lib/module/assets/images/index.js +5 -0
- package/lib/module/assets/images/index.js.map +1 -1
- package/lib/module/components/AttachmentPreview/FilePreview.js +107 -0
- package/lib/module/components/AttachmentPreview/FilePreview.js.map +1 -0
- package/lib/module/components/AttachmentPreview/MediaPreview.js +212 -0
- package/lib/module/components/AttachmentPreview/MediaPreview.js.map +1 -0
- package/lib/module/components/AttachmentPreview/index.js +49 -0
- package/lib/module/components/AttachmentPreview/index.js.map +1 -0
- package/lib/module/components/MergedImageGrid.js +28 -18
- package/lib/module/components/MergedImageGrid.js.map +1 -1
- package/lib/module/components/messages/fileMessage/index.js +122 -12
- package/lib/module/components/messages/fileMessage/index.js.map +1 -1
- package/lib/module/components/messages/mergedMessage/index.js +4 -7
- package/lib/module/components/messages/mergedMessage/index.js.map +1 -1
- package/lib/module/hooks/useFileAttachment.js +116 -0
- package/lib/module/hooks/useFileAttachment.js.map +1 -0
- package/lib/module/hooks/useFileDownload.js +175 -0
- package/lib/module/hooks/useFileDownload.js.map +1 -0
- package/lib/module/hooks/useImageAttachment.js +16 -8
- package/lib/module/hooks/useImageAttachment.js.map +1 -1
- package/lib/module/hooks/useVideoAttachment.js +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/screens/MediaView/VideoPlayer.js +1 -0
- package/lib/module/screens/MediaView/VideoPlayer.js.map +1 -1
- package/lib/module/screens/MediaView/index.js +7 -9
- package/lib/module/screens/MediaView/index.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatComposer.js +44 -36
- package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatListLegend.js +11 -2
- package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
- package/lib/module/screens/chat-detail/hooks/useAttachmentMapping.js +51 -0
- package/lib/module/screens/chat-detail/hooks/useAttachmentMapping.js.map +1 -0
- package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js +39 -13
- package/lib/module/screens/chat-detail/hooks/useAttachmentSendHandler.js.map +1 -1
- package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js +6 -6
- package/lib/module/services/attachmentHandlers/fileAttachmentHandler.js.map +1 -1
- package/lib/module/services/attachmentHandlers/index.js +1 -1
- package/lib/module/services/attachmentHandlers/index.js.map +1 -1
- package/lib/module/services/attachmentHandlers/videoAttachmentHandler.js +1 -1
- package/lib/module/translation/resources/i18n.js +10 -0
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/utils/device.js +32 -0
- package/lib/module/utils/device.js.map +1 -1
- package/lib/module/utils/imageUtils.js +44 -28
- package/lib/module/utils/imageUtils.js.map +1 -1
- package/lib/module/utils/videoThumbnail.js +76 -3
- package/lib/module/utils/videoThumbnail.js.map +1 -1
- package/lib/typescript/src/assets/images/index.d.ts +5 -0
- package/lib/typescript/src/assets/images/index.d.ts.map +1 -1
- package/lib/typescript/src/components/AttachmentPreview/FilePreview.d.ts +6 -0
- package/lib/typescript/src/components/AttachmentPreview/FilePreview.d.ts.map +1 -0
- package/lib/typescript/src/components/AttachmentPreview/MediaPreview.d.ts +9 -0
- package/lib/typescript/src/components/AttachmentPreview/MediaPreview.d.ts.map +1 -0
- package/lib/typescript/src/components/AttachmentPreview/index.d.ts +9 -0
- package/lib/typescript/src/components/AttachmentPreview/index.d.ts.map +1 -0
- package/lib/typescript/src/components/MergedImageGrid.d.ts +2 -2
- package/lib/typescript/src/components/MergedImageGrid.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/mergedMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useFileAttachment.d.ts +20 -0
- package/lib/typescript/src/hooks/useFileAttachment.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useFileDownload.d.ts +15 -0
- package/lib/typescript/src/hooks/useFileDownload.d.ts.map +1 -0
- package/lib/typescript/src/hooks/useImageAttachment.d.ts +1 -2
- package/lib/typescript/src/hooks/useImageAttachment.d.ts.map +1 -1
- package/lib/typescript/src/screens/MediaView/VideoPlayer.d.ts.map +1 -1
- package/lib/typescript/src/screens/MediaView/index.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentMapping.d.ts +10 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentMapping.d.ts.map +1 -0
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts +4 -1
- package/lib/typescript/src/screens/chat-detail/hooks/useAttachmentSendHandler.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts +2 -2
- package/lib/typescript/src/services/attachmentHandlers/fileAttachmentHandler.d.ts.map +1 -1
- package/lib/typescript/src/services/attachmentHandlers/index.d.ts +1 -1
- package/lib/typescript/src/services/attachmentHandlers/index.d.ts.map +1 -1
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/types/attachment.d.ts +22 -1
- package/lib/typescript/src/types/attachment.d.ts.map +1 -1
- package/lib/typescript/src/utils/device.d.ts +7 -0
- package/lib/typescript/src/utils/device.d.ts.map +1 -1
- package/lib/typescript/src/utils/imageUtils.d.ts +1 -0
- package/lib/typescript/src/utils/imageUtils.d.ts.map +1 -1
- package/lib/typescript/src/utils/videoThumbnail.d.ts.map +1 -1
- package/package.json +5 -1
- package/src/assets/images/icon_excel.png +0 -0
- package/src/assets/images/icon_img.png +0 -0
- package/src/assets/images/icon_pdf.png +0 -0
- package/src/assets/images/icon_txt.png +0 -0
- package/src/assets/images/icon_word.png +0 -0
- package/src/assets/images/index.ts +5 -0
- package/src/components/AttachmentPreview/FilePreview.tsx +137 -0
- package/src/components/AttachmentPreview/MediaPreview.tsx +238 -0
- package/src/components/AttachmentPreview/index.tsx +68 -0
- package/src/components/MergedImageGrid.tsx +36 -23
- package/src/components/messages/fileMessage/index.tsx +156 -13
- package/src/components/messages/mergedMessage/index.tsx +5 -7
- package/src/hooks/useFileAttachment.ts +163 -0
- package/src/hooks/useFileDownload.ts +200 -0
- package/src/hooks/useImageAttachment.ts +23 -13
- package/src/hooks/useVideoAttachment.ts +1 -1
- package/src/screens/MediaView/VideoPlayer.tsx +1 -0
- package/src/screens/MediaView/index.tsx +7 -6
- package/src/screens/chat-detail/ChatComposer.tsx +61 -30
- package/src/screens/chat-detail/ChatListLegend.tsx +9 -2
- package/src/screens/chat-detail/hooks/useAttachmentMapping.ts +58 -0
- package/src/screens/chat-detail/hooks/useAttachmentSendHandler.ts +50 -11
- package/src/services/attachmentHandlers/fileAttachmentHandler.ts +8 -7
- package/src/services/attachmentHandlers/index.ts +4 -1
- package/src/services/attachmentHandlers/videoAttachmentHandler.ts +1 -1
- package/src/translation/resources/i18n.ts +10 -0
- package/src/types/attachment.ts +23 -1
- package/src/utils/device.ts +58 -0
- package/src/utils/imageUtils.ts +50 -28
- package/src/utils/videoThumbnail.ts +77 -3
- package/lib/module/components/AttachmentPreview.js +0 -250
- package/lib/module/components/AttachmentPreview.js.map +0 -1
- package/lib/typescript/src/components/AttachmentPreview.d.ts +0 -28
- package/lib/typescript/src/components/AttachmentPreview.d.ts.map +0 -1
- package/src/components/AttachmentPreview.tsx +0 -304
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
const Images = {
|
|
4
4
|
ICON_BOT: require('./icon_bot.png'),
|
|
5
|
+
ICON_EXCEL: require('./icon_excel.png'),
|
|
6
|
+
ICON_IMG: require('./icon_img.png'),
|
|
7
|
+
ICON_PDF: require('./icon_pdf.png'),
|
|
8
|
+
ICON_TXT: require('./icon_txt.png'),
|
|
9
|
+
ICON_WORD: require('./icon_word.png'),
|
|
5
10
|
TAG_BOT: require('./tag_bot.png'),
|
|
6
11
|
TAG_MALL: require('./tag_mall.png'),
|
|
7
12
|
ICON_DROPPII: require('./icon_droppii.png')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Images","ICON_BOT","require","TAG_BOT","TAG_MALL","ICON_DROPPII"],"sourceRoot":"../../../../src","sources":["assets/images/index.ts"],"mappings":";;AAAA,MAAMA,MAAM,GAAG;EACbC,QAAQ,EAAEC,OAAO,CAAC,gBAAgB,CAAC;EACnCC,
|
|
1
|
+
{"version":3,"names":["Images","ICON_BOT","require","ICON_EXCEL","ICON_IMG","ICON_PDF","ICON_TXT","ICON_WORD","TAG_BOT","TAG_MALL","ICON_DROPPII"],"sourceRoot":"../../../../src","sources":["assets/images/index.ts"],"mappings":";;AAAA,MAAMA,MAAM,GAAG;EACbC,QAAQ,EAAEC,OAAO,CAAC,gBAAgB,CAAC;EACnCC,UAAU,EAAED,OAAO,CAAC,kBAAkB,CAAC;EACvCE,QAAQ,EAAEF,OAAO,CAAC,gBAAgB,CAAC;EACnCG,QAAQ,EAAEH,OAAO,CAAC,gBAAgB,CAAC;EACnCI,QAAQ,EAAEJ,OAAO,CAAC,gBAAgB,CAAC;EACnCK,SAAS,EAAEL,OAAO,CAAC,iBAAiB,CAAC;EACrCM,OAAO,EAAEN,OAAO,CAAC,eAAe,CAAC;EACjCO,QAAQ,EAAEP,OAAO,CAAC,gBAAgB,CAAC;EACnCQ,YAAY,EAAER,OAAO,CAAC,oBAAoB;AAC5C,CAAC;AAED,eAAeF,MAAM","ignoreList":[]}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useCallback } from 'react';
|
|
4
|
+
import { ActivityIndicator, StyleSheet } from 'react-native';
|
|
5
|
+
import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
|
|
6
|
+
import FileViewer from 'react-native-file-viewer';
|
|
7
|
+
import UIUtils from "../../utils/ui.js";
|
|
8
|
+
import { trans } from "../../translation/index.js";
|
|
9
|
+
import { formatFileSize, getFileIcon } from "../../utils/imageUtils.js";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
export const FilePreview = /*#__PURE__*/memo(({
|
|
12
|
+
file,
|
|
13
|
+
onRemove
|
|
14
|
+
}) => {
|
|
15
|
+
const handlePress = useCallback(async () => {
|
|
16
|
+
if (file.isUploading || file.error) return;
|
|
17
|
+
try {
|
|
18
|
+
const path = file.metadata.uri?.startsWith('file://') ? file.metadata.uri.slice(7) : file.metadata.uri;
|
|
19
|
+
await FileViewer.open(path ?? '', {
|
|
20
|
+
showOpenWithDialog: true,
|
|
21
|
+
showAppsSuggestions: true
|
|
22
|
+
});
|
|
23
|
+
} catch {
|
|
24
|
+
UIUtils.toast.open({
|
|
25
|
+
title: trans('chat:file_preview_unsupported'),
|
|
26
|
+
theme: 'warning'
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}, [file]);
|
|
30
|
+
const handleRemove = useCallback(() => {
|
|
31
|
+
onRemove(file.metadata.id ?? '');
|
|
32
|
+
}, [file.metadata?.id, onRemove]);
|
|
33
|
+
const iconSource = getFileIcon(file.metadata.mimeType);
|
|
34
|
+
const hasError = !!file.error;
|
|
35
|
+
return /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
36
|
+
row: true,
|
|
37
|
+
alignItems: true,
|
|
38
|
+
width: 160,
|
|
39
|
+
onPress: handlePress,
|
|
40
|
+
br: "3x",
|
|
41
|
+
background: !hasError ? KColors.hexToRgba(KColors.palette.gray.w400, 0.1) : KColors.hexToRgba(KColors.danger.light, 0.2),
|
|
42
|
+
paddingL: '0.5rem',
|
|
43
|
+
paddingR: '1rem',
|
|
44
|
+
paddingV: '0.25rem',
|
|
45
|
+
children: [/*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
46
|
+
visible: file.isUploading,
|
|
47
|
+
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
48
|
+
size: "small",
|
|
49
|
+
color: KColors.palette.primary.w400,
|
|
50
|
+
style: styles.loader
|
|
51
|
+
})
|
|
52
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
53
|
+
visible: !file.isUploading,
|
|
54
|
+
children: /*#__PURE__*/_jsx(KImage.Base, {
|
|
55
|
+
uri: iconSource,
|
|
56
|
+
style: styles.icon,
|
|
57
|
+
resizeMode: "contain"
|
|
58
|
+
})
|
|
59
|
+
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
60
|
+
flex: true,
|
|
61
|
+
children: [/*#__PURE__*/_jsx(KLabel.Text, {
|
|
62
|
+
typo: "TextSmMedium",
|
|
63
|
+
color: KColors.gray.dark,
|
|
64
|
+
numberOfLines: 1,
|
|
65
|
+
ellipsizeMode: "middle",
|
|
66
|
+
children: file.metadata.filename
|
|
67
|
+
}), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
68
|
+
typo: "TextXsNormal",
|
|
69
|
+
color: KColors.palette.gray.w500,
|
|
70
|
+
numberOfLines: 1,
|
|
71
|
+
children: hasError ? file.error : file.isUploading ? `${file.uploadProgress}%` : formatFileSize(file.metadata.size ?? 0)
|
|
72
|
+
})]
|
|
73
|
+
}), /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
74
|
+
onPress: handleRemove,
|
|
75
|
+
center: true,
|
|
76
|
+
width: 20,
|
|
77
|
+
height: 20,
|
|
78
|
+
br: 'round',
|
|
79
|
+
background: KColors.gray.dark,
|
|
80
|
+
hitSlop: 8,
|
|
81
|
+
style: styles.removeBtn,
|
|
82
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
83
|
+
name: "close",
|
|
84
|
+
provider: "MaterialCommunityIcons",
|
|
85
|
+
size: 18,
|
|
86
|
+
color: KColors.white
|
|
87
|
+
})
|
|
88
|
+
})]
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
FilePreview.displayName = 'FilePreview';
|
|
92
|
+
const styles = StyleSheet.create({
|
|
93
|
+
icon: {
|
|
94
|
+
width: 20,
|
|
95
|
+
height: 20,
|
|
96
|
+
marginRight: 7
|
|
97
|
+
},
|
|
98
|
+
loader: {
|
|
99
|
+
marginRight: 8
|
|
100
|
+
},
|
|
101
|
+
removeBtn: {
|
|
102
|
+
position: 'absolute',
|
|
103
|
+
right: -4,
|
|
104
|
+
top: -4
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=FilePreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","ActivityIndicator","StyleSheet","KContainer","KImage","KLabel","KColors","FileViewer","UIUtils","trans","formatFileSize","getFileIcon","jsx","_jsx","jsxs","_jsxs","FilePreview","file","onRemove","handlePress","isUploading","error","path","metadata","uri","startsWith","slice","open","showOpenWithDialog","showAppsSuggestions","toast","title","theme","handleRemove","id","iconSource","mimeType","hasError","Touchable","row","alignItems","width","onPress","br","background","hexToRgba","palette","gray","w400","danger","light","paddingL","paddingR","paddingV","children","VisibleView","visible","size","color","primary","style","styles","loader","Base","icon","resizeMode","View","flex","Text","typo","dark","numberOfLines","ellipsizeMode","filename","w500","uploadProgress","center","height","hitSlop","removeBtn","VectorIcons","name","provider","white","displayName","create","marginRight","position","right","top"],"sourceRoot":"../../../../src","sources":["components/AttachmentPreview/FilePreview.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo } from 'react';
|
|
4
|
+
import { KColors, KContainer, KImage, KLabel } from '@droppii/libs';
|
|
5
|
+
import { StyleSheet } from 'react-native';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const formatDuration = seconds => {
|
|
8
|
+
const totalSecs = Math.floor(seconds);
|
|
9
|
+
const mins = Math.floor(totalSecs / 60);
|
|
10
|
+
const secs = totalSecs % 60;
|
|
11
|
+
return `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
|
|
12
|
+
};
|
|
13
|
+
const getAttachmentIcon = type => {
|
|
14
|
+
switch (type) {
|
|
15
|
+
case 'image':
|
|
16
|
+
return 'image';
|
|
17
|
+
case 'video':
|
|
18
|
+
return 'play-circle';
|
|
19
|
+
case 'audio':
|
|
20
|
+
return 'music';
|
|
21
|
+
case 'document':
|
|
22
|
+
return 'file-document';
|
|
23
|
+
case 'file':
|
|
24
|
+
default:
|
|
25
|
+
return 'file';
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
export const MediaPreview = /*#__PURE__*/memo(({
|
|
29
|
+
item,
|
|
30
|
+
index,
|
|
31
|
+
onRemove
|
|
32
|
+
}) => {
|
|
33
|
+
const {
|
|
34
|
+
type,
|
|
35
|
+
metadata,
|
|
36
|
+
uploadProgress,
|
|
37
|
+
error,
|
|
38
|
+
isUploading,
|
|
39
|
+
thumbnailUrl
|
|
40
|
+
} = item;
|
|
41
|
+
const isImage = type === 'image';
|
|
42
|
+
const isVideo = type === 'video';
|
|
43
|
+
const hasPreview = isImage || isVideo;
|
|
44
|
+
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
45
|
+
children: [/*#__PURE__*/_jsxs(KContainer.View, {
|
|
46
|
+
style: styles.thumbnail,
|
|
47
|
+
center: true,
|
|
48
|
+
children: [isVideo && thumbnailUrl && /*#__PURE__*/_jsx(KImage.Base, {
|
|
49
|
+
uri: thumbnailUrl,
|
|
50
|
+
width: 48,
|
|
51
|
+
height: 48,
|
|
52
|
+
resizeMode: "cover"
|
|
53
|
+
}), isVideo && !thumbnailUrl && /*#__PURE__*/_jsx(KContainer.View, {
|
|
54
|
+
style: [styles.videoBg, styles.videoThumbnail]
|
|
55
|
+
}), isImage && /*#__PURE__*/_jsx(KImage.Base, {
|
|
56
|
+
uri: `file://${metadata.path}`,
|
|
57
|
+
width: 48,
|
|
58
|
+
height: 48
|
|
59
|
+
}), !hasPreview && /*#__PURE__*/_jsx(KContainer.View, {
|
|
60
|
+
style: styles.iconOverlay,
|
|
61
|
+
center: true,
|
|
62
|
+
background: KColors.palette.gray.w100,
|
|
63
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
64
|
+
name: getAttachmentIcon(type),
|
|
65
|
+
provider: "MaterialCommunityIcons",
|
|
66
|
+
size: 24,
|
|
67
|
+
color: KColors.palette.primary.w400
|
|
68
|
+
})
|
|
69
|
+
}), isVideo && !!metadata.duration && /*#__PURE__*/_jsx(KContainer.View, {
|
|
70
|
+
style: styles.durationBadge,
|
|
71
|
+
center: true,
|
|
72
|
+
children: /*#__PURE__*/_jsx(KLabel.Text, {
|
|
73
|
+
typo: "TextXsNormal",
|
|
74
|
+
color: KColors.white,
|
|
75
|
+
style: styles.durationText,
|
|
76
|
+
children: formatDuration(metadata.duration / 1000)
|
|
77
|
+
})
|
|
78
|
+
}), !hasPreview && /*#__PURE__*/_jsx(KContainer.View, {
|
|
79
|
+
style: styles.typeIcon,
|
|
80
|
+
center: true,
|
|
81
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
82
|
+
name: getAttachmentIcon(type),
|
|
83
|
+
provider: "MaterialCommunityIcons",
|
|
84
|
+
size: 14,
|
|
85
|
+
color: KColors.white
|
|
86
|
+
})
|
|
87
|
+
}), error && /*#__PURE__*/_jsx(KContainer.View, {
|
|
88
|
+
style: styles.errorOverlay,
|
|
89
|
+
center: true,
|
|
90
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
91
|
+
name: "close-circle",
|
|
92
|
+
provider: "MaterialCommunityIcons",
|
|
93
|
+
size: 28,
|
|
94
|
+
color: KColors.white
|
|
95
|
+
})
|
|
96
|
+
}), isUploading && /*#__PURE__*/_jsx(KContainer.View, {
|
|
97
|
+
style: styles.progressOverlay,
|
|
98
|
+
center: true,
|
|
99
|
+
children: /*#__PURE__*/_jsxs(KLabel.Text, {
|
|
100
|
+
typo: "TextSmNormal",
|
|
101
|
+
color: KColors.white,
|
|
102
|
+
children: [uploadProgress, "%"]
|
|
103
|
+
})
|
|
104
|
+
})]
|
|
105
|
+
}), /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
106
|
+
style: styles.removeButton,
|
|
107
|
+
center: true,
|
|
108
|
+
br: "round",
|
|
109
|
+
background: KColors.black,
|
|
110
|
+
onPress: () => onRemove(type, index),
|
|
111
|
+
disabled: isUploading,
|
|
112
|
+
hitSlop: 10,
|
|
113
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
114
|
+
name: "close",
|
|
115
|
+
provider: "MaterialCommunityIcons",
|
|
116
|
+
size: 18,
|
|
117
|
+
color: KColors.white
|
|
118
|
+
})
|
|
119
|
+
})]
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
MediaPreview.displayName = 'MediaPreview';
|
|
123
|
+
const styles = StyleSheet.create({
|
|
124
|
+
thumbnail: {
|
|
125
|
+
position: 'relative',
|
|
126
|
+
width: 48,
|
|
127
|
+
height: 48,
|
|
128
|
+
borderRadius: 4,
|
|
129
|
+
overflow: 'hidden',
|
|
130
|
+
backgroundColor: KColors.palette.gray.w50
|
|
131
|
+
},
|
|
132
|
+
durationBadge: {
|
|
133
|
+
position: 'absolute',
|
|
134
|
+
bottom: 4,
|
|
135
|
+
right: 4,
|
|
136
|
+
backgroundColor: 'rgba(0, 0, 0, 0.8)',
|
|
137
|
+
borderRadius: 3,
|
|
138
|
+
paddingVertical: 2,
|
|
139
|
+
paddingHorizontal: 4
|
|
140
|
+
},
|
|
141
|
+
durationText: {
|
|
142
|
+
fontSize: 11,
|
|
143
|
+
fontWeight: '600'
|
|
144
|
+
},
|
|
145
|
+
iconOverlay: {
|
|
146
|
+
width: 48,
|
|
147
|
+
height: 48,
|
|
148
|
+
borderRadius: 4
|
|
149
|
+
},
|
|
150
|
+
videoIcon: {
|
|
151
|
+
position: 'absolute',
|
|
152
|
+
top: 2,
|
|
153
|
+
right: 2,
|
|
154
|
+
backgroundColor: 'rgba(0, 0, 0, 0.6)',
|
|
155
|
+
borderRadius: 8,
|
|
156
|
+
width: 20,
|
|
157
|
+
height: 20
|
|
158
|
+
},
|
|
159
|
+
typeIcon: {
|
|
160
|
+
position: 'absolute',
|
|
161
|
+
bottom: 2,
|
|
162
|
+
right: 2,
|
|
163
|
+
backgroundColor: 'rgba(0, 0, 0, 0.7)',
|
|
164
|
+
borderRadius: 6,
|
|
165
|
+
width: 16,
|
|
166
|
+
height: 16
|
|
167
|
+
},
|
|
168
|
+
videoBg: {
|
|
169
|
+
width: 48,
|
|
170
|
+
height: 48,
|
|
171
|
+
borderRadius: 4
|
|
172
|
+
},
|
|
173
|
+
videoThumbnail: {
|
|
174
|
+
backgroundColor: KColors.black
|
|
175
|
+
},
|
|
176
|
+
progressOverlay: {
|
|
177
|
+
position: 'absolute',
|
|
178
|
+
top: 0,
|
|
179
|
+
left: 0,
|
|
180
|
+
right: 0,
|
|
181
|
+
bottom: 0,
|
|
182
|
+
backgroundColor: 'rgba(0, 0, 0, 0.6)'
|
|
183
|
+
},
|
|
184
|
+
errorOverlay: {
|
|
185
|
+
position: 'absolute',
|
|
186
|
+
top: 0,
|
|
187
|
+
left: 0,
|
|
188
|
+
right: 0,
|
|
189
|
+
bottom: 0,
|
|
190
|
+
backgroundColor: 'rgba(255, 59, 48, 0.8)'
|
|
191
|
+
},
|
|
192
|
+
removeButton: {
|
|
193
|
+
position: 'absolute',
|
|
194
|
+
right: -4,
|
|
195
|
+
top: -4,
|
|
196
|
+
width: 22,
|
|
197
|
+
height: 22,
|
|
198
|
+
shadowColor: '#000',
|
|
199
|
+
shadowOffset: {
|
|
200
|
+
width: 0,
|
|
201
|
+
height: 1
|
|
202
|
+
},
|
|
203
|
+
shadowOpacity: 0.2,
|
|
204
|
+
shadowRadius: 2,
|
|
205
|
+
elevation: 3
|
|
206
|
+
},
|
|
207
|
+
sendButton: {
|
|
208
|
+
width: 48,
|
|
209
|
+
height: 48
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
//# sourceMappingURL=MediaPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","KColors","KContainer","KImage","KLabel","StyleSheet","jsx","_jsx","jsxs","_jsxs","formatDuration","seconds","totalSecs","Math","floor","mins","secs","toString","padStart","getAttachmentIcon","type","MediaPreview","item","index","onRemove","metadata","uploadProgress","error","isUploading","thumbnailUrl","isImage","isVideo","hasPreview","View","children","style","styles","thumbnail","center","Base","uri","width","height","resizeMode","videoBg","videoThumbnail","path","iconOverlay","background","palette","gray","w100","VectorIcons","name","provider","size","color","primary","w400","duration","durationBadge","Text","typo","white","durationText","typeIcon","errorOverlay","progressOverlay","Touchable","removeButton","br","black","onPress","disabled","hitSlop","displayName","create","position","borderRadius","overflow","backgroundColor","w50","bottom","right","paddingVertical","paddingHorizontal","fontSize","fontWeight","videoIcon","top","left","shadowColor","shadowOffset","shadowOpacity","shadowRadius","elevation","sendButton"],"sourceRoot":"../../../../src","sources":["components/AttachmentPreview/MediaPreview.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useCallback } from 'react';
|
|
4
|
+
import { ScrollView, StyleSheet } from 'react-native';
|
|
5
|
+
import { MediaPreview } from "./MediaPreview.js";
|
|
6
|
+
import { FilePreview } from "./FilePreview.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
export const AttachmentPreview = /*#__PURE__*/memo(({
|
|
9
|
+
visible,
|
|
10
|
+
attachments,
|
|
11
|
+
onRemove
|
|
12
|
+
}) => {
|
|
13
|
+
const onFileRemove = useCallback(id => {
|
|
14
|
+
onRemove('file', id);
|
|
15
|
+
}, [onRemove]);
|
|
16
|
+
if (!visible || !attachments?.length) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return /*#__PURE__*/_jsx(ScrollView, {
|
|
20
|
+
horizontal: true,
|
|
21
|
+
showsHorizontalScrollIndicator: false,
|
|
22
|
+
scrollEventThrottle: 16,
|
|
23
|
+
contentContainerStyle: styles.scrollContent,
|
|
24
|
+
children: attachments?.map((item, index) => {
|
|
25
|
+
switch (item.type) {
|
|
26
|
+
case 'file':
|
|
27
|
+
return /*#__PURE__*/_jsx(FilePreview, {
|
|
28
|
+
file: item,
|
|
29
|
+
onRemove: onFileRemove
|
|
30
|
+
}, `${item.type}-${index}`);
|
|
31
|
+
default:
|
|
32
|
+
return /*#__PURE__*/_jsx(MediaPreview, {
|
|
33
|
+
index: index,
|
|
34
|
+
item: item,
|
|
35
|
+
onRemove: onRemove
|
|
36
|
+
}, `${item.type}-${index}`);
|
|
37
|
+
}
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
AttachmentPreview.displayName = 'AttachmentPreview';
|
|
42
|
+
const styles = StyleSheet.create({
|
|
43
|
+
scrollContent: {
|
|
44
|
+
padding: 8,
|
|
45
|
+
paddingTop: 12,
|
|
46
|
+
gap: 8
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","ScrollView","StyleSheet","MediaPreview","FilePreview","jsx","_jsx","AttachmentPreview","visible","attachments","onRemove","onFileRemove","id","length","horizontal","showsHorizontalScrollIndicator","scrollEventThrottle","contentContainerStyle","styles","scrollContent","children","map","item","index","type","file","displayName","create","padding","paddingTop","gap"],"sourceRoot":"../../../../src","sources":["components/AttachmentPreview/index.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,QAAQ,OAAO;AACzC,SAASC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAErD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,WAAW,QAAQ,kBAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ5C,OAAO,MAAMC,iBAAiB,gBAAGR,IAAI,CACnC,CAAC;EAAES,OAAO;EAAEC,WAAW;EAAEC;AAAiC,CAAC,KAAK;EAC9D,MAAMC,YAAY,GAAGX,WAAW,CAC7BY,EAAU,IAAK;IACdF,QAAQ,CAAC,MAAM,EAAEE,EAAE,CAAC;EACtB,CAAC,EACD,CAACF,QAAQ,CACX,CAAC;EAED,IAAI,CAACF,OAAO,IAAI,CAACC,WAAW,EAAEI,MAAM,EAAE;IACpC,OAAO,IAAI;EACb;EAEA,oBACEP,IAAA,CAACL,UAAU;IACTa,UAAU;IACVC,8BAA8B,EAAE,KAAM;IACtCC,mBAAmB,EAAE,EAAG;IACxBC,qBAAqB,EAAEC,MAAM,CAACC,aAAc;IAAAC,QAAA,EAE3CX,WAAW,EAAEY,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;MACjC,QAAQD,IAAI,CAACE,IAAI;QACf,KAAK,MAAM;UACT,oBACElB,IAAA,CAACF,WAAW;YAEVqB,IAAI,EAAEH,IAAK;YACXZ,QAAQ,EAAEC;UAAa,GAFlB,GAAGW,IAAI,CAACE,IAAI,IAAID,KAAK,EAG3B,CAAC;QAGN;UACE,oBACEjB,IAAA,CAACH,YAAY;YAEXoB,KAAK,EAAEA,KAAM;YACbD,IAAI,EAAEA,IAAK;YACXZ,QAAQ,EAAEA;UAAS,GAHd,GAAGY,IAAI,CAACE,IAAI,IAAID,KAAK,EAI3B,CAAC;MAER;IACF,CAAC;EAAC,CACQ,CAAC;AAEjB,CACF,CAAC;AAEDhB,iBAAiB,CAACmB,WAAW,GAAG,mBAAmB;AAEnD,MAAMR,MAAM,GAAGhB,UAAU,CAACyB,MAAM,CAAC;EAC/BR,aAAa,EAAE;IACbS,OAAO,EAAE,CAAC;IACVC,UAAU,EAAE,EAAE;IACdC,GAAG,EAAE;EACP;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
import { memo, useMemo, useState, useCallback } from 'react';
|
|
4
4
|
import { StyleSheet, useWindowDimensions } from 'react-native';
|
|
5
|
-
import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
|
|
5
|
+
import { KContainer, KImage, KLabel, KColors, KSpacingValue } from '@droppii/libs';
|
|
6
6
|
import ChatImageDimens from "../utils/chatImageDimens.js";
|
|
7
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
/**
|
|
9
9
|
* Generic image grid for merged messages
|
|
10
|
-
* Layout:
|
|
11
|
-
* Shows "+N more" overlay on last cell if images exceed limit
|
|
10
|
+
* Layout: always a single horizontal row (1xN), N capped at maxDisplay (default 3)
|
|
11
|
+
* Shows "+N more" overlay on last cell if images exceed limit (e.g. 4 images → 3 + "+1")
|
|
12
12
|
*/
|
|
13
13
|
export const MergedImageGrid = /*#__PURE__*/memo(({
|
|
14
14
|
images,
|
|
15
|
-
maxDisplay =
|
|
15
|
+
maxDisplay = 3,
|
|
16
16
|
onMediaPress
|
|
17
17
|
}) => {
|
|
18
18
|
const windowWidth = useWindowDimensions().width;
|
|
@@ -75,20 +75,30 @@ export const MergedImageGrid = /*#__PURE__*/memo(({
|
|
|
75
75
|
return null;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
//
|
|
79
|
-
|
|
80
|
-
if (displayedImages.length === 2) {
|
|
81
|
-
columns = 2; // 2 images: horizontal layout (1x2)
|
|
82
|
-
} else if (displayedImages.length === 3) {
|
|
83
|
-
columns = 3; // 3 images: horizontal layout (1x3)
|
|
84
|
-
} else if (displayedImages.length >= 4) {
|
|
85
|
-
columns = 2; // 4+ images: grid layout (2x2)
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// Use calculated aspect ratio for single image, 100x100 for multiple images
|
|
89
|
-
const cellSize = displayedImages.length === 1 && singleImageSize ? singleImageSize.width : 100;
|
|
90
|
-
const cellHeight = displayedImages.length === 1 && singleImageSize ? singleImageSize.height : cellSize;
|
|
78
|
+
// Always lay out images in a single horizontal row (1xN)
|
|
79
|
+
const columns = displayedImages.length;
|
|
91
80
|
const gap = 4;
|
|
81
|
+
|
|
82
|
+
// Mirror the parent layout chain so the row never exceeds its container:
|
|
83
|
+
// messageRow: width 100% with 0.75rem horizontal padding (both sides)
|
|
84
|
+
// bubble wrapper: maxWidth 80% of that
|
|
85
|
+
// bubble: another 0.75rem horizontal padding (both sides)
|
|
86
|
+
const rowPaddingH = KSpacingValue['0.75rem'] * 2;
|
|
87
|
+
const bubblePaddingH = KSpacingValue['0.75rem'] * 2;
|
|
88
|
+
const availableWidth = (windowWidth - rowPaddingH) * 0.8 - bubblePaddingH;
|
|
89
|
+
|
|
90
|
+
// Single image keeps its aspect-ratio size; multiple images share the row
|
|
91
|
+
// width so the whole row fits inside the bubble (cell capped at 100px).
|
|
92
|
+
let cellSize;
|
|
93
|
+
let cellHeight;
|
|
94
|
+
if (displayedImages.length === 1 && singleImageSize) {
|
|
95
|
+
cellSize = singleImageSize.width;
|
|
96
|
+
cellHeight = singleImageSize.height;
|
|
97
|
+
} else {
|
|
98
|
+
const fitted = Math.floor((availableWidth - gap * (columns - 1)) / columns);
|
|
99
|
+
cellSize = Math.min(100, fitted);
|
|
100
|
+
cellHeight = cellSize;
|
|
101
|
+
}
|
|
92
102
|
const totalWidth = cellSize * columns + gap * (columns - 1);
|
|
93
103
|
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
94
104
|
style: [styles.grid, {
|
|
@@ -137,7 +147,7 @@ MergedImageGrid.displayName = 'MergedImageGrid';
|
|
|
137
147
|
const styles = StyleSheet.create({
|
|
138
148
|
grid: {
|
|
139
149
|
flexDirection: 'row',
|
|
140
|
-
flexWrap: '
|
|
150
|
+
flexWrap: 'nowrap',
|
|
141
151
|
gap: 4,
|
|
142
152
|
justifyContent: 'flex-start',
|
|
143
153
|
alignItems: 'flex-start'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["memo","useMemo","useState","useCallback","StyleSheet","useWindowDimensions","KContainer","KImage","KLabel","KColors","ChatImageDimens","jsx","_jsx","jsxs","_jsxs","MergedImageGrid","images","maxDisplay","onMediaPress","windowWidth","width","loadingState","setLoadingState","displayedImages","slice","hiddenCount","Math","max","length","singleImageSize","image","pictureElem","imgWidth","bigPicture","imgHeight","height","maxWidth","floor","aspectRatio","finalWidth","finalHeight","maxHeight","round","mediaItems","map","imageUrl","snapshotPicture","url","sourcePicture","filter","item","Boolean","handleImageLoadEnd","index","prev","handleImagePress","initializeLoading","initial","forEach","_","columns","cellSize","cellHeight","
|
|
1
|
+
{"version":3,"names":["memo","useMemo","useState","useCallback","StyleSheet","useWindowDimensions","KContainer","KImage","KLabel","KColors","KSpacingValue","ChatImageDimens","jsx","_jsx","jsxs","_jsxs","MergedImageGrid","images","maxDisplay","onMediaPress","windowWidth","width","loadingState","setLoadingState","displayedImages","slice","hiddenCount","Math","max","length","singleImageSize","image","pictureElem","imgWidth","bigPicture","imgHeight","height","maxWidth","floor","aspectRatio","finalWidth","finalHeight","maxHeight","round","mediaItems","map","imageUrl","snapshotPicture","url","sourcePicture","filter","item","Boolean","handleImageLoadEnd","index","prev","handleImagePress","initializeLoading","initial","forEach","_","columns","gap","rowPaddingH","bubblePaddingH","availableWidth","cellSize","cellHeight","fitted","min","totalWidth","View","style","styles","grid","children","optimizedUrl","getOptimizedImageUrlWithDimensions","isLastCell","showHiddenCount","isImageLoading","Touchable","onPress","imageCell","Base","uri","onLoadEnd","skeleton","hiddenOverlay","center","Text","typo","color","white","displayName","create","flexDirection","flexWrap","justifyContent","alignItems","position","overflow","borderRadius","backgroundColor","top","left","right","bottom"],"sourceRoot":"../../../src","sources":["components/MergedImageGrid.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,WAAW,QAAQ,OAAO;AAC5D,SAASC,UAAU,EAAEC,mBAAmB,QAAQ,cAAc;AAC9D,SACEC,UAAU,EACVC,MAAM,EACNC,MAAM,EACNC,OAAO,EACPC,aAAa,QACR,eAAe;AACtB,OAAOC,eAAe,MAAM,6BAA0B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAWvD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAe,gBAAGhB,IAAI,CACjC,CAAC;EAAEiB,MAAM;EAAEC,UAAU,GAAG,CAAC;EAAEC;AAAmC,CAAC,KAAK;EAClE,MAAMC,WAAW,GAAGf,mBAAmB,CAAC,CAAC,CAACgB,KAAK;EAC/C,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGrB,QAAQ,CAC9C,CAAC,CACH,CAAC;EAED,MAAMsB,eAAe,GAAGvB,OAAO,CAC7B,MAAMgB,MAAM,CAACQ,KAAK,CAAC,CAAC,EAAEP,UAAU,CAAC,EACjC,CAACD,MAAM,EAAEC,UAAU,CACrB,CAAC;EACD,MAAMQ,WAAW,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEX,MAAM,CAACY,MAAM,GAAGX,UAAU,CAAC;;EAE3D;EACA,MAAMY,eAAe,GAAG7B,OAAO,CAAC,MAAM;IACpC,IAAIuB,eAAe,CAACK,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;IAE7C,MAAME,KAAK,GAAGP,eAAe,CAAC,CAAC,CAAC;IAChC,MAAMQ,WAAW,GAAGD,KAAK,EAAEC,WAAW;IACtC,MAAMC,QAAQ,GACZD,WAAW,EAAEX,KAAK,IAAIW,WAAW,EAAEE,UAAU,EAAEb,KAAK,IAAI,CAAC;IAC3D,MAAMc,SAAS,GACbH,WAAW,EAAEI,MAAM,IAAIJ,WAAW,EAAEE,UAAU,EAAEE,MAAM,IAAI,CAAC;IAE7D,MAAMC,QAAQ,GAAGV,IAAI,CAACW,KAAK,CAAClB,WAAW,GAAG,GAAG,CAAC;IAC9C,MAAMmB,WAAW,GAAGN,QAAQ,IAAIE,SAAS,GAAGF,QAAQ,GAAGE,SAAS,GAAG,CAAC;;IAEpE;IACA,IAAIK,UAAU,GAAGH,QAAQ;IACzB,IAAII,WAAW,GAAGJ,QAAQ,GAAGE,WAAW;;IAExC;IACA,MAAMG,SAAS,GAAG,GAAG;IACrB,IAAID,WAAW,GAAGC,SAAS,EAAE;MAC3BD,WAAW,GAAGC,SAAS;MACvBF,UAAU,GAAGC,WAAW,GAAGF,WAAW;IACxC;IAEA,OAAO;MACLlB,KAAK,EAAEM,IAAI,CAACgB,KAAK,CAACH,UAAU,CAAC;MAC7BJ,MAAM,EAAET,IAAI,CAACgB,KAAK,CAACF,WAAW;IAChC,CAAC;EACH,CAAC,EAAE,CAACjB,eAAe,EAAEJ,WAAW,CAAC,CAAC;EAElC,MAAMwB,UAAU,GAAG3C,OAAO,CACxB,MACEgB,MAAM,CACH4B,GAAG,CAAEd,KAAK,IAAK;IACd,MAAMC,WAAW,GAAGD,KAAK,CAACC,WAAW;IACrC,MAAMc,QAAQ,GACZd,WAAW,EAAEe,eAAe,EAAEC,GAAG,IACjChB,WAAW,EAAEE,UAAU,EAAEc,GAAG,IAC5BhB,WAAW,EAAEiB,aAAa,EAAED,GAAG;IACjC,OAAO;MAAEA,GAAG,EAAEF;IAAS,CAAC;EAC1B,CAAC,CAAC,CACDI,MAAM,CAAEC,IAAI,IAAwBC,OAAO,CAACD,IAAI,CAACH,GAAG,CAAC,CAAC,EAC3D,CAAC/B,MAAM,CACT,CAAC;EAED,MAAMoC,kBAAkB,GAAGlD,WAAW,CAAEmD,KAAa,IAAK;IACxD/B,eAAe,CAAEgC,IAAI,KAAM;MACzB,GAAGA,IAAI;MACP,CAACD,KAAK,GAAG;IACX,CAAC,CAAC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,gBAAgB,GAAGrD,WAAW,CACjCmD,KAAa,IAAK;IACjBnC,YAAY,GAAGyB,UAAU,EAAEU,KAAK,CAAC;EACnC,CAAC,EACD,CAACnC,YAAY,EAAEyB,UAAU,CAC3B,CAAC;EAED,MAAMa,iBAAiB,GAAGxD,OAAO,CAAC,MAAM;IACtC,MAAMyD,OAAgC,GAAG,CAAC,CAAC;IAC3ClC,eAAe,CAACmC,OAAO,CAAC,CAACC,CAAC,EAAEN,KAAK,KAAK;MACpCI,OAAO,CAACJ,KAAK,CAAC,GAAG,IAAI;IACvB,CAAC,CAAC;IACF,OAAOI,OAAO;EAChB,CAAC,EAAE,CAAClC,eAAe,CAAC,CAAC;EAErBvB,OAAO,CAAC,MAAM;IACZsB,eAAe,CAACkC,iBAAiB,CAAC;EACpC,CAAC,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAEvB,IAAIjC,eAAe,CAACK,MAAM,KAAK,CAAC,EAAE;IAChC,OAAO,IAAI;EACb;;EAEA;EACA,MAAMgC,OAAO,GAAGrC,eAAe,CAACK,MAAM;EAEtC,MAAMiC,GAAG,GAAG,CAAC;;EAEb;EACA;EACA;EACA;EACA,MAAMC,WAAW,GAAGrD,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;EAChD,MAAMsD,cAAc,GAAGtD,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC;EACnD,MAAMuD,cAAc,GAAG,CAAC7C,WAAW,GAAG2C,WAAW,IAAI,GAAG,GAAGC,cAAc;;EAEzE;EACA;EACA,IAAIE,QAAgB;EACpB,IAAIC,UAAkB;EACtB,IAAI3C,eAAe,CAACK,MAAM,KAAK,CAAC,IAAIC,eAAe,EAAE;IACnDoC,QAAQ,GAAGpC,eAAe,CAACT,KAAK;IAChC8C,UAAU,GAAGrC,eAAe,CAACM,MAAM;EACrC,CAAC,MAAM;IACL,MAAMgC,MAAM,GAAGzC,IAAI,CAACW,KAAK,CACvB,CAAC2B,cAAc,GAAGH,GAAG,IAAID,OAAO,GAAG,CAAC,CAAC,IAAIA,OAC3C,CAAC;IACDK,QAAQ,GAAGvC,IAAI,CAAC0C,GAAG,CAAC,GAAG,EAAED,MAAM,CAAC;IAChCD,UAAU,GAAGD,QAAQ;EACvB;EACA,MAAMI,UAAU,GAAGJ,QAAQ,GAAGL,OAAO,GAAGC,GAAG,IAAID,OAAO,GAAG,CAAC,CAAC;EAE3D,oBACEhD,IAAA,CAACP,UAAU,CAACiE,IAAI;IACdC,KAAK,EAAE,CACLC,MAAM,CAACC,IAAI,EACX;MACErD,KAAK,EAAEiD;IACT,CAAC,CACD;IAAAK,QAAA,EAEDnD,eAAe,CAACqB,GAAG,CAAC,CAACd,KAAK,EAAEuB,KAAK,KAAK;MACrC,MAAMtB,WAAW,GAAGD,KAAK,CAACC,WAAW;MACrC,MAAMc,QAAQ,GACZd,WAAW,EAAEe,eAAe,EAAEC,GAAG,IACjChB,WAAW,EAAEE,UAAU,EAAEc,GAAG,IAC5BhB,WAAW,EAAEiB,aAAa,EAAED,GAAG;MAEjC,IAAI,CAACF,QAAQ,EAAE;QACb,OAAO,IAAI;MACb;;MAEA;MACA,MAAM8B,YAAY,GAChBjE,eAAe,CAACkE,kCAAkC,CAChD/B,QAAQ,EACRoB,QAAQ,EACRC,UACF,CAAC;MAEH,MAAMW,UAAU,GAAGxB,KAAK,KAAK9B,eAAe,CAACK,MAAM,GAAG,CAAC;MACvD,MAAMkD,eAAe,GAAGD,UAAU,IAAIpD,WAAW,GAAG,CAAC;MACrD,MAAMsD,cAAc,GAAG1D,YAAY,CAACgC,KAAK,CAAC,IAAI,IAAI;MAElD,oBACEvC,KAAA,CAACT,UAAU,CAAC2E,SAAS;QAEnBC,OAAO,EAAEA,CAAA,KAAM1B,gBAAgB,CAACF,KAAK,CAAE;QACvCkB,KAAK,EAAE,CACLC,MAAM,CAACU,SAAS,EAChB;UACE9D,KAAK,EAAE6C,QAAQ;UACf9B,MAAM,EAAE+B;QACV,CAAC,CACD;QAAAQ,QAAA,gBAEF9D,IAAA,CAACN,MAAM,CAAC6E,IAAI;UACVC,GAAG,EAAET,YAAa;UAClBvD,KAAK,EAAE6C,QAAS;UAChB9B,MAAM,EAAE+B,UAAW;UACnBK,KAAK,EAAEC,MAAM,CAAC1C,KAAM;UACpBuD,SAAS,EAAEA,CAAA,KAAMjC,kBAAkB,CAACC,KAAK;QAAE,CAC5C,CAAC,EAED0B,cAAc,iBAAInE,IAAA,CAACP,UAAU,CAACiE,IAAI;UAACC,KAAK,EAAEC,MAAM,CAACc;QAAS,CAAE,CAAC,EAG7DR,eAAe,iBACdlE,IAAA,CAACP,UAAU,CAACiE,IAAI;UAACC,KAAK,EAAEC,MAAM,CAACe,aAAc;UAACC,MAAM;UAAAd,QAAA,eAClD5D,KAAA,CAACP,MAAM,CAACkF,IAAI;YAACC,IAAI,EAAC,YAAY;YAACC,KAAK,EAAEnF,OAAO,CAACoF,KAAM;YAAAlB,QAAA,GAAC,GAClD,EAACjD,WAAW;UAAA,CACF;QAAC,CACC,CAClB;MAAA,GA3BI,gBAAgB4B,KAAK,EA4BN,CAAC;IAE3B,CAAC;EAAC,CACa,CAAC;AAEtB,CACF,CAAC;AAEDtC,eAAe,CAAC8E,WAAW,GAAG,iBAAiB;AAE/C,MAAMrB,MAAM,GAAGrE,UAAU,CAAC2F,MAAM,CAAC;EAC/BrB,IAAI,EAAE;IACJsB,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,QAAQ;IAClBnC,GAAG,EAAE,CAAC;IACNoC,cAAc,EAAE,YAAY;IAC5BC,UAAU,EAAE;EACd,CAAC;EACDhB,SAAS,EAAE;IACTiB,QAAQ,EAAE,UAAU;IACpBC,QAAQ,EAAE,QAAQ;IAClBC,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE;EACnB,CAAC;EACDxE,KAAK,EAAE;IACLV,KAAK,EAAE,MAAM;IACbe,MAAM,EAAE;EACV,CAAC;EACDmD,QAAQ,EAAE;IACRa,QAAQ,EAAE,UAAU;IACpBI,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTJ,eAAe,EAAE,SAAS;IAC1BD,YAAY,EAAE;EAChB,CAAC;EACDd,aAAa,EAAE;IACbY,QAAQ,EAAE,UAAU;IACpBI,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTJ,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
|