vdb-ai-chat 1.0.1 → 1.0.2
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/dist/10.chat-widget.js +2 -0
- package/dist/10.chat-widget.js.LICENSE.txt +1 -0
- package/dist/104.chat-widget.js +1 -0
- package/dist/50.chat-widget.js +1 -0
- package/dist/521.chat-widget.js +1 -0
- package/dist/538.chat-widget.js +1 -1
- package/dist/572.chat-widget.js +1 -0
- package/dist/694.chat-widget.js +1 -0
- package/dist/chat-widget.js +1 -1
- package/lib/commonjs/api.js +4 -3
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/components/BetaNotice.js +38 -0
- package/lib/commonjs/components/BetaNotice.js.map +1 -0
- package/lib/commonjs/components/ChatHeader.js +27 -20
- package/lib/commonjs/components/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/ChatInput.js +21 -21
- package/lib/commonjs/components/ChatInput.js.map +1 -1
- package/lib/commonjs/components/ChatWidget.js +119 -72
- package/lib/commonjs/components/ChatWidget.js.map +1 -1
- package/lib/commonjs/components/MessageBubble.js +26 -90
- package/lib/commonjs/components/MessageBubble.js.map +1 -1
- package/lib/commonjs/components/MessageMetaRow.js +135 -0
- package/lib/commonjs/components/MessageMetaRow.js.map +1 -0
- package/lib/commonjs/components/ProductsGrid.js +139 -0
- package/lib/commonjs/components/ProductsGrid.js.map +1 -0
- package/lib/commonjs/components/ProductsList.js +22 -126
- package/lib/commonjs/components/ProductsList.js.map +1 -1
- package/lib/commonjs/components/ProductsListView.js +139 -0
- package/lib/commonjs/components/ProductsListView.js.map +1 -0
- package/lib/commonjs/components/SuggestionsRow.js +41 -23
- package/lib/commonjs/components/SuggestionsRow.js.map +1 -1
- package/lib/commonjs/components/utils.js +4 -3
- package/lib/commonjs/components/utils.js.map +1 -1
- package/lib/commonjs/index.web.js +86 -29
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/theme.js +4 -4
- package/lib/commonjs/theme.js.map +1 -1
- package/lib/module/api.js +4 -3
- package/lib/module/api.js.map +1 -1
- package/lib/module/components/BetaNotice.js +30 -0
- package/lib/module/components/BetaNotice.js.map +1 -0
- package/lib/module/components/ChatHeader.js +27 -20
- package/lib/module/components/ChatHeader.js.map +1 -1
- package/lib/module/components/ChatInput.js +21 -21
- package/lib/module/components/ChatInput.js.map +1 -1
- package/lib/module/components/ChatWidget.js +120 -73
- package/lib/module/components/ChatWidget.js.map +1 -1
- package/lib/module/components/MessageBubble.js +26 -92
- package/lib/module/components/MessageBubble.js.map +1 -1
- package/lib/module/components/MessageMetaRow.js +127 -0
- package/lib/module/components/MessageMetaRow.js.map +1 -0
- package/lib/module/components/ProductsGrid.js +133 -0
- package/lib/module/components/ProductsGrid.js.map +1 -0
- package/lib/module/components/ProductsList.js +21 -126
- package/lib/module/components/ProductsList.js.map +1 -1
- package/lib/module/components/ProductsListView.js +132 -0
- package/lib/module/components/ProductsListView.js.map +1 -0
- package/lib/module/components/SuggestionsRow.js +41 -23
- package/lib/module/components/SuggestionsRow.js.map +1 -1
- package/lib/module/components/utils.js +4 -3
- package/lib/module/components/utils.js.map +1 -1
- package/lib/module/index.web.js +86 -29
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/theme.js +4 -4
- package/lib/module/theme.js.map +1 -1
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/components/BetaNotice.d.ts +5 -0
- package/lib/typescript/components/BetaNotice.d.ts.map +1 -0
- package/lib/typescript/components/ChatHeader.d.ts +5 -2
- package/lib/typescript/components/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/ChatInput.d.ts.map +1 -1
- package/lib/typescript/components/ChatWidget.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble.d.ts +7 -3
- package/lib/typescript/components/MessageBubble.d.ts.map +1 -1
- package/lib/typescript/components/MessageMetaRow.d.ts +14 -0
- package/lib/typescript/components/MessageMetaRow.d.ts.map +1 -0
- package/lib/typescript/components/ProductsGrid.d.ts +10 -0
- package/lib/typescript/components/ProductsGrid.d.ts.map +1 -0
- package/lib/typescript/components/ProductsList.d.ts +4 -2
- package/lib/typescript/components/ProductsList.d.ts.map +1 -1
- package/lib/typescript/components/ProductsListView.d.ts +10 -0
- package/lib/typescript/components/ProductsListView.d.ts.map +1 -0
- package/lib/typescript/components/SuggestionsRow.d.ts +2 -0
- package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -1
- package/lib/typescript/components/utils.d.ts +1 -0
- package/lib/typescript/components/utils.d.ts.map +1 -1
- package/lib/typescript/index.web.d.ts +1 -1
- package/lib/typescript/index.web.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +3 -1
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/api.ts +4 -3
- package/src/components/BetaNotice.tsx +32 -0
- package/src/components/ChatHeader.tsx +32 -18
- package/src/components/ChatInput.tsx +20 -21
- package/src/components/ChatWidget.tsx +258 -220
- package/src/components/MessageBubble.tsx +44 -149
- package/src/components/MessageMetaRow.tsx +199 -0
- package/src/components/ProductsGrid.tsx +163 -0
- package/src/components/ProductsList.tsx +20 -146
- package/src/components/ProductsListView.tsx +149 -0
- package/src/components/SuggestionsRow.tsx +45 -21
- package/src/components/utils.ts +6 -4
- package/src/index.web.tsx +87 -32
- package/src/theme.ts +4 -4
- package/src/types.ts +3 -2
- package/dist/751.chat-widget.js +0 -1
- package/lib/commonjs/contexts/SegmentClientContext.js +0 -19
- package/lib/commonjs/contexts/SegmentClientContext.js.map +0 -1
- package/lib/module/contexts/SegmentClientContext.js +0 -10
- package/lib/module/contexts/SegmentClientContext.js.map +0 -1
- package/lib/typescript/contexts/SegmentClientContext.d.ts +0 -9
- package/lib/typescript/contexts/SegmentClientContext.d.ts.map +0 -1
- package/src/contexts/SegmentClientContext.tsx +0 -20
|
@@ -1,133 +1,28 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
let ImageComponent = Image;
|
|
6
|
-
if (Platform.OS !== "web") {
|
|
7
|
-
try {
|
|
8
|
-
const ExpoImage = require("expo-image").Image;
|
|
9
|
-
if (ExpoImage) ImageComponent = ExpoImage;
|
|
10
|
-
} catch {
|
|
11
|
-
// expo-image not installed, use React Native Image
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
const ProductsListComponent = ({
|
|
1
|
+
import React from "react";
|
|
2
|
+
import ProductsGrid from "./ProductsGrid";
|
|
3
|
+
import ProductsListView from "./ProductsListView";
|
|
4
|
+
const ProductsList = ({
|
|
15
5
|
data,
|
|
16
6
|
onViewAll,
|
|
17
|
-
onItemPress
|
|
7
|
+
onItemPress,
|
|
8
|
+
variant = "list",
|
|
9
|
+
totalResults
|
|
18
10
|
}) => {
|
|
19
11
|
if (!data || !data.length) return null;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
key: item.id,
|
|
28
|
-
onPress: () => {
|
|
29
|
-
onItemPress?.(item);
|
|
30
|
-
}
|
|
31
|
-
}, /*#__PURE__*/React.createElement(View, {
|
|
32
|
-
key: item.id,
|
|
33
|
-
style: styles.card
|
|
34
|
-
}, item.image_thumb_url ? /*#__PURE__*/React.createElement(ImageComponent, {
|
|
35
|
-
style: styles.image,
|
|
36
|
-
source: {
|
|
37
|
-
uri: item.image_thumb_url
|
|
38
|
-
}
|
|
39
|
-
}) : null, /*#__PURE__*/React.createElement(View, {
|
|
40
|
-
style: styles.content
|
|
41
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
42
|
-
numberOfLines: 2,
|
|
43
|
-
style: styles.title
|
|
44
|
-
}, item.short_title), /*#__PURE__*/React.createElement(Text, {
|
|
45
|
-
style: styles.price
|
|
46
|
-
}, "$", item.total_sales_price)))))), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
47
|
-
style: styles.button,
|
|
48
|
-
activeOpacity: 0.8,
|
|
49
|
-
onPress: onViewAll
|
|
50
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
51
|
-
style: styles.buttonText
|
|
52
|
-
}, "View All ", ">>")));
|
|
53
|
-
};
|
|
54
|
-
const styles = StyleSheet.create({
|
|
55
|
-
wrapper: {
|
|
56
|
-
paddingHorizontal: 12,
|
|
57
|
-
marginHorizontal: 12,
|
|
58
|
-
marginBottom: 12,
|
|
59
|
-
paddingTop: 6,
|
|
60
|
-
paddingBottom: 14,
|
|
61
|
-
backgroundColor: "#fff",
|
|
62
|
-
borderRadius: 8,
|
|
63
|
-
borderWidth: 1,
|
|
64
|
-
borderColor: "#e8e8e8",
|
|
65
|
-
elevation: 3,
|
|
66
|
-
shadowColor: "#000",
|
|
67
|
-
shadowOpacity: 0.08,
|
|
68
|
-
shadowOffset: {
|
|
69
|
-
width: 0,
|
|
70
|
-
height: 2
|
|
71
|
-
},
|
|
72
|
-
shadowRadius: 6
|
|
73
|
-
},
|
|
74
|
-
listContent: {
|
|
75
|
-
gap: 12,
|
|
76
|
-
paddingVertical: 6
|
|
77
|
-
},
|
|
78
|
-
card: {
|
|
79
|
-
width: 150,
|
|
80
|
-
backgroundColor: "#fff",
|
|
81
|
-
borderRadius: 14,
|
|
82
|
-
overflow: "hidden",
|
|
83
|
-
borderColor: "#e8e8e8",
|
|
84
|
-
borderWidth: 1,
|
|
85
|
-
elevation: 3,
|
|
86
|
-
shadowColor: "#000",
|
|
87
|
-
shadowOpacity: 0.08,
|
|
88
|
-
shadowOffset: {
|
|
89
|
-
width: 0,
|
|
90
|
-
height: 2
|
|
91
|
-
},
|
|
92
|
-
shadowRadius: 6
|
|
93
|
-
},
|
|
94
|
-
image: {
|
|
95
|
-
width: "100%",
|
|
96
|
-
height: 120,
|
|
97
|
-
borderBottomWidth: 1,
|
|
98
|
-
borderBottomColor: "#e8e8e8"
|
|
99
|
-
},
|
|
100
|
-
content: {
|
|
101
|
-
padding: 10,
|
|
102
|
-
gap: 4
|
|
103
|
-
},
|
|
104
|
-
title: {
|
|
105
|
-
fontSize: 13,
|
|
106
|
-
color: "#222",
|
|
107
|
-
fontWeight: "500"
|
|
108
|
-
},
|
|
109
|
-
price: {
|
|
110
|
-
marginTop: 4,
|
|
111
|
-
fontSize: 14,
|
|
112
|
-
fontWeight: "700",
|
|
113
|
-
color: "#000"
|
|
114
|
-
},
|
|
115
|
-
button: {
|
|
116
|
-
marginTop: 12,
|
|
117
|
-
alignSelf: "center",
|
|
118
|
-
paddingHorizontal: 20,
|
|
119
|
-
paddingVertical: 8,
|
|
120
|
-
backgroundColor: "#804195",
|
|
121
|
-
borderRadius: 20,
|
|
122
|
-
width: 300,
|
|
123
|
-
alignItems: "center"
|
|
124
|
-
},
|
|
125
|
-
buttonText: {
|
|
126
|
-
color: "#fff",
|
|
127
|
-
fontSize: 14,
|
|
128
|
-
fontWeight: "600"
|
|
12
|
+
if (variant === "list") {
|
|
13
|
+
return /*#__PURE__*/React.createElement(ProductsListView, {
|
|
14
|
+
data: data,
|
|
15
|
+
onViewAll: onViewAll,
|
|
16
|
+
onItemPress: onItemPress,
|
|
17
|
+
totalResults: totalResults
|
|
18
|
+
});
|
|
129
19
|
}
|
|
130
|
-
|
|
131
|
-
|
|
20
|
+
return /*#__PURE__*/React.createElement(ProductsGrid, {
|
|
21
|
+
data: data,
|
|
22
|
+
onViewAll: onViewAll,
|
|
23
|
+
onItemPress: onItemPress,
|
|
24
|
+
totalResults: totalResults
|
|
25
|
+
});
|
|
26
|
+
};
|
|
132
27
|
export default ProductsList;
|
|
133
28
|
//# sourceMappingURL=ProductsList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["React","ProductsGrid","ProductsListView","ProductsList","data","onViewAll","onItemPress","variant","totalResults","length","createElement"],"sourceRoot":"../../../src","sources":["components/ProductsList.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,YAAY,MAAM,gBAAgB;AACzC,OAAOC,gBAAgB,MAAM,oBAAoB;AAUjD,MAAMC,YAAyC,GAAGA,CAAC;EACjDC,IAAI;EACJC,SAAS;EACTC,WAAW;EACXC,OAAO,GAAG,MAAM;EAChBC;AACF,CAAC,KAAK;EACJ,IAAI,CAACJ,IAAI,IAAI,CAACA,IAAI,CAACK,MAAM,EAAE,OAAO,IAAI;EACtC,IAAIF,OAAO,KAAK,MAAM,EAAE;IACtB,oBACEP,KAAA,CAAAU,aAAA,CAACR,gBAAgB;MACfE,IAAI,EAAEA,IAAK;MACXC,SAAS,EAAEA,SAAU;MACrBC,WAAW,EAAEA,WAAY;MACzBE,YAAY,EAAEA;IAAa,CAC5B,CAAC;EAEN;EACA,oBACER,KAAA,CAAAU,aAAA,CAACT,YAAY;IAACG,IAAI,EAAEA,IAAK;IAACC,SAAS,EAAEA,SAAU;IAACC,WAAW,EAAEA,WAAY;IAACE,YAAY,EAAEA;EAAa,CAAE,CAAC;AAE5G,CAAC;AAED,eAAeL,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import React, { memo, useState } from "react";
|
|
2
|
+
import { View, StyleSheet, Text, TouchableOpacity, ScrollView, Platform, Image } from "react-native";
|
|
3
|
+
let ImageComponent = Image;
|
|
4
|
+
if (Platform.OS !== "web") {
|
|
5
|
+
try {
|
|
6
|
+
const ExpoImage = require("expo-image").Image;
|
|
7
|
+
if (ExpoImage) ImageComponent = ExpoImage;
|
|
8
|
+
} catch {
|
|
9
|
+
// expo-image not installed, use React Native Image
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const ProductsListViewComponent = ({
|
|
13
|
+
data,
|
|
14
|
+
totalResults,
|
|
15
|
+
onViewAll,
|
|
16
|
+
onItemPress
|
|
17
|
+
}) => {
|
|
18
|
+
if (!data || !data.length) return null;
|
|
19
|
+
const [priceWidth, setPriceWidth] = useState(0);
|
|
20
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
21
|
+
style: styles.wrapper
|
|
22
|
+
}, /*#__PURE__*/React.createElement(ScrollView, {
|
|
23
|
+
showsVerticalScrollIndicator: false,
|
|
24
|
+
contentContainerStyle: styles.listContent
|
|
25
|
+
}, data.map((item, index) => /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
26
|
+
key: item.id,
|
|
27
|
+
onPress: () => onItemPress?.(item),
|
|
28
|
+
activeOpacity: 0.8
|
|
29
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
30
|
+
style: styles.row
|
|
31
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
32
|
+
style: styles.left
|
|
33
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
34
|
+
style: styles.serial
|
|
35
|
+
}, index + 1, "."), /*#__PURE__*/React.createElement(Text, {
|
|
36
|
+
numberOfLines: 1,
|
|
37
|
+
ellipsizeMode: "tail",
|
|
38
|
+
style: styles.title
|
|
39
|
+
}, item.short_title)), item.total_sales_price ? /*#__PURE__*/React.createElement(View, {
|
|
40
|
+
style: [styles.priceContainer, priceWidth ? {
|
|
41
|
+
width: priceWidth
|
|
42
|
+
} : null]
|
|
43
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
44
|
+
style: styles.price,
|
|
45
|
+
onLayout: e => {
|
|
46
|
+
const w = e.nativeEvent.layout.width;
|
|
47
|
+
if (w > priceWidth) setPriceWidth(w);
|
|
48
|
+
}
|
|
49
|
+
}, "$", item.total_sales_price)) : /*#__PURE__*/React.createElement(React.Fragment, null))))), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
50
|
+
style: styles.button,
|
|
51
|
+
activeOpacity: 0.8,
|
|
52
|
+
onPress: onViewAll
|
|
53
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
54
|
+
style: styles.buttonText
|
|
55
|
+
}, `View All ${totalResults} Results`), /*#__PURE__*/React.createElement(Image, {
|
|
56
|
+
source: {
|
|
57
|
+
uri: "https://cdn.vdbapp.com/ai/chat-widget/assets/img/right.svg"
|
|
58
|
+
},
|
|
59
|
+
resizeMode: "contain",
|
|
60
|
+
style: {
|
|
61
|
+
width: 20,
|
|
62
|
+
height: 20,
|
|
63
|
+
tintColor: "#fff"
|
|
64
|
+
}
|
|
65
|
+
})));
|
|
66
|
+
};
|
|
67
|
+
const styles = StyleSheet.create({
|
|
68
|
+
wrapper: {
|
|
69
|
+
paddingHorizontal: 8
|
|
70
|
+
},
|
|
71
|
+
listContent: {
|
|
72
|
+
// No extra padding/margins
|
|
73
|
+
},
|
|
74
|
+
row: {
|
|
75
|
+
flexDirection: "row",
|
|
76
|
+
justifyContent: "space-between",
|
|
77
|
+
alignItems: "center",
|
|
78
|
+
paddingVertical: 6,
|
|
79
|
+
backgroundColor: "#fff"
|
|
80
|
+
},
|
|
81
|
+
left: {
|
|
82
|
+
flexDirection: "row",
|
|
83
|
+
alignItems: "center",
|
|
84
|
+
gap: 4,
|
|
85
|
+
flex: 1,
|
|
86
|
+
minWidth: 0
|
|
87
|
+
},
|
|
88
|
+
serial: {
|
|
89
|
+
fontSize: 13,
|
|
90
|
+
color: "#020001",
|
|
91
|
+
fontWeight: "500"
|
|
92
|
+
},
|
|
93
|
+
title: {
|
|
94
|
+
flexShrink: 1,
|
|
95
|
+
fontSize: 13,
|
|
96
|
+
color: "#3378F6",
|
|
97
|
+
fontWeight: "500"
|
|
98
|
+
},
|
|
99
|
+
price: {
|
|
100
|
+
fontSize: 13,
|
|
101
|
+
fontWeight: "500",
|
|
102
|
+
color: "#020001",
|
|
103
|
+
textAlign: "left"
|
|
104
|
+
},
|
|
105
|
+
priceContainer: {
|
|
106
|
+
alignItems: "flex-start",
|
|
107
|
+
justifyContent: "center"
|
|
108
|
+
},
|
|
109
|
+
button: {
|
|
110
|
+
marginTop: 12,
|
|
111
|
+
marginHorizontal: 12,
|
|
112
|
+
alignSelf: "center",
|
|
113
|
+
paddingHorizontal: 16,
|
|
114
|
+
paddingVertical: 6,
|
|
115
|
+
backgroundColor: "#292735",
|
|
116
|
+
borderRadius: 8,
|
|
117
|
+
alignItems: "center",
|
|
118
|
+
gap: 16,
|
|
119
|
+
width: "100%",
|
|
120
|
+
flexDirection: "row",
|
|
121
|
+
justifyContent: "center",
|
|
122
|
+
alignContent: "center"
|
|
123
|
+
},
|
|
124
|
+
buttonText: {
|
|
125
|
+
color: "#fff",
|
|
126
|
+
fontSize: 14,
|
|
127
|
+
fontWeight: "600"
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
const ProductsListView = /*#__PURE__*/memo(ProductsListViewComponent);
|
|
131
|
+
export default ProductsListView;
|
|
132
|
+
//# sourceMappingURL=ProductsListView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","memo","useState","View","StyleSheet","Text","TouchableOpacity","ScrollView","Platform","Image","ImageComponent","OS","ExpoImage","require","ProductsListViewComponent","data","totalResults","onViewAll","onItemPress","length","priceWidth","setPriceWidth","createElement","style","styles","wrapper","showsVerticalScrollIndicator","contentContainerStyle","listContent","map","item","index","key","id","onPress","activeOpacity","row","left","serial","numberOfLines","ellipsizeMode","title","short_title","total_sales_price","priceContainer","width","price","onLayout","e","w","nativeEvent","layout","Fragment","button","buttonText","source","uri","resizeMode","height","tintColor","create","paddingHorizontal","flexDirection","justifyContent","alignItems","paddingVertical","backgroundColor","gap","flex","minWidth","fontSize","color","fontWeight","flexShrink","textAlign","marginTop","marginHorizontal","alignSelf","borderRadius","alignContent","ProductsListView"],"sourceRoot":"../../../src","sources":["components/ProductsListView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,16 +2,17 @@ import React, { memo } from "react";
|
|
|
2
2
|
import { Text, TouchableOpacity, StyleSheet, ScrollView } from "react-native";
|
|
3
3
|
const SuggestionsRowComponent = ({
|
|
4
4
|
suggestions,
|
|
5
|
-
onSelect
|
|
5
|
+
onSelect,
|
|
6
|
+
variant = "default"
|
|
6
7
|
}) => {
|
|
7
8
|
if (!suggestions.length) return null;
|
|
8
9
|
return /*#__PURE__*/React.createElement(ScrollView, {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
showsVerticalScrollIndicator: false,
|
|
11
|
+
contentContainerStyle: [styles.container, variant === "inline" && styles.containerInline],
|
|
12
|
+
style: [styles.scroll, variant === "inline" && styles.scrollInline]
|
|
12
13
|
}, suggestions.map(s => /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
13
14
|
key: s,
|
|
14
|
-
style: styles.chip,
|
|
15
|
+
style: [styles.chip, variant === "inline" && styles.chipInline],
|
|
15
16
|
onPress: () => onSelect(s),
|
|
16
17
|
activeOpacity: 0.75
|
|
17
18
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
@@ -19,32 +20,49 @@ const SuggestionsRowComponent = ({
|
|
|
19
20
|
}, s))));
|
|
20
21
|
};
|
|
21
22
|
const styles = StyleSheet.create({
|
|
23
|
+
scroll: {
|
|
24
|
+
maxWidth: "80%",
|
|
25
|
+
alignSelf: "flex-start",
|
|
26
|
+
paddingHorizontal: 8
|
|
27
|
+
},
|
|
28
|
+
scrollInline: {
|
|
29
|
+
maxWidth: "100%",
|
|
30
|
+
alignSelf: "stretch",
|
|
31
|
+
paddingHorizontal: 0
|
|
32
|
+
},
|
|
22
33
|
container: {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
34
|
+
paddingVertical: 0,
|
|
35
|
+
flexDirection: "column",
|
|
36
|
+
justifyContent: "center",
|
|
37
|
+
alignItems: "center",
|
|
38
|
+
gap: 4,
|
|
39
|
+
alignSelf: "stretch"
|
|
40
|
+
// backgroundColor: "#EDEDF2",
|
|
41
|
+
},
|
|
42
|
+
containerInline: {
|
|
43
|
+
// inside bubble, rely on bubble background
|
|
44
|
+
gap: 6
|
|
27
45
|
},
|
|
28
46
|
chip: {
|
|
29
|
-
backgroundColor: "#
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
47
|
+
backgroundColor: "#EDEDF2",
|
|
48
|
+
borderRadius: 4,
|
|
49
|
+
paddingHorizontal: 8,
|
|
50
|
+
paddingVertical: 6,
|
|
51
|
+
width: "100%",
|
|
52
|
+
alignSelf: "stretch",
|
|
53
|
+
justifyContent: "center",
|
|
54
|
+
alignItems: "flex-start",
|
|
55
|
+
borderWidth: 1,
|
|
56
|
+
borderColor: "#E0E0E0"
|
|
57
|
+
},
|
|
58
|
+
chipInline: {
|
|
59
|
+
backgroundColor: "#FFFFFF"
|
|
42
60
|
},
|
|
43
61
|
chipText: {
|
|
44
62
|
fontSize: 14,
|
|
45
63
|
color: "#1A1A1A",
|
|
46
64
|
fontWeight: "500",
|
|
47
|
-
|
|
65
|
+
textAlign: "left"
|
|
48
66
|
}
|
|
49
67
|
});
|
|
50
68
|
const SuggestionsRow = /*#__PURE__*/memo(SuggestionsRowComponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","Text","TouchableOpacity","StyleSheet","ScrollView","SuggestionsRowComponent","suggestions","onSelect","
|
|
1
|
+
{"version":3,"names":["React","memo","Text","TouchableOpacity","StyleSheet","ScrollView","SuggestionsRowComponent","suggestions","onSelect","variant","length","createElement","showsVerticalScrollIndicator","contentContainerStyle","styles","container","containerInline","style","scroll","scrollInline","map","s","key","chip","chipInline","onPress","activeOpacity","chipText","create","maxWidth","alignSelf","paddingHorizontal","paddingVertical","flexDirection","justifyContent","alignItems","gap","backgroundColor","borderRadius","width","borderWidth","borderColor","fontSize","color","fontWeight","textAlign","SuggestionsRow"],"sourceRoot":"../../../src","sources":["components/SuggestionsRow.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAEEC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,QACL,cAAc;AASrB,MAAMC,uBAAsD,GAAGA,CAAC;EAC9DC,WAAW;EACXC,QAAQ;EACRC,OAAO,GAAG;AACZ,CAAC,KAAK;EACJ,IAAI,CAACF,WAAW,CAACG,MAAM,EAAE,OAAO,IAAI;EAEpC,oBACEV,KAAA,CAAAW,aAAA,CAACN,UAAU;IACTO,4BAA4B,EAAE,KAAM;IACpCC,qBAAqB,EAAE,CACrBC,MAAM,CAACC,SAAS,EAChBN,OAAO,KAAK,QAAQ,IAAIK,MAAM,CAACE,eAAe,CAC9C;IACFC,KAAK,EAAE,CAACH,MAAM,CAACI,MAAM,EAAET,OAAO,KAAK,QAAQ,IAAIK,MAAM,CAACK,YAAY;EAAE,GAEnEZ,WAAW,CAACa,GAAG,CAAEC,CAAC,iBACjBrB,KAAA,CAAAW,aAAA,CAACR,gBAAgB;IACfmB,GAAG,EAAED,CAAE;IACPJ,KAAK,EAAE,CAACH,MAAM,CAACS,IAAI,EAAEd,OAAO,KAAK,QAAQ,IAAIK,MAAM,CAACU,UAAU,CAAE;IAChEC,OAAO,EAAEA,CAAA,KAAMjB,QAAQ,CAACa,CAAC,CAAE;IAC3BK,aAAa,EAAE;EAAK,gBAEpB1B,KAAA,CAAAW,aAAA,CAACT,IAAI;IAACe,KAAK,EAAEH,MAAM,CAACa;EAAS,GAAEN,CAAQ,CACvB,CACnB,CACS,CAAC;AAEjB,CAAC;AAED,MAAMP,MAAM,GAAGV,UAAU,CAACwB,MAAM,CAAC;EAC/BV,MAAM,EAAE;IACNW,QAAQ,EAAE,KAAK;IACfC,SAAS,EAAE,YAAY;IACvBC,iBAAiB,EAAE;EACrB,CAAC;EACDZ,YAAY,EAAE;IACZU,QAAQ,EAAE,MAAM;IAChBC,SAAS,EAAE,SAAS;IACpBC,iBAAiB,EAAE;EACrB,CAAC;EACDhB,SAAS,EAAE;IACTiB,eAAe,EAAE,CAAC;IAClBC,aAAa,EAAE,QAAQ;IACvBC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,CAAC;IACNN,SAAS,EAAE;IACX;EACF,CAAC;EACDd,eAAe,EAAE;IACf;IACAoB,GAAG,EAAE;EACP,CAAC;EAEDb,IAAI,EAAE;IACJc,eAAe,EAAE,SAAS;IAC1BC,YAAY,EAAE,CAAC;IACfP,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE,CAAC;IAClBO,KAAK,EAAE,MAAM;IACbT,SAAS,EAAE,SAAS;IACpBI,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,YAAY;IACxBK,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE;EACf,CAAC;EACDjB,UAAU,EAAE;IACVa,eAAe,EAAE;EACnB,CAAC;EAEDV,QAAQ,EAAE;IACRe,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAE,SAAS;IAChBC,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC;AAEF,MAAMC,cAAc,gBAAG7C,IAAI,CAACK,uBAAuB,CAAC;AACpD,eAAewC,cAAc","ignoreList":[]}
|
|
@@ -20,9 +20,10 @@ export const fetchConversationId = async _priceMode => {
|
|
|
20
20
|
const conversations = await Storage.getJSON("vdbchat_conversations", {});
|
|
21
21
|
if (!conversations) return null;
|
|
22
22
|
let priceMode = _priceMode;
|
|
23
|
-
if (
|
|
24
|
-
const
|
|
25
|
-
|
|
23
|
+
if (priceMode === undefined) {
|
|
24
|
+
const userInfo = await Storage.getJSON("persist:userInfo", {});
|
|
25
|
+
const userData = userInfo?.user;
|
|
26
|
+
priceMode = String(userData?.price_mode) || "";
|
|
26
27
|
}
|
|
27
28
|
return conversations[priceMode]?.conversation_id || null;
|
|
28
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Storage","formatToTime","timestamp","date","Date","hours","getHours","minutes","getMinutes","ampm","mins","FeedbackAction","fetchConversationId","_priceMode","conversations","getJSON","priceMode","userData","price_mode","conversation_id","getUserDetails","stored","
|
|
1
|
+
{"version":3,"names":["Storage","formatToTime","timestamp","date","Date","hours","getHours","minutes","getMinutes","ampm","mins","FeedbackAction","fetchConversationId","_priceMode","conversations","getJSON","priceMode","undefined","userInfo","userData","user","String","price_mode","conversation_id","getUserDetails","stored","JSON","parse","DeviceType","getDeviceType","platform","WEB","IOS","ANDROID","AnalyticsEventNames"],"sourceRoot":"../../../src","sources":["components/utils.ts"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AAEpC,OAAO,SAASC,YAAYA,CAACC,SAAiB,EAAU;EACtD,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,SAAS,CAAC;EAEhC,IAAIG,KAAK,GAAGF,IAAI,CAACG,QAAQ,CAAC,CAAC;EAC3B,MAAMC,OAAO,GAAGJ,IAAI,CAACK,UAAU,CAAC,CAAC;EACjC,MAAMC,IAAI,GAAGJ,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI;EAEtCA,KAAK,GAAGA,KAAK,GAAG,EAAE;EAClBA,KAAK,GAAGA,KAAK,GAAGA,KAAK,GAAG,EAAE,CAAC,CAAC;;EAE5B,MAAMK,IAAI,GAAGH,OAAO,GAAG,EAAE,GAAG,IAAIA,OAAO,EAAE,GAAGA,OAAO;EAEnD,OAAO,GAAGF,KAAK,IAAIK,IAAI,IAAID,IAAI,EAAE;AACnC;AAEA,WAAYE,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAM1B,OAAO,MAAMC,mBAAmB,GAAG,MACjCC,UAAkB,IACS;EAC3B,MAAMC,aAAa,GAAG,MAAMd,OAAO,CAACe,OAAO,CACzC,uBAAuB,EACvB,CAAC,CACH,CAAC;EACD,IAAI,CAACD,aAAa,EAAE,OAAO,IAAI;EAE/B,IAAIE,SAAS,GAAGH,UAAU;EAC1B,IAAIG,SAAS,KAAKC,SAAS,EAAE;IAC3B,MAAMC,QAAQ,GAAG,MAAMlB,OAAO,CAACe,OAAO,CACpC,kBAAkB,EAClB,CAAC,CACH,CAAC;IACD,MAAMI,QAAQ,GAAGD,QAAQ,EAAEE,IAAmB;IAC9CJ,SAAS,GAAGK,MAAM,CAACF,QAAQ,EAAEG,UAAU,CAAC,IAAI,EAAE;EAChD;EACA,OAAOR,aAAa,CAACE,SAAS,CAAC,EAAEO,eAAe,IAAI,IAAI;AAC1D,CAAC;AAeD,OAAO,MAAMC,cAAc,GAAG,MAAAA,CAAA,KAAyC;EACrE,IAAI;IACF,MAAMC,MAAM,GAAG,MAAMzB,OAAO,CAACe,OAAO,CAClC,kBAAkB,EAClB,CAAC,CACH,CAAC;IACD,IAAI,CAACU,MAAM,EAAEL,IAAI,EAAE,OAAO,IAAI;;IAE9B;IACA,IAAI,OAAOK,MAAM,CAACL,IAAI,KAAK,QAAQ,EAAE;MACnC,IAAI;QACF,OAAOM,IAAI,CAACC,KAAK,CAACF,MAAM,CAACL,IAAI,CAAC;MAChC,CAAC,CAAC,MAAM;QACN,OAAO,IAAI;MACb;IACF;IAEA,OAAOK,MAAM,CAACL,IAAI;EACpB,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF,CAAC;AAED,WAAYQ,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAMtB,OAAO,MAAMC,aAAa,GAAIC,QAAiB,IAAK;EAClD,QAAQA,QAAQ;IACd,KAAKF,UAAU,CAACG,GAAG;MACjB,OAAO,CAAC;IACV,KAAKH,UAAU,CAACI,GAAG;MACjB,OAAO,CAAC;IACV,KAAKJ,UAAU,CAACK,OAAO;MACrB,OAAO,CAAC;IACV;MACE,OAAO,CAAC;EACZ;AACF,CAAC;AAED,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
|
package/lib/module/index.web.js
CHANGED
|
@@ -1,43 +1,100 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Platform, StyleSheet, View } from "react-native";
|
|
2
3
|
import { createRoot } from "react-dom/client";
|
|
3
|
-
import {
|
|
4
|
-
import { ChatWidget } from "./components/ChatWidget";
|
|
5
|
-
import { Analytics } from "@segment/analytics-next";
|
|
4
|
+
import { AnalyticsBrowser } from "@segment/analytics-next";
|
|
6
5
|
import { AnalyticsClientProvider } from "./contexts/AnalyticsClientContext";
|
|
7
|
-
|
|
6
|
+
import { ChatWidget } from "./components/ChatWidget";
|
|
7
|
+
import { getUserDetails } from "./components/utils";
|
|
8
|
+
export function renderChatApp(domElement, apiUrl, theme, onClose, onClearChat, segmentWriteKey, onViewAllPress, onItemPress, isBetaMode) {
|
|
8
9
|
const root = createRoot(domElement);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
10
|
+
|
|
11
|
+
// Bridge to parent RN WebView / browser
|
|
12
|
+
const sendToParent = (type, payload) => {
|
|
13
|
+
const msg = {
|
|
14
|
+
source: "vdb-ai-chat",
|
|
15
|
+
type,
|
|
16
|
+
payload
|
|
17
|
+
};
|
|
18
|
+
const json = JSON.stringify(msg);
|
|
19
|
+
|
|
20
|
+
// RN WebView bridge
|
|
21
|
+
const rnwv = window.ReactNativeWebView;
|
|
22
|
+
if (rnwv?.postMessage) {
|
|
23
|
+
rnwv.postMessage(json);
|
|
24
|
+
} else {
|
|
25
|
+
// Browser/iframe
|
|
26
|
+
try {
|
|
27
|
+
window.parent?.postMessage(msg, "*");
|
|
28
|
+
} catch {}
|
|
29
|
+
try {
|
|
30
|
+
window.dispatchEvent(new CustomEvent("vdb-ai-event", {
|
|
31
|
+
detail: msg
|
|
32
|
+
}));
|
|
33
|
+
} catch {}
|
|
27
34
|
}
|
|
28
|
-
}
|
|
35
|
+
};
|
|
36
|
+
const handleViewAll = (url, payload) => {
|
|
37
|
+
onViewAllPress?.(url, payload);
|
|
38
|
+
sendToParent("ai_view_all", {
|
|
39
|
+
url,
|
|
40
|
+
payload
|
|
41
|
+
});
|
|
42
|
+
onClose?.();
|
|
43
|
+
};
|
|
44
|
+
const handleItemPress = (url, item) => {
|
|
45
|
+
onItemPress?.(url, item);
|
|
46
|
+
sendToParent("ai_item_click", {
|
|
47
|
+
url,
|
|
48
|
+
item
|
|
49
|
+
});
|
|
50
|
+
onClose?.();
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
// Build base content and render immediately
|
|
29
54
|
const content = /*#__PURE__*/React.createElement(View, {
|
|
30
55
|
style: styles.root
|
|
31
56
|
}, /*#__PURE__*/React.createElement(ChatWidget, {
|
|
32
57
|
apiUrl: apiUrl,
|
|
33
58
|
theme: theme,
|
|
34
59
|
onClose: onClose,
|
|
35
|
-
onClearChat: onClearChat
|
|
60
|
+
onClearChat: onClearChat,
|
|
61
|
+
onViewAllPress: handleViewAll,
|
|
62
|
+
onItemPress: handleItemPress,
|
|
63
|
+
isBetaMode: isBetaMode
|
|
36
64
|
}));
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
65
|
+
root.render(content);
|
|
66
|
+
if (Platform.OS === "web" && segmentWriteKey) {
|
|
67
|
+
try {
|
|
68
|
+
const isEdge = typeof navigator !== "undefined" && (navigator.userAgent.includes("Edg") || navigator.userAgent.includes("Edge"));
|
|
69
|
+
const clientPromise = AnalyticsBrowser.load({
|
|
70
|
+
writeKey: segmentWriteKey,
|
|
71
|
+
trackAppLifecycleEvents: false,
|
|
72
|
+
flushAt: isEdge ? 1 : 10,
|
|
73
|
+
flushInterval: 10000,
|
|
74
|
+
maxBatchSize: isEdge ? 1 : 10
|
|
75
|
+
});
|
|
76
|
+
clientPromise.then(async ([client]) => {
|
|
77
|
+
client?.debug?.(true);
|
|
78
|
+
window.analytics = client;
|
|
79
|
+
client.page?.();
|
|
80
|
+
try {
|
|
81
|
+
const user = await getUserDetails();
|
|
82
|
+
const userId = user?.id;
|
|
83
|
+
if (userId) client.identify(userId);
|
|
84
|
+
} catch {}
|
|
85
|
+
const contentWithAnalytics = /*#__PURE__*/React.createElement(AnalyticsClientProvider, {
|
|
86
|
+
client: client
|
|
87
|
+
}, content);
|
|
88
|
+
root.render(contentWithAnalytics);
|
|
89
|
+
}).catch(e => {
|
|
90
|
+
// eslint-disable-next-line no-console
|
|
91
|
+
console.error("[Segment] init failed", e);
|
|
92
|
+
});
|
|
93
|
+
} catch (e) {
|
|
94
|
+
// eslint-disable-next-line no-console
|
|
95
|
+
console.error("[Segment] init failed", e);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
41
98
|
}
|
|
42
99
|
const styles = StyleSheet.create({
|
|
43
100
|
root: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","
|
|
1
|
+
{"version":3,"names":["React","Platform","StyleSheet","View","createRoot","AnalyticsBrowser","AnalyticsClientProvider","ChatWidget","getUserDetails","renderChatApp","domElement","apiUrl","theme","onClose","onClearChat","segmentWriteKey","onViewAllPress","onItemPress","isBetaMode","root","sendToParent","type","payload","msg","source","json","JSON","stringify","rnwv","window","ReactNativeWebView","postMessage","parent","dispatchEvent","CustomEvent","detail","handleViewAll","url","handleItemPress","item","content","createElement","style","styles","render","OS","isEdge","navigator","userAgent","includes","clientPromise","load","writeKey","trackAppLifecycleEvents","flushAt","flushInterval","maxBatchSize","then","client","debug","analytics","page","user","userId","id","identify","contentWithAnalytics","catch","e","console","error","create","flex","height","width"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACzD,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,gBAAgB,QAAQ,yBAAyB;AAC1D,SAASC,uBAAuB,QAAQ,mCAAmC;AAC3E,SAASC,UAAU,QAAQ,yBAAyB;AAEpD,SAASC,cAAc,QAAQ,oBAAoB;AAEnD,OAAO,SAASC,aAAaA,CAC3BC,UAAuB,EACvBC,MAAc,EACdC,KAA0B,EAC1BC,OAAoB,EACpBC,WAAwB,EACxBC,eAAwB,EACxBC,cAAoD,EACpDC,WAA8C,EAC9CC,UAAoB,EACpB;EACA,MAAMC,IAAI,GAAGf,UAAU,CAACM,UAAU,CAAC;;EAEnC;EACA,MAAMU,YAAY,GAAGA,CAACC,IAAY,EAAEC,OAAY,KAAK;IACnD,MAAMC,GAAG,GAAG;MAAEC,MAAM,EAAE,aAAa;MAAEH,IAAI;MAAEC;IAAQ,CAAC;IACpD,MAAMG,IAAI,GAAGC,IAAI,CAACC,SAAS,CAACJ,GAAG,CAAC;;IAEhC;IACA,MAAMK,IAAI,GAAIC,MAAM,CAASC,kBAAkB;IAC/C,IAAIF,IAAI,EAAEG,WAAW,EAAE;MACrBH,IAAI,CAACG,WAAW,CAACN,IAAI,CAAC;IACxB,CAAC,MAAM;MACL;MACA,IAAI;QACFI,MAAM,CAACG,MAAM,EAAED,WAAW,CAACR,GAAG,EAAE,GAAG,CAAC;MACtC,CAAC,CAAC,MAAM,CAAC;MACT,IAAI;QACFM,MAAM,CAACI,aAAa,CAAC,IAAIC,WAAW,CAAC,cAAc,EAAE;UAAEC,MAAM,EAAEZ;QAAI,CAAC,CAAC,CAAC;MACxE,CAAC,CAAC,MAAM,CAAC;IACX;EACF,CAAC;EAED,MAAMa,aAAa,GAAGA,CAACC,GAAW,EAAEf,OAAY,KAAK;IACnDN,cAAc,GAAGqB,GAAG,EAAEf,OAAO,CAAC;IAC9BF,YAAY,CAAC,aAAa,EAAE;MAAEiB,GAAG;MAAEf;IAAQ,CAAC,CAAC;IAC7CT,OAAO,GAAG,CAAC;EACb,CAAC;EAED,MAAMyB,eAAe,GAAGA,CAACD,GAAW,EAAEE,IAAS,KAAK;IAClDtB,WAAW,GAAGoB,GAAG,EAAEE,IAAI,CAAC;IACxBnB,YAAY,CAAC,eAAe,EAAE;MAAEiB,GAAG;MAAEE;IAAK,CAAC,CAAC;IAC5C1B,OAAO,GAAG,CAAC;EACb,CAAC;;EAED;EACA,MAAM2B,OAAO,gBACXxC,KAAA,CAAAyC,aAAA,CAACtC,IAAI;IAACuC,KAAK,EAAEC,MAAM,CAACxB;EAAK,gBACvBnB,KAAA,CAAAyC,aAAA,CAAClC,UAAU;IACTI,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbC,OAAO,EAAEA,OAAQ;IACjBC,WAAW,EAAEA,WAAY;IACzBE,cAAc,EAAEoB,aAAc;IAC9BnB,WAAW,EAAEqB,eAAgB;IAC7BpB,UAAU,EAAEA;EAAW,CACxB,CACG,CACP;EACDC,IAAI,CAACyB,MAAM,CAACJ,OAAO,CAAC;EAEpB,IAAIvC,QAAQ,CAAC4C,EAAE,KAAK,KAAK,IAAI9B,eAAe,EAAE;IAC5C,IAAI;MACF,MAAM+B,MAAM,GACV,OAAOC,SAAS,KAAK,WAAW,KAC/BA,SAAS,CAACC,SAAS,CAACC,QAAQ,CAAC,KAAK,CAAC,IAAIF,SAAS,CAACC,SAAS,CAACC,QAAQ,CAAC,MAAM,CAAC,CAAC;MAE/E,MAAMC,aAAa,GAAG7C,gBAAgB,CAAC8C,IAAI,CAAC;QAC1CC,QAAQ,EAAErC,eAAe;QACzBsC,uBAAuB,EAAE,KAAY;QACrCC,OAAO,EAAGR,MAAM,GAAG,CAAC,GAAG,EAAU;QACjCS,aAAa,EAAG,KAAa;QAC7BC,YAAY,EAAGV,MAAM,GAAG,CAAC,GAAG;MAC9B,CAAQ,CAAC;MAETI,aAAa,CACVO,IAAI,CAAE,OAAO,CAACC,MAAM,CAAM,KAAK;QAC7BA,MAAM,EAAUC,KAAK,GAAG,IAAI,CAAC;QAC7B9B,MAAM,CAAS+B,SAAS,GAAGF,MAAM;QAElCA,MAAM,CAACG,IAAI,GAAG,CAAC;QACf,IAAI;UACF,MAAMC,IAAI,GAAG,MAAMtD,cAAc,CAAC,CAAC;UACnC,MAAMuD,MAAM,GAAGD,IAAI,EAAEE,EAAE;UACvB,IAAID,MAAM,EAAEL,MAAM,CAACO,QAAQ,CAACF,MAAM,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC;QAET,MAAMG,oBAAoB,gBACxBlE,KAAA,CAAAyC,aAAA,CAACnC,uBAAuB;UAACoD,MAAM,EAAEA;QAAO,GACrClB,OACsB,CAC1B;QACDrB,IAAI,CAACyB,MAAM,CAACsB,oBAAoB,CAAC;MACnC,CAAC,CAAC,CACDC,KAAK,CAAEC,CAAM,IAAK;QACjB;QACAC,OAAO,CAACC,KAAK,CAAC,uBAAuB,EAAEF,CAAC,CAAC;MAC3C,CAAC,CAAC;IACN,CAAC,CAAC,OAAOA,CAAC,EAAE;MACV;MACAC,OAAO,CAACC,KAAK,CAAC,uBAAuB,EAAEF,CAAC,CAAC;IAC3C;EACF;AACF;AAEA,MAAMzB,MAAM,GAAGzC,UAAU,CAACqE,MAAM,CAAC;EAC/BpD,IAAI,EAAE;IACJqD,IAAI,EAAE,CAAC;IACPC,MAAM,EAAE,MAAM;IACdC,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
|
package/lib/module/theme.js
CHANGED
|
@@ -2,14 +2,14 @@ export const defaultTheme = {
|
|
|
2
2
|
primaryColor: "#0b93f6",
|
|
3
3
|
backgroundColor: "#ffffff",
|
|
4
4
|
inputColor: "#FFF",
|
|
5
|
-
inputBackgroundColor: "#
|
|
5
|
+
inputBackgroundColor: "#FFFFFF",
|
|
6
6
|
inputBorderRadius: 8,
|
|
7
7
|
inputTextColor: "#000000",
|
|
8
|
-
userBubbleColor: "#
|
|
8
|
+
userBubbleColor: "#4F4E57",
|
|
9
9
|
userTextColor: "#ffffff",
|
|
10
|
-
botBubbleColor: "#
|
|
10
|
+
botBubbleColor: "#EDEDF2",
|
|
11
11
|
botTextColor: "#000000",
|
|
12
|
-
borderRadius:
|
|
12
|
+
borderRadius: 8,
|
|
13
13
|
fontFamily: undefined,
|
|
14
14
|
fontSize: 16
|
|
15
15
|
};
|
package/lib/module/theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["defaultTheme","primaryColor","backgroundColor","inputColor","inputBackgroundColor","inputBorderRadius","inputTextColor","userBubbleColor","userTextColor","botBubbleColor","botTextColor","borderRadius","fontFamily","undefined","fontSize","mergeTheme","overrides"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":"AAEA,OAAO,MAAMA,YAAuB,GAAG;EACrCC,YAAY,EAAE,SAAS;EACvBC,eAAe,EAAE,SAAS;EAC1BC,UAAU,EAAE,MAAM;EAClBC,oBAAoB,EAAE,SAAS;EAC/BC,iBAAiB,EAAE,CAAC;EACpBC,cAAc,EAAE,SAAS;EACzBC,eAAe,EAAE,SAAS;EAC1BC,aAAa,EAAE,SAAS;EACxBC,cAAc,EAAE,SAAS;EACzBC,YAAY,EAAE,SAAS;EACvBC,YAAY,EAAE,
|
|
1
|
+
{"version":3,"names":["defaultTheme","primaryColor","backgroundColor","inputColor","inputBackgroundColor","inputBorderRadius","inputTextColor","userBubbleColor","userTextColor","botBubbleColor","botTextColor","borderRadius","fontFamily","undefined","fontSize","mergeTheme","overrides"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":"AAEA,OAAO,MAAMA,YAAuB,GAAG;EACrCC,YAAY,EAAE,SAAS;EACvBC,eAAe,EAAE,SAAS;EAC1BC,UAAU,EAAE,MAAM;EAClBC,oBAAoB,EAAE,SAAS;EAC/BC,iBAAiB,EAAE,CAAC;EACpBC,cAAc,EAAE,SAAS;EACzBC,eAAe,EAAE,SAAS;EAC1BC,aAAa,EAAE,SAAS;EACxBC,cAAc,EAAE,SAAS;EACzBC,YAAY,EAAE,SAAS;EACvBC,YAAY,EAAE,CAAC;EACfC,UAAU,EAAEC,SAAS;EACrBC,QAAQ,EAAE;AACZ,CAAC;AAED,OAAO,SAASC,UAAUA,CAACC,SAA8B,EAAa;EACpE,OAAO;IAAE,GAAGhB,YAAY;IAAE,IAAIgB,SAAS,IAAI,CAAC,CAAC;EAAE,CAAC;AAClD","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAwBhD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAwBhD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,EAAE,CAkBzD;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,GAAG,CAAC,CAqCd;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,GAAG,CAAC,CAyCd;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAuBrE;AAED,eAAO,MAAM,uBAAuB,GAClC,QAAQ,cAAc,EACtB,iBAAiB,MAAM,EACvB,YAAY,MAAM,sBAanB,CAAC"}
|