stream-chat-react-native-core 5.23.1 → 5.23.2-beta.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.
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js +94 -93
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/commonjs/components/MessageInput/MessageInput.js +28 -37
- package/lib/commonjs/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/commonjs/i18n/en.json +1 -1
- package/lib/commonjs/i18n/fr.json +63 -63
- package/lib/commonjs/i18n/hi.json +63 -63
- package/lib/commonjs/i18n/it.json +63 -63
- package/lib/commonjs/i18n/nl.json +63 -63
- package/lib/commonjs/i18n/ru.json +63 -63
- package/lib/commonjs/i18n/tr.json +63 -63
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js +94 -93
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionList.js.map +1 -1
- package/lib/module/components/MessageInput/MessageInput.js +28 -37
- package/lib/module/components/MessageInput/MessageInput.js.map +1 -1
- package/lib/module/i18n/en.json +1 -1
- package/lib/module/i18n/fr.json +63 -63
- package/lib/module/i18n/hi.json +63 -63
- package/lib/module/i18n/it.json +63 -63
- package/lib/module/i18n/nl.json +63 -63
- package/lib/module/i18n/ru.json +63 -63
- package/lib/module/i18n/tr.json +63 -63
- package/lib/module/version.json +1 -1
- package/lib/typescript/i18n/en.json +1 -1
- package/lib/typescript/i18n/fr.json +63 -63
- package/lib/typescript/i18n/hi.json +63 -63
- package/lib/typescript/i18n/it.json +63 -63
- package/lib/typescript/i18n/nl.json +63 -63
- package/lib/typescript/i18n/ru.json +63 -63
- package/lib/typescript/i18n/tr.json +63 -63
- package/package.json +1 -1
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx +83 -74
- package/src/components/MessageInput/MessageInput.tsx +2 -11
- package/src/i18n/en.json +1 -1
- package/src/i18n/fr.json +63 -63
- package/src/i18n/hi.json +63 -63
- package/src/i18n/it.json +63 -63
- package/src/i18n/nl.json +63 -63
- package/src/i18n/ru.json +63 -63
- package/src/i18n/tr.json +63 -63
- package/src/version.json +1 -1
|
@@ -1,76 +1,76 @@
|
|
|
1
1
|
{
|
|
2
|
-
"1 Reply": "
|
|
2
|
+
"1 Reply": "",
|
|
3
3
|
"1 Thread Reply": "1 Konu Yanıtı",
|
|
4
|
-
"Allow access to your Gallery": "
|
|
5
|
-
"Allow camera access in device settings": "
|
|
6
|
-
"Also send to channel": "
|
|
7
|
-
"Are you sure you want to permanently delete this message?": "
|
|
8
|
-
"Block User": "
|
|
9
|
-
"Cancel": "
|
|
10
|
-
"Cannot Flag Message": "
|
|
11
|
-
"Copy Message": "
|
|
12
|
-
"Delete": "
|
|
13
|
-
"Delete Message": "
|
|
14
|
-
"Device camera is used to take photos or videos.": "
|
|
15
|
-
"Do you want to send a copy of this message to a moderator for further investigation?": "
|
|
16
|
-
"Edit Message": "
|
|
17
|
-
"Editing Message": "
|
|
4
|
+
"Allow access to your Gallery": "",
|
|
5
|
+
"Allow camera access in device settings": "",
|
|
6
|
+
"Also send to channel": "",
|
|
7
|
+
"Are you sure you want to permanently delete this message?": "",
|
|
8
|
+
"Block User": "",
|
|
9
|
+
"Cancel": "",
|
|
10
|
+
"Cannot Flag Message": "",
|
|
11
|
+
"Copy Message": "",
|
|
12
|
+
"Delete": "",
|
|
13
|
+
"Delete Message": "",
|
|
14
|
+
"Device camera is used to take photos or videos.": "",
|
|
15
|
+
"Do you want to send a copy of this message to a moderator for further investigation?": "",
|
|
16
|
+
"Edit Message": "",
|
|
17
|
+
"Editing Message": "",
|
|
18
18
|
"Emoji matching": "Emoji eşleştirme",
|
|
19
|
-
"Empty message...": "
|
|
20
|
-
"Error loading": "
|
|
21
|
-
"Error loading channel list...": "
|
|
22
|
-
"Error loading messages for this channel...": "
|
|
23
|
-
"Error while loading, please reload/refresh": "
|
|
19
|
+
"Empty message...": "",
|
|
20
|
+
"Error loading": "",
|
|
21
|
+
"Error loading channel list...": "",
|
|
22
|
+
"Error loading messages for this channel...": "",
|
|
23
|
+
"Error while loading, please reload/refresh": "",
|
|
24
24
|
"File type not supported": "Dosya türü desteklenmiyor",
|
|
25
|
-
"Flag": "
|
|
26
|
-
"Flag Message": "
|
|
27
|
-
"Flag action failed either due to a network issue or the message is already flagged": "
|
|
28
|
-
"How about sending your first message to a friend?": "
|
|
25
|
+
"Flag": "",
|
|
26
|
+
"Flag Message": "",
|
|
27
|
+
"Flag action failed either due to a network issue or the message is already flagged": "",
|
|
28
|
+
"How about sending your first message to a friend?": "",
|
|
29
29
|
"Instant Commands": "Anlık Komutlar",
|
|
30
|
-
"Let's start chatting!": "
|
|
30
|
+
"Let's start chatting!": "",
|
|
31
31
|
"Links are disabled": "Bağlantılar devre dışı",
|
|
32
|
-
"Loading channels...": "
|
|
33
|
-
"Loading messages...": "
|
|
34
|
-
"Loading...": "
|
|
32
|
+
"Loading channels...": "",
|
|
33
|
+
"Loading messages...": "",
|
|
34
|
+
"Loading...": "",
|
|
35
35
|
"Maximum file size upload limit reached. Please upload a file below {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB.": "Maksimum dosya boyutu yükleme sınırına ulaşıldı. Lütfen {{MAX_FILE_SIZE_TO_UPLOAD_IN_MB}} MB'ın altında bir dosya yükleyin.",
|
|
36
|
-
"Message Reactions": "
|
|
37
|
-
"Message deleted": "
|
|
38
|
-
"Message flagged": "
|
|
39
|
-
"Mute User": "
|
|
40
|
-
"Not supported": "
|
|
41
|
-
"Nothing yet...": "
|
|
42
|
-
"Ok": "
|
|
43
|
-
"Only visible to you": "
|
|
44
|
-
"Open Settings": "
|
|
45
|
-
"Photo": "
|
|
46
|
-
"Photos and Videos": "
|
|
47
|
-
"Pin to Conversation": "
|
|
36
|
+
"Message Reactions": "",
|
|
37
|
+
"Message deleted": "",
|
|
38
|
+
"Message flagged": "",
|
|
39
|
+
"Mute User": "",
|
|
40
|
+
"Not supported": "",
|
|
41
|
+
"Nothing yet...": "",
|
|
42
|
+
"Ok": "",
|
|
43
|
+
"Only visible to you": "",
|
|
44
|
+
"Open Settings": "",
|
|
45
|
+
"Photo": "",
|
|
46
|
+
"Photos and Videos": "",
|
|
47
|
+
"Pin to Conversation": "",
|
|
48
48
|
"Pinned by": "Tarafından sabitlendi",
|
|
49
|
-
"Please enable access to your photos and videos so you can share them.": "
|
|
49
|
+
"Please enable access to your photos and videos so you can share them.": "",
|
|
50
50
|
"Please select a channel first": "Lütfen önce bir kanal seçiniz",
|
|
51
|
-
"Reconnecting...": "
|
|
52
|
-
"Reply": "
|
|
53
|
-
"Reply to Message": "
|
|
54
|
-
"Resend": "
|
|
55
|
-
"Search GIFs": "
|
|
56
|
-
"Select More Photos": "
|
|
57
|
-
"Send a message": "
|
|
51
|
+
"Reconnecting...": "",
|
|
52
|
+
"Reply": "",
|
|
53
|
+
"Reply to Message": "",
|
|
54
|
+
"Resend": "",
|
|
55
|
+
"Search GIFs": "",
|
|
56
|
+
"Select More Photos": "",
|
|
57
|
+
"Send a message": "",
|
|
58
58
|
"Sending links is not allowed in this conversation": "Bu konuşmada bağlantı göndermek desteklenmiyor",
|
|
59
|
-
"Slow mode ON": "
|
|
60
|
-
"The message has been reported to a moderator.": "
|
|
61
|
-
"Thread Reply": "
|
|
62
|
-
"Unblock User": "
|
|
63
|
-
"Unknown User": "
|
|
64
|
-
"Unmute User": "
|
|
65
|
-
"Unpin from Conversation": "
|
|
66
|
-
"Unread Messages": "
|
|
67
|
-
"Video": "
|
|
68
|
-
"You": "
|
|
59
|
+
"Slow mode ON": "",
|
|
60
|
+
"The message has been reported to a moderator.": "",
|
|
61
|
+
"Thread Reply": "",
|
|
62
|
+
"Unblock User": "",
|
|
63
|
+
"Unknown User": "",
|
|
64
|
+
"Unmute User": "",
|
|
65
|
+
"Unpin from Conversation": "",
|
|
66
|
+
"Unread Messages": "",
|
|
67
|
+
"Video": "",
|
|
68
|
+
"You": "",
|
|
69
69
|
"You can't send messages in this channel": "Bu konuşmaya mesaj gönderemezsiniz",
|
|
70
|
-
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "
|
|
71
|
-
"{{ index }} of {{ photoLength }}": "
|
|
72
|
-
"{{ replyCount }} Replies": "
|
|
70
|
+
"{{ firstUser }} and {{ nonSelfUserLength }} more are typing": "",
|
|
71
|
+
"{{ index }} of {{ photoLength }}": "",
|
|
72
|
+
"{{ replyCount }} Replies": "",
|
|
73
73
|
"{{ replyCount }} Thread Replies": "{{responseCount}} Konu Cevapı",
|
|
74
|
-
"{{ user }} is typing": "
|
|
75
|
-
"🏙 Attachment...": "
|
|
74
|
+
"{{ user }} is typing": "",
|
|
75
|
+
"🏙 Attachment...": ""
|
|
76
76
|
}
|
|
@@ -1,31 +1,49 @@
|
|
|
1
1
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
2
3
|
Object.defineProperty(exports, "__esModule", {
|
|
3
4
|
value: true
|
|
4
5
|
});
|
|
5
6
|
exports.AutoCompleteSuggestionListWithContext = exports.AutoCompleteSuggestionList = void 0;
|
|
7
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
6
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
8
|
-
var _react =
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
11
|
var _reactNative = require("react-native");
|
|
10
12
|
var _SuggestionsContext = require("../../contexts/suggestionsContext/SuggestionsContext");
|
|
11
13
|
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
12
|
-
var
|
|
14
|
+
var _native = require("../../native");
|
|
15
|
+
var _excluded = ["children", "style"];
|
|
13
16
|
var _this = this,
|
|
14
17
|
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/AutoCompleteInput/AutoCompleteSuggestionList.tsx";
|
|
18
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
|
+
var AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT = 30;
|
|
15
21
|
var SuggestionsItem = function SuggestionsItem(props) {
|
|
16
22
|
var children = props.children,
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
propsStyle = props.style,
|
|
24
|
+
pressableProps = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
25
|
+
var style = function style(_ref) {
|
|
26
|
+
var pressed = _ref.pressed;
|
|
27
|
+
return [propsStyle, {
|
|
28
|
+
opacity: pressed ? 0.2 : 1
|
|
29
|
+
}];
|
|
30
|
+
};
|
|
31
|
+
return _react["default"].createElement(_reactNative.Pressable, (0, _extends2["default"])({}, pressableProps, {
|
|
32
|
+
style: style,
|
|
19
33
|
__self: _this,
|
|
20
34
|
__source: {
|
|
21
35
|
fileName: _jsxFileName,
|
|
22
|
-
lineNumber:
|
|
23
|
-
columnNumber:
|
|
36
|
+
lineNumber: 52,
|
|
37
|
+
columnNumber: 5
|
|
24
38
|
}
|
|
25
39
|
}), children);
|
|
26
40
|
};
|
|
27
41
|
SuggestionsItem.displayName = 'SuggestionsHeader{messageInput{suggestions}}';
|
|
28
42
|
var AutoCompleteSuggestionListWithContext = function AutoCompleteSuggestionListWithContext(props) {
|
|
43
|
+
var _useState = (0, _react.useState)(0),
|
|
44
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
45
|
+
itemHeight = _useState2[0],
|
|
46
|
+
setItemHeight = _useState2[1];
|
|
29
47
|
var active = props.active,
|
|
30
48
|
AutoCompleteSuggestionHeader = props.AutoCompleteSuggestionHeader,
|
|
31
49
|
AutoCompleteSuggestionItem = props.AutoCompleteSuggestionItem,
|
|
@@ -34,98 +52,68 @@ var AutoCompleteSuggestionListWithContext = function AutoCompleteSuggestionListW
|
|
|
34
52
|
queryText = props.queryText,
|
|
35
53
|
triggerType = props.triggerType;
|
|
36
54
|
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
37
|
-
_useTheme$theme
|
|
55
|
+
_useTheme$theme = _useTheme.theme,
|
|
56
|
+
white = _useTheme$theme.colors.white,
|
|
57
|
+
_useTheme$theme$messa = _useTheme$theme.messageInput,
|
|
38
58
|
maxHeight = _useTheme$theme$messa.container.maxHeight,
|
|
39
59
|
itemStyle = _useTheme$theme$messa.suggestions.item,
|
|
40
60
|
flatlist = _useTheme$theme$messa.suggestionsListContainer.flatlist;
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
|
|
61
|
+
var flatlistHeight = (0, _react.useMemo)(function () {
|
|
62
|
+
var totalItemHeight;
|
|
63
|
+
if (triggerType === 'emoji') {
|
|
64
|
+
totalItemHeight = data.length < 7 ? data.length * itemHeight : itemHeight * 6;
|
|
65
|
+
} else {
|
|
66
|
+
totalItemHeight = data.length < 4 ? data.length * itemHeight : itemHeight * 3;
|
|
67
|
+
}
|
|
68
|
+
return triggerType === 'emoji' || triggerType === 'command' ? totalItemHeight + AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT : totalItemHeight;
|
|
69
|
+
}, [itemHeight, data.length]);
|
|
70
|
+
var renderItem = function renderItem(_ref2) {
|
|
71
|
+
var item = _ref2.item;
|
|
44
72
|
switch (triggerType) {
|
|
45
|
-
case 'mention':
|
|
46
|
-
if ((0, _SuggestionsContext.isSuggestionUser)(item)) {
|
|
47
|
-
return _react["default"].createElement(SuggestionsItem, {
|
|
48
|
-
onPress: function onPress() {
|
|
49
|
-
onSelect(item);
|
|
50
|
-
},
|
|
51
|
-
style: [{
|
|
52
|
-
paddingBottom: index === data.length - 1 ? 8 : 0,
|
|
53
|
-
paddingTop: index === 0 ? 8 : 0
|
|
54
|
-
}, itemStyle],
|
|
55
|
-
__self: _this,
|
|
56
|
-
__source: {
|
|
57
|
-
fileName: _jsxFileName,
|
|
58
|
-
lineNumber: 71,
|
|
59
|
-
columnNumber: 13
|
|
60
|
-
}
|
|
61
|
-
}, AutoCompleteSuggestionItem && _react["default"].createElement(AutoCompleteSuggestionItem, {
|
|
62
|
-
itemProps: item,
|
|
63
|
-
triggerType: triggerType,
|
|
64
|
-
__self: _this,
|
|
65
|
-
__source: {
|
|
66
|
-
fileName: _jsxFileName,
|
|
67
|
-
lineNumber: 84,
|
|
68
|
-
columnNumber: 17
|
|
69
|
-
}
|
|
70
|
-
}));
|
|
71
|
-
}
|
|
72
|
-
return null;
|
|
73
73
|
case 'command':
|
|
74
|
-
|
|
75
|
-
return _react["default"].createElement(SuggestionsItem, {
|
|
76
|
-
onPress: function onPress() {
|
|
77
|
-
onSelect(item);
|
|
78
|
-
},
|
|
79
|
-
style: [itemStyle],
|
|
80
|
-
__self: _this,
|
|
81
|
-
__source: {
|
|
82
|
-
fileName: _jsxFileName,
|
|
83
|
-
lineNumber: 93,
|
|
84
|
-
columnNumber: 13
|
|
85
|
-
}
|
|
86
|
-
}, AutoCompleteSuggestionItem && _react["default"].createElement(AutoCompleteSuggestionItem, {
|
|
87
|
-
itemProps: item,
|
|
88
|
-
triggerType: triggerType,
|
|
89
|
-
__self: _this,
|
|
90
|
-
__source: {
|
|
91
|
-
fileName: _jsxFileName,
|
|
92
|
-
lineNumber: 100,
|
|
93
|
-
columnNumber: 17
|
|
94
|
-
}
|
|
95
|
-
}));
|
|
96
|
-
}
|
|
97
|
-
return null;
|
|
74
|
+
case 'mention':
|
|
98
75
|
case 'emoji':
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
76
|
+
return _react["default"].createElement(SuggestionsItem, {
|
|
77
|
+
onLayout: function onLayout(event) {
|
|
78
|
+
return setItemHeight(event.nativeEvent.layout.height);
|
|
79
|
+
},
|
|
80
|
+
onPress: function onPress() {
|
|
81
|
+
onSelect(item);
|
|
82
|
+
},
|
|
83
|
+
style: itemStyle,
|
|
84
|
+
__self: _this,
|
|
85
|
+
__source: {
|
|
86
|
+
fileName: _jsxFileName,
|
|
87
|
+
lineNumber: 106,
|
|
88
|
+
columnNumber: 11
|
|
89
|
+
}
|
|
90
|
+
}, AutoCompleteSuggestionItem && _react["default"].createElement(AutoCompleteSuggestionItem, {
|
|
91
|
+
itemProps: item,
|
|
92
|
+
triggerType: triggerType,
|
|
93
|
+
__self: _this,
|
|
94
|
+
__source: {
|
|
95
|
+
fileName: _jsxFileName,
|
|
96
|
+
lineNumber: 114,
|
|
97
|
+
columnNumber: 15
|
|
98
|
+
}
|
|
99
|
+
}));
|
|
123
100
|
default:
|
|
124
101
|
return null;
|
|
125
102
|
}
|
|
126
103
|
};
|
|
127
104
|
if (!active || data.length === 0) return null;
|
|
128
|
-
return _react["default"].createElement(_reactNative.
|
|
105
|
+
return _react["default"].createElement(_reactNative.View, {
|
|
106
|
+
style: [styles.container, {
|
|
107
|
+
backgroundColor: white,
|
|
108
|
+
height: flatlistHeight
|
|
109
|
+
}],
|
|
110
|
+
__self: _this,
|
|
111
|
+
__source: {
|
|
112
|
+
fileName: _jsxFileName,
|
|
113
|
+
lineNumber: 126,
|
|
114
|
+
columnNumber: 5
|
|
115
|
+
}
|
|
116
|
+
}, _react["default"].createElement(_native.FlatList, {
|
|
129
117
|
data: data,
|
|
130
118
|
keyboardShouldPersistTaps: "always",
|
|
131
119
|
keyExtractor: function keyExtractor(item, index) {
|
|
@@ -137,8 +125,8 @@ var AutoCompleteSuggestionListWithContext = function AutoCompleteSuggestionListW
|
|
|
137
125
|
__self: _this,
|
|
138
126
|
__source: {
|
|
139
127
|
fileName: _jsxFileName,
|
|
140
|
-
lineNumber:
|
|
141
|
-
columnNumber:
|
|
128
|
+
lineNumber: 135,
|
|
129
|
+
columnNumber: 13
|
|
142
130
|
}
|
|
143
131
|
}) : null,
|
|
144
132
|
renderItem: renderItem,
|
|
@@ -148,10 +136,10 @@ var AutoCompleteSuggestionListWithContext = function AutoCompleteSuggestionListW
|
|
|
148
136
|
__self: _this,
|
|
149
137
|
__source: {
|
|
150
138
|
fileName: _jsxFileName,
|
|
151
|
-
lineNumber:
|
|
152
|
-
columnNumber:
|
|
139
|
+
lineNumber: 127,
|
|
140
|
+
columnNumber: 7
|
|
153
141
|
}
|
|
154
|
-
});
|
|
142
|
+
}));
|
|
155
143
|
};
|
|
156
144
|
exports.AutoCompleteSuggestionListWithContext = AutoCompleteSuggestionListWithContext;
|
|
157
145
|
var areEqual = function areEqual(prevProps, nextProps) {
|
|
@@ -185,11 +173,24 @@ var AutoCompleteSuggestionList = function AutoCompleteSuggestionList(props) {
|
|
|
185
173
|
__self: _this,
|
|
186
174
|
__source: {
|
|
187
175
|
fileName: _jsxFileName,
|
|
188
|
-
lineNumber:
|
|
176
|
+
lineNumber: 200,
|
|
189
177
|
columnNumber: 5
|
|
190
178
|
}
|
|
191
179
|
}));
|
|
192
180
|
};
|
|
193
181
|
exports.AutoCompleteSuggestionList = AutoCompleteSuggestionList;
|
|
182
|
+
var styles = _reactNative.StyleSheet.create({
|
|
183
|
+
container: {
|
|
184
|
+
borderRadius: 8,
|
|
185
|
+
elevation: 3,
|
|
186
|
+
marginHorizontal: 8,
|
|
187
|
+
marginVertical: 8,
|
|
188
|
+
shadowOffset: {
|
|
189
|
+
height: 1,
|
|
190
|
+
width: 0
|
|
191
|
+
},
|
|
192
|
+
shadowOpacity: 0.15
|
|
193
|
+
}
|
|
194
|
+
});
|
|
194
195
|
AutoCompleteSuggestionList.displayName = 'AutoCompleteSuggestionList{messageInput{suggestions{List}}}';
|
|
195
196
|
//# sourceMappingURL=AutoCompleteSuggestionList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_SuggestionsContext","_ThemeContext","_excluded","_this","_jsxFileName","SuggestionsItem","props","children","touchableOpacityProps","_objectWithoutProperties2","createElement","TouchableOpacity","_extends2","__self","__source","fileName","lineNumber","columnNumber","displayName","AutoCompleteSuggestionListWithContext","active","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","data","onSelect","queryText","triggerType","_useTheme","useTheme","_useTheme$theme$messa","theme","messageInput","maxHeight","container","itemStyle","suggestions","item","flatlist","suggestionsListContainer","renderItem","_ref","index","isSuggestionUser","onPress","style","paddingBottom","length","paddingTop","itemProps","isSuggestionCommand","isSuggestionEmoji","FlatList","keyboardShouldPersistTaps","keyExtractor","name","id","ListHeaderComponent","exports","areEqual","prevProps","nextProps","prevActive","prevData","prevQueryText","prevType","nextActive","nextData","nextQueryText","nextType","activeEqual","queryTextEqual","dataEqual","typeEqual","MemoizedAutoCompleteSuggestionList","React","memo","AutoCompleteSuggestionList","_useSuggestionsContex","useSuggestionsContext"],"sources":["AutoCompleteSuggestionList.tsx"],"sourcesContent":["import React from 'react';\nimport { FlatList, TouchableOpacity, TouchableOpacityProps } from 'react-native';\n\nimport type { AutoCompleteSuggestionHeaderProps } from './AutoCompleteSuggestionHeader';\nimport type { AutoCompleteSuggestionItemProps } from './AutoCompleteSuggestionItem';\n\nimport {\n isSuggestionCommand,\n isSuggestionEmoji,\n isSuggestionUser,\n Suggestion,\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\ntype AutoCompleteSuggestionListComponentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<SuggestionsContextValue, 'queryText' | 'triggerType'> & {\n active: boolean;\n data: Suggestion<StreamChatGenerics>[];\n onSelect: (item: Suggestion<StreamChatGenerics>) => void;\n};\n\nexport type AutoCompleteSuggestionListPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'AutoCompleteSuggestionHeader' | 'AutoCompleteSuggestionItem'\n> &\n AutoCompleteSuggestionListComponentProps<StreamChatGenerics>;\n\nconst SuggestionsItem: React.FC<TouchableOpacityProps> = (props) => {\n const { children, ...touchableOpacityProps } = props;\n return <TouchableOpacity {...touchableOpacityProps}>{children}</TouchableOpacity>;\n};\n\nSuggestionsItem.displayName = 'SuggestionsHeader{messageInput{suggestions}}';\n\nexport const AutoCompleteSuggestionListWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n active,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n data,\n onSelect,\n queryText,\n triggerType,\n } = props;\n\n const {\n theme: {\n messageInput: {\n container: { maxHeight },\n suggestions: { item: itemStyle },\n suggestionsListContainer: { flatlist },\n },\n },\n } = useTheme();\n\n const renderItem = ({ index, item }: { index: number; item: Suggestion<StreamChatGenerics> }) => {\n switch (triggerType) {\n case 'mention':\n if (isSuggestionUser(item)) {\n return (\n <SuggestionsItem\n onPress={() => {\n onSelect(item);\n }}\n style={[\n {\n paddingBottom: index === data.length - 1 ? 8 : 0,\n paddingTop: index === 0 ? 8 : 0,\n },\n itemStyle,\n ]}\n >\n {AutoCompleteSuggestionItem && (\n <AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />\n )}\n </SuggestionsItem>\n );\n }\n return null;\n case 'command':\n if (isSuggestionCommand(item)) {\n return (\n <SuggestionsItem\n onPress={() => {\n onSelect(item);\n }}\n style={[itemStyle]}\n >\n {AutoCompleteSuggestionItem && (\n <AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />\n )}\n </SuggestionsItem>\n );\n }\n return null;\n case 'emoji':\n if (isSuggestionEmoji(item)) {\n return (\n <SuggestionsItem\n onPress={() => {\n onSelect(item);\n }}\n style={[itemStyle]}\n >\n {AutoCompleteSuggestionItem && (\n <AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />\n )}\n </SuggestionsItem>\n );\n }\n return null;\n default:\n return null;\n }\n };\n\n if (!active || data.length === 0) return null;\n\n return (\n <FlatList\n data={data}\n keyboardShouldPersistTaps='always'\n keyExtractor={(item, index) =>\n `${item.name || (isSuggestionUser(item) ? item.id : '')}${index}`\n }\n ListHeaderComponent={\n AutoCompleteSuggestionHeader ? (\n <AutoCompleteSuggestionHeader queryText={queryText} triggerType={triggerType} />\n ) : null\n }\n renderItem={renderItem}\n style={[flatlist, { maxHeight }]}\n />\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n active: prevActive,\n data: prevData,\n queryText: prevQueryText,\n triggerType: prevType,\n } = prevProps;\n const {\n active: nextActive,\n data: nextData,\n queryText: nextQueryText,\n triggerType: nextType,\n } = nextProps;\n\n const activeEqual = prevActive === nextActive;\n if (!activeEqual) return false;\n\n const queryTextEqual = prevQueryText === nextQueryText;\n if (!queryTextEqual) return false;\n\n const dataEqual = prevData === nextData;\n if (!dataEqual) return false;\n\n const typeEqual = prevType === nextType;\n if (!typeEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteSuggestionList = React.memo(\n AutoCompleteSuggestionListWithContext,\n areEqual,\n) as typeof AutoCompleteSuggestionListWithContext;\n\nexport type AutoCompleteSuggestionListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = AutoCompleteSuggestionListComponentProps<StreamChatGenerics> & {\n AutoCompleteSuggestionHeader?: React.ComponentType<AutoCompleteSuggestionHeaderProps>;\n AutoCompleteSuggestionItem?: React.ComponentType<\n AutoCompleteSuggestionItemProps<StreamChatGenerics>\n >;\n};\n\nexport const AutoCompleteSuggestionList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListProps<StreamChatGenerics>,\n) => {\n const { AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem } =\n useSuggestionsContext<StreamChatGenerics>();\n\n return (\n <MemoizedAutoCompleteSuggestionList\n {...{ AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem }}\n {...props}\n />\n );\n};\n\nAutoCompleteSuggestionList.displayName =\n 'AutoCompleteSuggestionList{messageInput{suggestions{List}}}';\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_SuggestionsContext","_ThemeContext","_native","_excluded","_this","_jsxFileName","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT","SuggestionsItem","props","children","propsStyle","style","pressableProps","_objectWithoutProperties2","_ref","pressed","opacity","createElement","Pressable","_extends2","__self","__source","fileName","lineNumber","columnNumber","displayName","AutoCompleteSuggestionListWithContext","_useState","useState","_useState2","_slicedToArray2","itemHeight","setItemHeight","active","AutoCompleteSuggestionHeader","AutoCompleteSuggestionItem","data","onSelect","queryText","triggerType","_useTheme","useTheme","_useTheme$theme","theme","white","colors","_useTheme$theme$messa","messageInput","maxHeight","container","itemStyle","suggestions","item","flatlist","suggestionsListContainer","flatlistHeight","useMemo","totalItemHeight","length","renderItem","_ref2","onLayout","event","nativeEvent","layout","height","onPress","itemProps","View","styles","backgroundColor","FlatList","keyboardShouldPersistTaps","keyExtractor","index","name","isSuggestionUser","id","ListHeaderComponent","exports","areEqual","prevProps","nextProps","prevActive","prevData","prevQueryText","prevType","nextActive","nextData","nextQueryText","nextType","activeEqual","queryTextEqual","dataEqual","typeEqual","MemoizedAutoCompleteSuggestionList","React","memo","AutoCompleteSuggestionList","_useSuggestionsContex","useSuggestionsContext","StyleSheet","create","borderRadius","elevation","marginHorizontal","marginVertical","shadowOffset","width","shadowOpacity"],"sources":["AutoCompleteSuggestionList.tsx"],"sourcesContent":["import React, { useMemo, useState } from 'react';\nimport {\n LayoutChangeEvent,\n Pressable,\n PressableProps,\n PressableStateCallbackType,\n StyleSheet,\n View,\n ViewStyle,\n} from 'react-native';\n\nimport type { AutoCompleteSuggestionHeaderProps } from './AutoCompleteSuggestionHeader';\nimport type { AutoCompleteSuggestionItemProps } from './AutoCompleteSuggestionItem';\n\nimport {\n isSuggestionUser,\n Suggestion,\n SuggestionsContextValue,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { FlatList } from '../../native';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\n\nconst AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT = 30;\n\ntype AutoCompleteSuggestionListComponentProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<SuggestionsContextValue, 'queryText' | 'triggerType'> & {\n active: boolean;\n data: Suggestion<StreamChatGenerics>[];\n onSelect: (item: Suggestion<StreamChatGenerics>) => void;\n};\n\nexport type AutoCompleteSuggestionListPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'AutoCompleteSuggestionHeader' | 'AutoCompleteSuggestionItem'\n> &\n AutoCompleteSuggestionListComponentProps<StreamChatGenerics>;\n\nconst SuggestionsItem: React.FC<PressableProps> = (props) => {\n const { children, style: propsStyle, ...pressableProps } = props;\n\n const style = ({ pressed }: PressableStateCallbackType) => [\n propsStyle as ViewStyle,\n { opacity: pressed ? 0.2 : 1 },\n ];\n\n return (\n <Pressable {...pressableProps} style={style}>\n {children}\n </Pressable>\n );\n};\n\nSuggestionsItem.displayName = 'SuggestionsHeader{messageInput{suggestions}}';\n\nexport const AutoCompleteSuggestionListWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const [itemHeight, setItemHeight] = useState<number>(0);\n const {\n active,\n AutoCompleteSuggestionHeader,\n AutoCompleteSuggestionItem,\n data,\n onSelect,\n queryText,\n triggerType,\n } = props;\n\n const {\n theme: {\n colors: { white },\n messageInput: {\n container: { maxHeight },\n suggestions: { item: itemStyle },\n suggestionsListContainer: { flatlist },\n },\n },\n } = useTheme();\n\n const flatlistHeight = useMemo(() => {\n let totalItemHeight;\n if (triggerType === 'emoji') {\n totalItemHeight = data.length < 7 ? data.length * itemHeight : itemHeight * 6;\n } else {\n totalItemHeight = data.length < 4 ? data.length * itemHeight : itemHeight * 3;\n }\n\n return triggerType === 'emoji' || triggerType === 'command'\n ? totalItemHeight + AUTO_COMPLETE_SUGGESTION_LIST_HEADER_HEIGHT\n : totalItemHeight;\n }, [itemHeight, data.length]);\n\n const renderItem = ({ item }: { item: Suggestion<StreamChatGenerics> }) => {\n switch (triggerType) {\n case 'command':\n case 'mention':\n case 'emoji':\n return (\n <SuggestionsItem\n onLayout={(event: LayoutChangeEvent) => setItemHeight(event.nativeEvent.layout.height)}\n onPress={() => {\n onSelect(item);\n }}\n style={itemStyle}\n >\n {AutoCompleteSuggestionItem && (\n <AutoCompleteSuggestionItem itemProps={item} triggerType={triggerType} />\n )}\n </SuggestionsItem>\n );\n default:\n return null;\n }\n };\n\n if (!active || data.length === 0) return null;\n\n return (\n <View style={[styles.container, { backgroundColor: white, height: flatlistHeight }]}>\n <FlatList\n data={data}\n keyboardShouldPersistTaps='always'\n keyExtractor={(item, index) =>\n `${item.name || (isSuggestionUser(item) ? item.id : '')}${index}`\n }\n ListHeaderComponent={\n AutoCompleteSuggestionHeader ? (\n <AutoCompleteSuggestionHeader queryText={queryText} triggerType={triggerType} />\n ) : null\n }\n renderItem={renderItem}\n style={[flatlist, { maxHeight }]}\n />\n </View>\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteSuggestionListPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n active: prevActive,\n data: prevData,\n queryText: prevQueryText,\n triggerType: prevType,\n } = prevProps;\n const {\n active: nextActive,\n data: nextData,\n queryText: nextQueryText,\n triggerType: nextType,\n } = nextProps;\n\n const activeEqual = prevActive === nextActive;\n if (!activeEqual) return false;\n\n const queryTextEqual = prevQueryText === nextQueryText;\n if (!queryTextEqual) return false;\n\n const dataEqual = prevData === nextData;\n if (!dataEqual) return false;\n\n const typeEqual = prevType === nextType;\n if (!typeEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteSuggestionList = React.memo(\n AutoCompleteSuggestionListWithContext,\n areEqual,\n) as typeof AutoCompleteSuggestionListWithContext;\n\nexport type AutoCompleteSuggestionListProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = AutoCompleteSuggestionListComponentProps<StreamChatGenerics> & {\n AutoCompleteSuggestionHeader?: React.ComponentType<AutoCompleteSuggestionHeaderProps>;\n AutoCompleteSuggestionItem?: React.ComponentType<\n AutoCompleteSuggestionItemProps<StreamChatGenerics>\n >;\n};\n\nexport const AutoCompleteSuggestionList = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionListProps<StreamChatGenerics>,\n) => {\n const { AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem } =\n useSuggestionsContext<StreamChatGenerics>();\n\n return (\n <MemoizedAutoCompleteSuggestionList\n {...{ AutoCompleteSuggestionHeader, AutoCompleteSuggestionItem }}\n {...props}\n />\n );\n};\n\nconst styles = StyleSheet.create({\n container: {\n borderRadius: 8,\n elevation: 3,\n marginHorizontal: 8,\n marginVertical: 8,\n shadowOffset: { height: 1, width: 0 },\n shadowOpacity: 0.15,\n },\n});\n\nAutoCompleteSuggestionList.displayName =\n 'AutoCompleteSuggestionList{messageInput{suggestions{List}}}';\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAaA,IAAAE,mBAAA,GAAAF,OAAA;AAMA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AAAwC,IAAAK,SAAA;AAAA,IAAAC,KAAA;EAAAC,YAAA;AAAA,SAAAC,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAV,wBAAAc,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,cAAAN,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAGxC,IAAMW,2CAA2C,GAAG,EAAE;AAkBtD,IAAMC,eAAyC,GAAG,SAA5CA,eAAyCA,CAAIC,KAAK,EAAK;EAC3D,IAAQC,QAAQ,GAA2CD,KAAK,CAAxDC,QAAQ;IAASC,UAAU,GAAwBF,KAAK,CAA9CG,KAAK;IAAiBC,cAAc,OAAAC,yBAAA,aAAKL,KAAK,EAAA3B,SAAA;EAEhE,IAAM8B,KAAK,GAAG,SAARA,KAAKA,CAAAG,IAAA;IAAA,IAAMC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAA,OAAmC,CACzDL,UAAU,EACV;MAAEM,OAAO,EAAED,OAAO,GAAG,GAAG,GAAG;IAAE,CAAC,CAC/B;EAAA;EAED,OACEzC,MAAA,YAAA2C,aAAA,CAACxC,YAAA,CAAAyC,SAAS,MAAAC,SAAA,iBAAKP,cAAc;IAAED,KAAK,EAAEA,KAAM;IAAAS,MAAA,EAAAtC,KAAA;IAAAuC,QAAA;MAAAC,QAAA,EAAAvC,YAAA;MAAAwC,UAAA;MAAAC,YAAA;IAAA;EAAA,IACzCf,QACQ,CAAC;AAEhB,CAAC;AAEDF,eAAe,CAACkB,WAAW,GAAG,8CAA8C;AAErE,IAAMC,qCAAqC,GAAG,SAAxCA,qCAAqCA,CAGhDlB,KAAqE,EAClE;EACH,IAAAmB,SAAA,GAAoC,IAAAC,eAAQ,EAAS,CAAC,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAAhDI,UAAU,GAAAF,UAAA;IAAEG,aAAa,GAAAH,UAAA;EAChC,IACEI,MAAM,GAOJzB,KAAK,CAPPyB,MAAM;IACNC,4BAA4B,GAM1B1B,KAAK,CANP0B,4BAA4B;IAC5BC,0BAA0B,GAKxB3B,KAAK,CALP2B,0BAA0B;IAC1BC,IAAI,GAIF5B,KAAK,CAJP4B,IAAI;IACJC,QAAQ,GAGN7B,KAAK,CAHP6B,QAAQ;IACRC,SAAS,GAEP9B,KAAK,CAFP8B,SAAS;IACTC,WAAW,GACT/B,KAAK,CADP+B,WAAW;EAGb,IAAAC,SAAA,GASI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CARZG,KAAK;IACOC,KAAK,GAAAF,eAAA,CAAfG,MAAM,CAAID,KAAK;IAAAE,qBAAA,GAAAJ,eAAA,CACfK,YAAY;IACGC,SAAS,GAAAF,qBAAA,CAAtBG,SAAS,CAAID,SAAS;IACDE,SAAS,GAAAJ,qBAAA,CAA9BK,WAAW,CAAIC,IAAI;IACSC,QAAQ,GAAAP,qBAAA,CAApCQ,wBAAwB,CAAID,QAAQ;EAK1C,IAAME,cAAc,GAAG,IAAAC,cAAO,EAAC,YAAM;IACnC,IAAIC,eAAe;IACnB,IAAIlB,WAAW,KAAK,OAAO,EAAE;MAC3BkB,eAAe,GAAGrB,IAAI,CAACsB,MAAM,GAAG,CAAC,GAAGtB,IAAI,CAACsB,MAAM,GAAG3B,UAAU,GAAGA,UAAU,GAAG,CAAC;IAC/E,CAAC,MAAM;MACL0B,eAAe,GAAGrB,IAAI,CAACsB,MAAM,GAAG,CAAC,GAAGtB,IAAI,CAACsB,MAAM,GAAG3B,UAAU,GAAGA,UAAU,GAAG,CAAC;IAC/E;IAEA,OAAOQ,WAAW,KAAK,OAAO,IAAIA,WAAW,KAAK,SAAS,GACvDkB,eAAe,GAAGnD,2CAA2C,GAC7DmD,eAAe;EACrB,CAAC,EAAE,CAAC1B,UAAU,EAAEK,IAAI,CAACsB,MAAM,CAAC,CAAC;EAE7B,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAAC,KAAA,EAA2D;IAAA,IAArDR,IAAI,GAAAQ,KAAA,CAAJR,IAAI;IACxB,QAAQb,WAAW;MACjB,KAAK,SAAS;MACd,KAAK,SAAS;MACd,KAAK,OAAO;QACV,OACEjE,MAAA,YAAA2C,aAAA,CAACV,eAAe;UACdsD,QAAQ,EAAE,SAAAA,SAACC,KAAwB;YAAA,OAAK9B,aAAa,CAAC8B,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,MAAM,CAAC;UAAA,CAAC;UACvFC,OAAO,EAAE,SAAAA,QAAA,EAAM;YACb7B,QAAQ,CAACe,IAAI,CAAC;UAChB,CAAE;UACFzC,KAAK,EAAEuC,SAAU;UAAA9B,MAAA,EAAAtC,KAAA;UAAAuC,QAAA;YAAAC,QAAA,EAAAvC,YAAA;YAAAwC,UAAA;YAAAC,YAAA;UAAA;QAAA,GAEhBW,0BAA0B,IACzB7D,MAAA,YAAA2C,aAAA,CAACkB,0BAA0B;UAACgC,SAAS,EAAEf,IAAK;UAACb,WAAW,EAAEA,WAAY;UAAAnB,MAAA,EAAAtC,KAAA;UAAAuC,QAAA;YAAAC,QAAA,EAAAvC,YAAA;YAAAwC,UAAA;YAAAC,YAAA;UAAA;QAAA,CAAE,CAE3D,CAAC;MAEtB;QACE,OAAO,IAAI;IACf;EACF,CAAC;EAED,IAAI,CAACS,MAAM,IAAIG,IAAI,CAACsB,MAAM,KAAK,CAAC,EAAE,OAAO,IAAI;EAE7C,OACEpF,MAAA,YAAA2C,aAAA,CAACxC,YAAA,CAAA2F,IAAI;IAACzD,KAAK,EAAE,CAAC0D,MAAM,CAACpB,SAAS,EAAE;MAAEqB,eAAe,EAAE1B,KAAK;MAAEqB,MAAM,EAAEV;IAAe,CAAC,CAAE;IAAAnC,MAAA,EAAAtC,KAAA;IAAAuC,QAAA;MAAAC,QAAA,EAAAvC,YAAA;MAAAwC,UAAA;MAAAC,YAAA;IAAA;EAAA,GAClFlD,MAAA,YAAA2C,aAAA,CAACrC,OAAA,CAAA2F,QAAQ;IACPnC,IAAI,EAAEA,IAAK;IACXoC,yBAAyB,EAAC,QAAQ;IAClCC,YAAY,EAAE,SAAAA,aAACrB,IAAI,EAAEsB,KAAK;MAAA,aACrBtB,IAAI,CAACuB,IAAI,KAAK,IAAAC,oCAAgB,EAACxB,IAAI,CAAC,GAAGA,IAAI,CAACyB,EAAE,GAAG,EAAE,CAAC,IAAGH,KAAK;IAAA,CAChE;IACDI,mBAAmB,EACjB5C,4BAA4B,GAC1B5D,MAAA,YAAA2C,aAAA,CAACiB,4BAA4B;MAACI,SAAS,EAAEA,SAAU;MAACC,WAAW,EAAEA,WAAY;MAAAnB,MAAA,EAAAtC,KAAA;MAAAuC,QAAA;QAAAC,QAAA,EAAAvC,YAAA;QAAAwC,UAAA;QAAAC,YAAA;MAAA;IAAA,CAAE,CAAC,GAC9E,IACL;IACDmC,UAAU,EAAEA,UAAW;IACvBhD,KAAK,EAAE,CAAC0C,QAAQ,EAAE;MAAEL,SAAS,EAATA;IAAU,CAAC,CAAE;IAAA5B,MAAA,EAAAtC,KAAA;IAAAuC,QAAA;MAAAC,QAAA,EAAAvC,YAAA;MAAAwC,UAAA;MAAAC,YAAA;IAAA;EAAA,CAClC,CACG,CAAC;AAEX,CAAC;AAACuD,OAAA,CAAArD,qCAAA,GAAAA,qCAAA;AAEF,IAAMsD,QAAQ,GAAG,SAAXA,QAAQA,CACZC,SAAyE,EACzEC,SAAyE,EACtE;EACH,IACUC,UAAU,GAIhBF,SAAS,CAJXhD,MAAM;IACAmD,QAAQ,GAGZH,SAAS,CAHX7C,IAAI;IACOiD,aAAa,GAEtBJ,SAAS,CAFX3C,SAAS;IACIgD,QAAQ,GACnBL,SAAS,CADX1C,WAAW;EAEb,IACUgD,UAAU,GAIhBL,SAAS,CAJXjD,MAAM;IACAuD,QAAQ,GAGZN,SAAS,CAHX9C,IAAI;IACOqD,aAAa,GAEtBP,SAAS,CAFX5C,SAAS;IACIoD,QAAQ,GACnBR,SAAS,CADX3C,WAAW;EAGb,IAAMoD,WAAW,GAAGR,UAAU,KAAKI,UAAU;EAC7C,IAAI,CAACI,WAAW,EAAE,OAAO,KAAK;EAE9B,IAAMC,cAAc,GAAGP,aAAa,KAAKI,aAAa;EACtD,IAAI,CAACG,cAAc,EAAE,OAAO,KAAK;EAEjC,IAAMC,SAAS,GAAGT,QAAQ,KAAKI,QAAQ;EACvC,IAAI,CAACK,SAAS,EAAE,OAAO,KAAK;EAE5B,IAAMC,SAAS,GAAGR,QAAQ,KAAKI,QAAQ;EACvC,IAAI,CAACI,SAAS,EAAE,OAAO,KAAK;EAE5B,OAAO,IAAI;AACb,CAAC;AAED,IAAMC,kCAAkC,GAAGC,iBAAK,CAACC,IAAI,CACnDvE,qCAAqC,EACrCsD,QACF,CAAiD;AAW1C,IAAMkB,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAGrC1F,KAA0D,EACvD;EACH,IAAA2F,qBAAA,GACE,IAAAC,yCAAqB,EAAqB,CAAC;IADrClE,4BAA4B,GAAAiE,qBAAA,CAA5BjE,4BAA4B;IAAEC,0BAA0B,GAAAgE,qBAAA,CAA1BhE,0BAA0B;EAGhE,OACE7D,MAAA,YAAA2C,aAAA,CAAC8E,kCAAkC,MAAA5E,SAAA;IAC3Be,4BAA4B,EAA5BA,4BAA4B;IAAEC,0BAA0B,EAA1BA;EAA0B,GAC1D3B,KAAK;IAAAY,MAAA,EAAAtC,KAAA;IAAAuC,QAAA;MAAAC,QAAA,EAAAvC,YAAA;MAAAwC,UAAA;MAAAC,YAAA;IAAA;EAAA,EACV,CAAC;AAEN,CAAC;AAACuD,OAAA,CAAAmB,0BAAA,GAAAA,0BAAA;AAEF,IAAM7B,MAAM,GAAGgC,uBAAU,CAACC,MAAM,CAAC;EAC/BrD,SAAS,EAAE;IACTsD,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE,CAAC;IACZC,gBAAgB,EAAE,CAAC;IACnBC,cAAc,EAAE,CAAC;IACjBC,YAAY,EAAE;MAAE1C,MAAM,EAAE,CAAC;MAAE2C,KAAK,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AAEFX,0BAA0B,CAACzE,WAAW,GACpC,6DAA6D"}
|