@robylon/react-native-sdk 2.0.21-staging.2 → 2.0.21-staging.3
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/Chatbotsdk.js +2 -2
- package/lib/commonjs/Chatbotsdk.js.map +1 -1
- package/lib/commonjs/FloatingButton/launchers/ImageLauncher.js +2 -0
- package/lib/commonjs/FloatingButton/launchers/ImageLauncher.js.map +1 -0
- package/lib/commonjs/FloatingButton/launchers/TextLauncher.js +2 -0
- package/lib/commonjs/FloatingButton/launchers/TextLauncher.js.map +1 -0
- package/lib/commonjs/FloatingButton/launchers/TextualImageLauncher.js +2 -0
- package/lib/commonjs/FloatingButton/launchers/TextualImageLauncher.js.map +1 -0
- package/lib/commonjs/FloatingButton.js +1 -1
- package/lib/commonjs/FloatingButton.js.map +1 -1
- package/lib/commonjs/constants/fontStyles.js +2 -0
- package/lib/commonjs/constants/fontStyles.js.map +1 -0
- package/lib/commonjs/openChatbot.js.map +1 -1
- package/lib/commonjs/utils/animations.js +2 -0
- package/lib/commonjs/utils/animations.js.map +1 -0
- package/lib/commonjs/utils/colorUtils.js +2 -0
- package/lib/commonjs/utils/colorUtils.js.map +1 -0
- package/lib/commonjs/versions/version.staging.js +1 -1
- package/lib/module/Chatbotsdk.js +2 -2
- package/lib/module/Chatbotsdk.js.map +1 -1
- package/lib/module/FloatingButton/launchers/ImageLauncher.js +2 -0
- package/lib/module/FloatingButton/launchers/ImageLauncher.js.map +1 -0
- package/lib/module/FloatingButton/launchers/TextLauncher.js +2 -0
- package/lib/module/FloatingButton/launchers/TextLauncher.js.map +1 -0
- package/lib/module/FloatingButton/launchers/TextualImageLauncher.js +2 -0
- package/lib/module/FloatingButton/launchers/TextualImageLauncher.js.map +1 -0
- package/lib/module/FloatingButton.js +1 -1
- package/lib/module/FloatingButton.js.map +1 -1
- package/lib/module/constants/fontStyles.js +2 -0
- package/lib/module/constants/fontStyles.js.map +1 -0
- package/lib/module/openChatbot.js +2 -1
- package/lib/module/utils/animations.js +2 -0
- package/lib/module/utils/animations.js.map +1 -0
- package/lib/module/utils/colorUtils.js +2 -0
- package/lib/module/utils/colorUtils.js.map +1 -0
- package/lib/module/versions/version.staging.js +1 -1
- package/lib/typescript/Chatbotsdk.d.ts.map +1 -1
- package/lib/typescript/FloatingButton/launchers/ImageLauncher.d.ts +10 -0
- package/lib/typescript/FloatingButton/launchers/ImageLauncher.d.ts.map +1 -0
- package/lib/typescript/FloatingButton/launchers/TextLauncher.d.ts +10 -0
- package/lib/typescript/FloatingButton/launchers/TextLauncher.d.ts.map +1 -0
- package/lib/typescript/FloatingButton/launchers/TextualImageLauncher.d.ts +10 -0
- package/lib/typescript/FloatingButton/launchers/TextualImageLauncher.d.ts.map +1 -0
- package/lib/typescript/FloatingButton.d.ts +2 -0
- package/lib/typescript/FloatingButton.d.ts.map +1 -1
- package/lib/typescript/constants/fontStyles.d.ts +3 -0
- package/lib/typescript/constants/fontStyles.d.ts.map +1 -0
- package/lib/typescript/utils/animations.d.ts +38 -0
- package/lib/typescript/utils/animations.d.ts.map +1 -0
- package/lib/typescript/utils/colorUtils.d.ts +2 -0
- package/lib/typescript/utils/colorUtils.d.ts.map +1 -0
- package/lib/typescript/versions/version.staging.d.ts +1 -1
- package/package.json +1 -1
- package/src/Chatbotsdk.tsx +42 -38
- package/src/FloatingButton/launchers/ImageLauncher.tsx +75 -0
- package/src/FloatingButton/launchers/TextLauncher.tsx +84 -0
- package/src/FloatingButton/launchers/TextualImageLauncher.tsx +133 -0
- package/src/FloatingButton.tsx +71 -62
- package/src/constants/fontStyles.ts +3 -0
- package/src/utils/animations.ts +120 -0
- package/src/utils/colorUtils.ts +35 -0
- package/src/versions/version.staging.ts +1 -1
- package/lib/commonjs/ChatbotWebview.js +0 -2
- package/lib/commonjs/ChatbotWebview.js.map +0 -1
- package/lib/module/ChatbotWebview.js +0 -2
- package/lib/module/ChatbotWebview.js.map +0 -1
- package/lib/typescript/ChatbotWebview.d.ts +0 -8
- package/lib/typescript/ChatbotWebview.d.ts.map +0 -1
- package/src/ChatbotWebview.tsx +0 -44
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { Animated, Easing } from "react-native";
|
|
2
|
+
|
|
3
|
+
// Custom easing function that matches the web version
|
|
4
|
+
export const customEasing = Easing.bezier(0.2, 1.27, 0.29, 0.97);
|
|
5
|
+
|
|
6
|
+
export const ANIMATION_CONFIG = {
|
|
7
|
+
DURATION: {
|
|
8
|
+
ENTER: {
|
|
9
|
+
TRANSFORM: 200, // 0.2 seconds for enter
|
|
10
|
+
OPACITY: 150, // 0.15 seconds for enter
|
|
11
|
+
},
|
|
12
|
+
EXIT: {
|
|
13
|
+
TRANSFORM: 100, // 0.1 seconds for exit (faster)
|
|
14
|
+
OPACITY: 80, // 0.08 seconds for exit (faster)
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
SCALE: {
|
|
18
|
+
BUTTON: {
|
|
19
|
+
DEFAULT: 1,
|
|
20
|
+
ACTIVE: 0.85,
|
|
21
|
+
},
|
|
22
|
+
IFRAME: {
|
|
23
|
+
HIDDEN: 0.3,
|
|
24
|
+
VISIBLE: 1,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
TRANSLATE: {
|
|
28
|
+
Y: 40, // translateY value for animations
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
interface AnimatedValues {
|
|
33
|
+
scale: Animated.Value;
|
|
34
|
+
translateY: Animated.Value;
|
|
35
|
+
opacity: Animated.Value;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export const createAnimatedValues = (): AnimatedValues => ({
|
|
39
|
+
scale: new Animated.Value(1),
|
|
40
|
+
translateY: new Animated.Value(0),
|
|
41
|
+
opacity: new Animated.Value(1),
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
export const animateWebViewOpen = (
|
|
45
|
+
animatedValues: AnimatedValues,
|
|
46
|
+
callback?: () => void
|
|
47
|
+
) => {
|
|
48
|
+
// Reset initial values
|
|
49
|
+
animatedValues.scale.setValue(ANIMATION_CONFIG.SCALE.IFRAME.HIDDEN);
|
|
50
|
+
animatedValues.translateY.setValue(ANIMATION_CONFIG.TRANSLATE.Y);
|
|
51
|
+
animatedValues.opacity.setValue(0);
|
|
52
|
+
|
|
53
|
+
Animated.parallel([
|
|
54
|
+
// Scale and translate animation
|
|
55
|
+
Animated.timing(animatedValues.scale, {
|
|
56
|
+
toValue: ANIMATION_CONFIG.SCALE.IFRAME.VISIBLE,
|
|
57
|
+
duration: ANIMATION_CONFIG.DURATION.ENTER.TRANSFORM,
|
|
58
|
+
easing: customEasing,
|
|
59
|
+
useNativeDriver: true,
|
|
60
|
+
}),
|
|
61
|
+
Animated.timing(animatedValues.translateY, {
|
|
62
|
+
toValue: 0,
|
|
63
|
+
duration: ANIMATION_CONFIG.DURATION.ENTER.TRANSFORM,
|
|
64
|
+
easing: customEasing,
|
|
65
|
+
useNativeDriver: true,
|
|
66
|
+
}),
|
|
67
|
+
// Opacity animation
|
|
68
|
+
Animated.timing(animatedValues.opacity, {
|
|
69
|
+
toValue: 1,
|
|
70
|
+
duration: ANIMATION_CONFIG.DURATION.ENTER.OPACITY,
|
|
71
|
+
easing: Easing.ease,
|
|
72
|
+
useNativeDriver: true,
|
|
73
|
+
}),
|
|
74
|
+
]).start(callback);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export const animateWebViewClose = (
|
|
78
|
+
animatedValues: AnimatedValues,
|
|
79
|
+
callback?: () => void
|
|
80
|
+
) => {
|
|
81
|
+
Animated.parallel([
|
|
82
|
+
// Scale and translate animation
|
|
83
|
+
Animated.timing(animatedValues.scale, {
|
|
84
|
+
toValue: ANIMATION_CONFIG.SCALE.IFRAME.HIDDEN,
|
|
85
|
+
duration: ANIMATION_CONFIG.DURATION.EXIT.TRANSFORM,
|
|
86
|
+
easing: customEasing,
|
|
87
|
+
useNativeDriver: true,
|
|
88
|
+
}),
|
|
89
|
+
Animated.timing(animatedValues.translateY, {
|
|
90
|
+
toValue: ANIMATION_CONFIG.TRANSLATE.Y,
|
|
91
|
+
duration: ANIMATION_CONFIG.DURATION.EXIT.TRANSFORM,
|
|
92
|
+
easing: customEasing,
|
|
93
|
+
useNativeDriver: true,
|
|
94
|
+
}),
|
|
95
|
+
// Opacity animation
|
|
96
|
+
Animated.timing(animatedValues.opacity, {
|
|
97
|
+
toValue: 0,
|
|
98
|
+
duration: ANIMATION_CONFIG.DURATION.EXIT.OPACITY,
|
|
99
|
+
easing: Easing.ease,
|
|
100
|
+
useNativeDriver: true,
|
|
101
|
+
}),
|
|
102
|
+
]).start(callback);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export const animateButtonScale = (
|
|
106
|
+
scale: Animated.Value,
|
|
107
|
+
isActive: boolean,
|
|
108
|
+
callback?: () => void
|
|
109
|
+
) => {
|
|
110
|
+
Animated.timing(scale, {
|
|
111
|
+
toValue: isActive
|
|
112
|
+
? ANIMATION_CONFIG.SCALE.BUTTON.ACTIVE
|
|
113
|
+
: ANIMATION_CONFIG.SCALE.BUTTON.DEFAULT,
|
|
114
|
+
duration: isActive
|
|
115
|
+
? ANIMATION_CONFIG.DURATION.ENTER.TRANSFORM
|
|
116
|
+
: ANIMATION_CONFIG.DURATION.EXIT.TRANSFORM,
|
|
117
|
+
easing: customEasing,
|
|
118
|
+
useNativeDriver: true,
|
|
119
|
+
}).start(callback);
|
|
120
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export const getBestFontColor = (
|
|
2
|
+
backgroundColor: string,
|
|
3
|
+
contrastThreshold = 0.5
|
|
4
|
+
): string => {
|
|
5
|
+
const whiteShade = "#FFFFFF"; // Light white shade
|
|
6
|
+
const blackShade = "#0E0E0F"; // Dark black shade
|
|
7
|
+
|
|
8
|
+
// Function to convert hex to RGB
|
|
9
|
+
const hexToRgb = (hex: string) => {
|
|
10
|
+
const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
|
|
11
|
+
hex = hex.replace(shorthandRegex, (m, r, g, b) => r + r + g + g + b + b);
|
|
12
|
+
const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
13
|
+
return result
|
|
14
|
+
? {
|
|
15
|
+
r: parseInt(result[1], 16),
|
|
16
|
+
g: parseInt(result[2], 16),
|
|
17
|
+
b: parseInt(result[3], 16),
|
|
18
|
+
}
|
|
19
|
+
: { r: 0, g: 0, b: 0 };
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// Function to calculate luminance
|
|
23
|
+
const luminance = (r: number, g: number, b: number) => {
|
|
24
|
+
const a = [r, g, b].map((v) => {
|
|
25
|
+
v /= 255;
|
|
26
|
+
return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
|
|
27
|
+
});
|
|
28
|
+
return a[0] * 0.2126 + a[1] * 0.7152 + a[2] * 0.0722;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const { r, g, b } = hexToRgb(backgroundColor);
|
|
32
|
+
const bgLuminance = luminance(r, g, b);
|
|
33
|
+
|
|
34
|
+
return bgLuminance > contrastThreshold ? blackShade : whiteShade;
|
|
35
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// This file is auto-generated. Do not modify it manually.
|
|
2
|
-
export const SDK_VERSION = '2.0.21-staging.
|
|
2
|
+
export const SDK_VERSION = '2.0.21-staging.3';
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ChatbotWebview=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeWebview=require("react-native-webview");var _constants=require("./constants");var _LoadingIndicator=_interopRequireDefault(require("./LoadingIndicator"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Users/jobinabraham/Developer/personal/robylon-react-native-sdk/src/ChatbotWebview.tsx";function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}var constructUrl=function constructUrl(chatbotId){var additionalParams=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var params=new URLSearchParams(Object.assign({id:chatbotId},additionalParams));return`${_constants.BASE_CHATBOT_URL}?${params.toString()}`;};var ChatbotWebview=exports.ChatbotWebview=function ChatbotWebview(_ref){var chatbotId=_ref.chatbotId,additionalParams=_ref.additionalParams;var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),url=_useState2[0],setUrl=_useState2[1];(0,_react.useEffect)(function(){setUrl(constructUrl(chatbotId,additionalParams));},[chatbotId,additionalParams]);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1},children:url?(0,_jsxRuntime.jsx)(_reactNativeWebview.WebView,{source:{uri:url},startInLoadingState:true,renderLoading:function renderLoading(){return(0,_jsxRuntime.jsx)(_LoadingIndicator.default,{});}}):(0,_jsxRuntime.jsx)(_LoadingIndicator.default,{})});};
|
|
2
|
-
//# sourceMappingURL=ChatbotWebview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_constants","_LoadingIndicator","_interopRequireDefault","_jsxRuntime","_this","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","constructUrl","chatbotId","additionalParams","arguments","length","undefined","params","URLSearchParams","assign","id","BASE_CHATBOT_URL","toString","ChatbotWebview","exports","_ref","_useState","useState","_useState2","_slicedToArray2","url","setUrl","useEffect","jsx","View","style","flex","children","WebView","source","uri","startInLoadingState","renderLoading"],"sourceRoot":"../../src","sources":["ChatbotWebview.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.ChatbotWebview=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeWebview=require("react-native-webview");var _constants=require("./constants");var _LoadingIndicator=_interopRequireDefault(require("./LoadingIndicator"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Users/jobinabraham/Developer/personal/robylon-react-native-sdk/src/ChatbotWebview.tsx";function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap(),n=new WeakMap();return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f);}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f;})(e,t);}var constructUrl=function constructUrl(chatbotId){var additionalParams=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var params=new URLSearchParams(Object.assign({id:chatbotId},additionalParams));return`${_constants.BASE_CHATBOT_URL}?${params.toString()}`;};var ChatbotWebview=exports.ChatbotWebview=function ChatbotWebview(_ref){var chatbotId=_ref.chatbotId,additionalParams=_ref.additionalParams;var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),url=_useState2[0],setUrl=_useState2[1];(0,_react.useEffect)(function(){setUrl(constructUrl(chatbotId,additionalParams));},[chatbotId,additionalParams]);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1},children:url?(0,_jsxRuntime.jsx)(_reactNativeWebview.WebView,{source:{uri:url},startInLoadingState:true,renderLoading:function renderLoading(){return(0,_jsxRuntime.jsx)(_LoadingIndicator.default,{});}}):(0,_jsxRuntime.jsx)(_LoadingIndicator.default,{})});};
|
|
2
|
-
//# sourceMappingURL=ChatbotWebview.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_constants","_LoadingIndicator","_interopRequireDefault","_jsxRuntime","_this","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","constructUrl","chatbotId","additionalParams","arguments","length","undefined","params","URLSearchParams","assign","id","BASE_CHATBOT_URL","toString","ChatbotWebview","exports","_ref","_useState","useState","_useState2","_slicedToArray2","url","setUrl","useEffect","jsx","View","style","flex","children","WebView","source","uri","startInLoadingState","renderLoading"],"sourceRoot":"../../src","sources":["ChatbotWebview.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ChatbotWebview.d.ts","sourceRoot":"","sources":["../../src/ChatbotWebview.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAMnD,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAUD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuBxD,CAAC"}
|
package/src/ChatbotWebview.tsx
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// File: src/ChatbotWebview.tsx
|
|
2
|
-
import React, { useEffect, useState } from "react";
|
|
3
|
-
import { View } from "react-native";
|
|
4
|
-
import { WebView } from "react-native-webview";
|
|
5
|
-
import { BASE_CHATBOT_URL } from "./constants";
|
|
6
|
-
import LoadingIndicator from "./LoadingIndicator";
|
|
7
|
-
|
|
8
|
-
interface ChatbotWebviewProps {
|
|
9
|
-
chatbotId: string;
|
|
10
|
-
additionalParams?: Record<string, string>;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const constructUrl = (
|
|
14
|
-
chatbotId: string,
|
|
15
|
-
additionalParams: Record<string, string> = {}
|
|
16
|
-
): string => {
|
|
17
|
-
const params = new URLSearchParams({ id: chatbotId, ...additionalParams });
|
|
18
|
-
return `${BASE_CHATBOT_URL}?${params.toString()}`;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export const ChatbotWebview: React.FC<ChatbotWebviewProps> = ({
|
|
22
|
-
chatbotId,
|
|
23
|
-
additionalParams,
|
|
24
|
-
}) => {
|
|
25
|
-
const [url, setUrl] = useState<string>("");
|
|
26
|
-
|
|
27
|
-
useEffect(() => {
|
|
28
|
-
setUrl(constructUrl(chatbotId, additionalParams));
|
|
29
|
-
}, [chatbotId, additionalParams]);
|
|
30
|
-
|
|
31
|
-
return (
|
|
32
|
-
<View style={{ flex: 1 }}>
|
|
33
|
-
{url ? (
|
|
34
|
-
<WebView
|
|
35
|
-
source={{ uri: url }}
|
|
36
|
-
startInLoadingState={true}
|
|
37
|
-
renderLoading={() => <LoadingIndicator />}
|
|
38
|
-
/>
|
|
39
|
-
) : (
|
|
40
|
-
<LoadingIndicator />
|
|
41
|
-
)}
|
|
42
|
-
</View>
|
|
43
|
-
);
|
|
44
|
-
};
|