@maren-sa/react-native-sanarkit 2.5.0

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.
Files changed (63) hide show
  1. package/README.md +362 -0
  2. package/lib/RTCComponent.d.ts +3 -0
  3. package/lib/RTCComponent.js +1 -0
  4. package/lib/RtcView.d.ts +19 -0
  5. package/lib/RtcView.js +1 -0
  6. package/lib/SanarKit.d.ts +42 -0
  7. package/lib/SanarKit.js +1 -0
  8. package/lib/Types.d.ts +23 -0
  9. package/lib/Types.js +1 -0
  10. package/lib/common/DotLoader.d.ts +12 -0
  11. package/lib/common/DotLoader.js +1 -0
  12. package/lib/common/PermissionModal.d.ts +11 -0
  13. package/lib/common/PermissionModal.js +1 -0
  14. package/lib/common/Permissions.d.ts +8 -0
  15. package/lib/common/Permissions.js +1 -0
  16. package/lib/common/SanarContext.d.ts +3 -0
  17. package/lib/common/SanarContext.js +1 -0
  18. package/lib/common/SanarProvider.d.ts +9 -0
  19. package/lib/common/SanarProvider.js +1 -0
  20. package/lib/common/SanarSVG.d.ts +224 -0
  21. package/lib/common/SanarSVG.js +1 -0
  22. package/lib/common/ToolTip.d.ts +15 -0
  23. package/lib/common/ToolTip.js +1 -0
  24. package/lib/components/Connecting.d.ts +3 -0
  25. package/lib/components/Connecting.js +1 -0
  26. package/lib/components/Container.d.ts +8 -0
  27. package/lib/components/Container.js +1 -0
  28. package/lib/components/Controls.d.ts +240 -0
  29. package/lib/components/Controls.js +1 -0
  30. package/lib/components/Ringer.d.ts +3 -0
  31. package/lib/components/Ringer.js +1 -0
  32. package/lib/components/RtcContainer.d.ts +3 -0
  33. package/lib/components/RtcContainer.js +1 -0
  34. package/lib/components/SideFrame.d.ts +3 -0
  35. package/lib/components/SideFrame.js +1 -0
  36. package/lib/components/SvgIcon.d.ts +12 -0
  37. package/lib/components/SvgIcon.js +1 -0
  38. package/lib/components/Timer.d.ts +3 -0
  39. package/lib/components/Timer.js +1 -0
  40. package/lib/components/VideoFrames.d.ts +3 -0
  41. package/lib/components/VideoFrames.js +1 -0
  42. package/lib/context/SanarContext.d.ts +9 -0
  43. package/lib/context/SanarContext.js +1 -0
  44. package/lib/index.d.ts +23 -0
  45. package/lib/index.js +1 -0
  46. package/lib/screens/ITCBooking.d.ts +8 -0
  47. package/lib/screens/ITCBooking.js +18 -0
  48. package/lib/screens/SKAppointments.d.ts +14 -0
  49. package/lib/screens/SKAppointments.js +18 -0
  50. package/lib/screens/SKChat.d.ts +16 -0
  51. package/lib/screens/SKChat.js +18 -0
  52. package/lib/screens/SKConsultation.d.ts +2 -0
  53. package/lib/screens/SKConsultation.js +1 -0
  54. package/lib/screens/SKDashboard.d.ts +14 -0
  55. package/lib/screens/SKDashboard.js +36 -0
  56. package/lib/utils/constants.d.ts +18 -0
  57. package/lib/utils/constants.js +1 -0
  58. package/lib/utils/index.d.ts +3 -0
  59. package/lib/utils/index.js +1 -0
  60. package/lib/viewport-units.d.ts +1 -0
  61. package/lib/viewport-units.js +1 -0
  62. package/package.json +71 -0
  63. package/scripts/sanarkit-setup.js +84 -0
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.styles=exports.default=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _SvgIcon=_interopRequireDefault(require("./SvgIcon"));var _SanarSVG=_interopRequireDefault(require("../common/SanarSVG"));var _SanarContext=_interopRequireDefault(require("../common/SanarContext"));var _SideFrame=_interopRequireDefault(require("./SideFrame"));var _Timer=_interopRequireDefault(require("./Timer"));var _viewportUnits=require("../viewport-units");var _SanarKit=_interopRequireDefault(require("../SanarKit"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/components/Controls.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var Icon=function Icon(props){return(0,_jsxRuntime.jsx)(_SvgIcon.default,Object.assign({},props,{svgs:_SanarSVG.default}));};var width=_reactNative.Dimensions.get('window').width;var height=_reactNative.Dimensions.get('window').height;var modelHeight=new _reactNative.Animated.Value(0);var Controls=function Controls(props){var toggleFrame=props.toggleFrame,duration=props.duration;var _useContext=(0,_react.useContext)(_SanarContext.default),notification=_useContext.notification,endCall=_useContext.endCall,brandLogo=_useContext.brandLogo,isPaused=_useContext.isPaused,onClickControl=_useContext.onClickControl,openChatPage=_useContext.openChatPage,intialFrame=_useContext.intialFrame,isLocalVideoPaused=_useContext.isLocalVideoPaused,pauseLocalVideo=_useContext.pauseLocalVideo;var docName=notification.docName;var _useState=(0,_react.useState)(false),_useState2=(0,_slicedToArray2.default)(_useState,2),isAudio=_useState2[0],setIsAudio=_useState2[1];var _useState3=(0,_react.useState)(false),_useState4=(0,_slicedToArray2.default)(_useState3,2),isCamera=_useState4[0],setIsCamera=_useState4[1];var _useState5=(0,_react.useState)(false),_useState6=(0,_slicedToArray2.default)(_useState5,2),isWhite=_useState6[0],setIsWhite=_useState6[1];var _useState7=(0,_react.useState)(false),_useState8=(0,_slicedToArray2.default)(_useState7,2),isBlur=_useState8[0],setIsBlur=_useState8[1];var _useState9=(0,_react.useState)(false),_useState10=(0,_slicedToArray2.default)(_useState9,2),isMute=_useState10[0],setIsMute=_useState10[1];var _useState11=(0,_react.useState)(false),_useState12=(0,_slicedToArray2.default)(_useState11,2),msg=_useState12[0],setMsg=_useState12[1];_react.default.useEffect(function(){_SanarKit.default.eventListner.on("INCOMING_MESSAGE",function(e){return setMsg(true);});return function(){modelHeight=new _reactNative.Animated.Value(0);};},[]);var onClickChatIcon=function onClickChatIcon(){toggleFrame==null?void 0:toggleFrame();openChatPage();setMsg(false);};var controls=function controls(type,value){switch(type){case"MUTE":setIsMute(!isMute);onClickControl(type,isMute);break;case"VIDEO":pauseLocalVideo(!value);break;case"AUDIO":setIsAudio(!isAudio);onClickControl(type,isAudio);break;case"CAMERA":setIsCamera(!isCamera);onClickControl(type,isCamera);break;case"WHITE_BG":if(isBlur){setIsBlur(!isBlur);onClickControl(type,isBlur);}setIsWhite(!isWhite);onClickControl(type,isWhite);break;case"BLUR_BG":if(isWhite){setIsWhite(!isWhite);onClickControl(type,isWhite);}setIsBlur(!isBlur);onClickControl(type,isBlur);break;default:break;}};var bottomMenuControls=function bottomMenuControls(){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.btnContainer,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.btnFirstRow,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.btnRowRight,children:[(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{onPress:function onPress(){return controls('MUTE',isMute);},style:styles.microPhoneStyle,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.backgroundChange}),!isMute?(0,_jsxRuntime.jsx)(Icon,{name:"microPhone",height:18,width:18,fill:"#ffffff"}):(0,_jsxRuntime.jsx)(Icon,{name:"mutedMicroPhone",height:18,width:18})]}),(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{onPress:function onPress(){return controls('VIDEO',isLocalVideoPaused);},style:styles.normalBtn,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.backgroundChange}),!isLocalVideoPaused?(0,_jsxRuntime.jsx)(Icon,{name:"videoDisableNew",height:18,width:18}):(0,_jsxRuntime.jsx)(Icon,{name:"cameraIconNew",height:18,width:18})]}),(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{onPress:function onPress(){return endCall(duration);},style:styles.endCall,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.backgroundChange}),(0,_jsxRuntime.jsx)(Icon,{name:"callDisconnectSv",height:25,width:25})]}),(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{onPress:function onPress(){return onClickChatIcon();},style:styles.chatBtn,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.backgroundChange}),(0,_jsxRuntime.jsx)(Icon,{name:"newVideoChat",height:"18",width:"20",fill:"#FFF"}),msg&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.newMsgLabel,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.msgLabel,children:"New"})})]}),(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:styles.normalBtn,onPress:function onPress(){return controls('AUDIO',isAudio);},children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.backgroundChange}),isAudio?(0,_jsxRuntime.jsx)(Icon,{name:"speakerDisableIcon"}):(0,_jsxRuntime.jsx)(Icon,{name:"speakerEnableIcon"})]})]})})});};return(0,_jsxRuntime.jsxs)(_reactNative.SafeAreaView,{style:styles.container,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.header,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:{justifyContent:'center',alignItems:'center'},children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.title,children:docName}),(0,_jsxRuntime.jsx)(_Timer.default,{duration:duration})]})}),brandLogo&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.logoContainer,children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:{top:30,right:30,position:'absolute'},children:(0,_jsxRuntime.jsx)(Icon,{name:"sanrLogoSvgVideoCall",height:130,width:130})})}),(0,_jsxRuntime.jsx)(_SideFrame.default,{isVideo:isLocalVideoPaused,isPaused:isPaused}),isPaused&&!intialFrame&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.pauseTextStyle,children:(0,_jsxRuntime.jsx)(_reactNative.Image,{source:notification!=null&&notification.docProfile&&notification.docProfile.trim()!==''?{uri:notification.docProfile}:{uri:'https://img.litedev.com/mis/a115f5c6081ee720ce6d3dd47a59cb2a.png'},style:styles.avatar})}),intialFrame&&!isLocalVideoPaused&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.pauseTextStyle,children:(0,_jsxRuntime.jsx)(_reactNative.Image,{source:{uri:"https://img.litedev.com/mis/a115f5c6081ee720ce6d3dd47a59cb2a.png"},style:styles.avatar})}),bottomMenuControls()]});};var _default=exports.default=_react.default.memo(Controls);var styles=exports.styles=_reactNative.StyleSheet.create({container:{justifyContent:'center',width:width,height:"100%",backgroundColor:'transparent'},header:{flexDirection:'row',alignItems:'center',justifyContent:'center',padding:10,position:"absolute",top:0,left:0,right:0},backButton:{position:'absolute',left:20,zIndex:1,top:10},title:{fontSize:18,fontWeight:'bold',textAlign:'center',color:"#ffff"},btnContainer:{position:'absolute',bottom:1*_viewportUnits.vw,zIndex:999,backgroundColor:'transparent'},btnFirstRow:{flexDirection:'row',zIndex:999,marginBottom:30,width:'100%',justifyContent:'space-evenly',backgroundColor:'transparent'},btnRowRight:{flexDirection:'row',justifyContent:'center',alignItems:'center'},btnRowLeft:{flexDirection:'row',justifyContent:'center',left:30},microPhoneStyle:{width:12*_viewportUnits.vw,height:12*_viewportUnits.vw,alignItems:'center',borderRadius:50,backgroundColor:'#fff',justifyContent:'center',padding:5,marginRight:15},normalBtn:{width:12*_viewportUnits.vw,height:12*_viewportUnits.vw,alignItems:'center',borderRadius:50,backgroundColor:'#fff',justifyContent:'center',padding:5,marginRight:15},endCall:{width:12*_viewportUnits.vw,height:12*_viewportUnits.vw,alignItems:'center',borderRadius:50,backgroundColor:'#CB3433',justifyContent:'center',padding:5,marginRight:15},chatBtn:{width:12*_viewportUnits.vw,height:12*_viewportUnits.vw,alignItems:'center',borderRadius:50,backgroundColor:'#fff',justifyContent:'center',padding:5,marginRight:15},backGroundSvg:{position:'absolute',bottom:0,backgroundColor:'transparent'},logoContainer:{width:width,height:100,position:'absolute',top:_reactNative.Platform.OS==='ios'?30:-20,left:20},timerBox:{flex:1,width:_viewportUnits.vw*30,bottom:110,marginLeft:5,position:'absolute',alignItems:'flex-start',justifyContent:'center',backgroundColor:'rgba(255, 255, 255, 0.5)',paddingVertical:7,paddingHorizontal:10,borderRadius:10},toolTip:{flex:1,bottom:22*_viewportUnits.vw,left:14*_viewportUnits.vw,zIndex:999,alignItems:'flex-start',justifyContent:'center',backgroundColor:'#fff'},docName:{color:'black',fontWeight:'600',fontSize:14,marginBottom:1},disconnectBtn:{backgroundColor:'red',width:60,height:60,zIndex:999,borderRadius:100,alignItems:'center',justifyContent:'center',alignSelf:'center',bottom:65,position:'absolute'},imageStyle:{width:120,height:160,alignSelf:'center',alignItems:'center'},frameBorder:{width:45,height:45,borderRadius:22.5,justifyContent:'center',marginTop:0,zIndex:999999999,backgroundColor:'rgba(0, 0, 0, 0.2)'},modelContainer:{width:60,position:'absolute',bottom:100,right:20,marginBottom:10,justifyContent:'space-between',paddingVertical:10,paddingHorizontal:10,overflow:'hidden',zIndex:999999999},pausedText:{color:'white',fontSize:12,fontWeight:'600'},pauseTextStyle:{top:height/2-100,left:width/2-75,width:150,height:30,position:'absolute',alignItems:'center',justifyContent:'center'},videoFrameSwitch:{width:120,height:160,borderWidth:1,borderColor:'lightgray',borderRadius:_reactNative.Platform.OS=='android'?0:10,overflow:'hidden',position:'absolute',zIndex:999099999,right:20,top:50},backgroundChange:{width:12*_viewportUnits.vw,height:12*_viewportUnits.vw,alignItems:'center',borderRadius:50,backgroundColor:'#fff',opacity:0.1,justifyContent:'center',padding:5,position:'absolute'},newMsgLabel:{backgroundColor:'red',width:35,height:25,position:'absolute',borderRadius:20,justifyContent:'center',alignItems:'center',top:-14,right:-12},msgLabel:{color:'white',fontWeight:'500',fontSize:8},avatar:{width:120,height:120,borderRadius:60}});
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const Ringer: () => React.JSX.Element;
3
+ export default Ringer;
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _SanarContext=_interopRequireDefault(require("../common/SanarContext"));var _SvgIcon=_interopRequireDefault(require("./SvgIcon"));var _SanarSVG=_interopRequireDefault(require("../common/SanarSVG"));var _Permissions=require("../common/Permissions");var _PermissionModal=_interopRequireDefault(require("../common/PermissionModal"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/components/Ringer.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var Icon=function Icon(props){return(0,_jsxRuntime.jsx)(_SvgIcon.default,Object.assign({},props,{svgs:_SanarSVG.default}));};var _Dimensions$get=_reactNative.Dimensions.get('window'),width=_Dimensions$get.width,height=_Dimensions$get.height;var Ringer=function Ringer(){var _useContext=(0,_react.useContext)(_SanarContext.default),notification=_useContext.notification,acceptCall=_useContext.acceptCall,disconnectCall=_useContext.disconnectCall;var docName=notification.docName,type=notification.type,docProfile=notification.docProfile;var _useState=(0,_react.useState)({camera:true,microphone:true,bluetooth:true,isEnabled:false}),_useState2=(0,_slicedToArray2.default)(_useState,2),permissions=_useState2[0],setPermissions=_useState2[1];(0,_react.useEffect)(function(){function start(){_reactNative.Keyboard.dismiss();checkRequiredPermissions();}start();},[]);var checkRequiredPermissions=function(){var _ref=(0,_asyncToGenerator2.default)(function*(){var _yield$checkPermissio=yield(0,_Permissions.checkPermissions)(),cameraPermission=_yield$checkPermissio.cameraPermission,microphonePermission=_yield$checkPermissio.microphonePermission,bluetoothPermission=_yield$checkPermissio.bluetoothPermission;var permission=cameraPermission&&microphonePermission&&bluetoothPermission?false:true;setPermissions({camera:cameraPermission,microphone:microphonePermission,bluetooth:bluetoothPermission,isEnabled:permission});});return function checkRequiredPermissions(){return _ref.apply(this,arguments);};}();var onTakingCall=function(){var _ref2=(0,_asyncToGenerator2.default)(function*(){var _yield$checkPermissio2=yield(0,_Permissions.checkPermissions)(),cameraPermission=_yield$checkPermissio2.cameraPermission,microphonePermission=_yield$checkPermissio2.microphonePermission,bluetoothPermission=_yield$checkPermissio2.bluetoothPermission;var permission=cameraPermission&&microphonePermission&&bluetoothPermission?false:true;if(permission){setPermissions({camera:cameraPermission,microphone:microphonePermission,bluetooth:bluetoothPermission,isEnabled:permission});}else{acceptCall();}});return function onTakingCall(){return _ref2.apply(this,arguments);};}();return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.textContainer,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.doctorName,children:docName||''}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.callTypeText,children:"Videocall"})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.btnContainer,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.center,children:[(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:function onPress(){return disconnectCall();},style:styles.disconnectBtn,children:(0,_jsxRuntime.jsx)(Icon,{name:"callDisconnectSv",height:28,width:28})}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.nameTxt,children:"Decline"})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.center,children:[(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:function onPress(){return onTakingCall();},style:styles.acceptBtn,children:(0,_jsxRuntime.jsx)(Icon,{name:"callAccept",height:20,width:20})}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.nameTxt,children:"Accept"})]})]}),(0,_jsxRuntime.jsx)(_PermissionModal.default,{isVisible:permissions.isEnabled,camera:permissions.camera,microphone:permissions.microphone,bluetooth:permissions.bluetooth,closeModal:function closeModal(){return setPermissions(Object.assign({},permissions,{isEnabled:false}));}})]});};var _default=exports.default=Ringer;var styles=_reactNative.StyleSheet.create({container:{flex:1,backgroundColor:'white',alignItems:'center',width:width,height:height},center:{alignItems:'center',justifyContent:'center'},textContainer:{alignItems:'center',alignSelf:'center',justifyContent:'center',marginTop:100},btnContainer:{alignItems:'flex-end',justifyContent:'space-between',flexDirection:'row',paddingHorizontal:'12%',position:'absolute',bottom:60,width:'100%'},disconnectBtn:{backgroundColor:'red',width:70,height:70,borderRadius:35,alignItems:'center',justifyContent:'center'},acceptBtn:{alignItems:'center',justifyContent:'center',backgroundColor:'#1abc9c',width:70,height:70,borderRadius:35},doctorName:{fontWeight:'700',fontSize:20,color:"#39404f"},callTypeText:{fontSize:18,fontWeight:'400',color:"#39404f",marginTop:10},nameTxt:{fontSize:14,fontWeight:'400',color:"#39404f",marginTop:10}});
@@ -0,0 +1,3 @@
1
+ export default RtcContainer;
2
+ declare function RtcContainer(props: any): React.JSX.Element;
3
+ import React from 'react';
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _Controls=_interopRequireDefault(require("./Controls"));var _SanarContext=_interopRequireDefault(require("../common/SanarContext"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/components/RtcContainer.js";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var _Dimensions$get=_reactNative.Dimensions.get('window'),width=_Dimensions$get.width,height=_Dimensions$get.height;var RtcContainer=function RtcContainer(props){var duration=props.duration;var _useContext=(0,_react.useContext)(_SanarContext.default),closeChatPage=_useContext.closeChatPage,setIsMinimized=_useContext.setIsMinimized,shouldToggleFrame=_useContext.shouldToggleFrame,setToggleFrame=_useContext.setToggleFrame,isLocalVideoPaused=_useContext.isLocalVideoPaused,notification=_useContext.notification,intialFrame=_useContext.intialFrame,isPaused=_useContext.isPaused;var pan=_react.default.useRef(new _reactNative.Animated.ValueXY()).current;var _React$useState=_react.default.useState(true),_React$useState2=(0,_slicedToArray2.default)(_React$useState,2),maximizeFrame=_React$useState2[0],setMaximizeFrame=_React$useState2[1];var _React$useState3=_react.default.useState(false),_React$useState4=(0,_slicedToArray2.default)(_React$useState3,2),thumbnailMoved=_React$useState4[0],setThumbnailMoved=_React$useState4[1];var maxHeight=_react.default.useRef(new _reactNative.Animated.Value(styles.primaryFrameDimensions.height)).current;var maxWidth=_react.default.useRef(new _reactNative.Animated.Value(styles.primaryFrameDimensions.width)).current;var toggleFrame=function toggleFrame(){_reactNative.Keyboard.dismiss();closeChatPage();if(thumbnailMoved){_reactNative.Animated.timing(pan,{toValue:{x:0,y:0},duration:500,useNativeDriver:false}).start();}setMaximizeFrame(!maximizeFrame);var toHeight,toWidth;if(maximizeFrame){toHeight=styles.thumbnailFrameDimensions.height;toWidth=styles.thumbnailFrameDimensions.width;setIsMinimized(true);}else{toHeight=styles.primaryFrameDimensions.height;toWidth=styles.primaryFrameDimensions.width;setIsMinimized(false);}setToggleFrame(false);_reactNative.Animated.timing(maxHeight,{toValue:toHeight,duration:500,useNativeDriver:false}).start();_reactNative.Animated.timing(maxWidth,{toValue:toWidth,duration:500,useNativeDriver:false}).start();};_react.default.useEffect(function(){if(shouldToggleFrame){toggleFrame();}},[shouldToggleFrame]);var panResponder=_react.default.useRef(_reactNative.PanResponder.create({onMoveShouldSetPanResponder:function onMoveShouldSetPanResponder(evt,_ref){var dx=_ref.dx,dy=_ref.dy;if(dx>10||dy>10){return true;}return false;},onPanResponderGrant:function onPanResponderGrant(){pan.setOffset({x:pan.x._value,y:pan.y._value});},onPanResponderMove:_reactNative.Animated.event([null,{dx:pan.x,dy:pan.y}],{useNativeDriver:false}),onPanResponderRelease:function onPanResponderRelease(e,gestureState){var stickToCorner=_reactNative.I18nManager.isRTL?styles.thumbnailFrameDimensions.width-width:width-styles.thumbnailFrameDimensions.width;var thresholdWidth=width/2;var moveXStatus=_reactNative.I18nManager.isRTL?gestureState.moveX<thresholdWidth:gestureState.moveX>thresholdWidth;var isMoved=moveXStatus?true:false;var moveX=isMoved?stickToCorner:0;setThumbnailMoved(isMoved);pan.flattenOffset();_reactNative.Animated.spring(pan,{toValue:{x:moveX,y:0},useNativeDriver:false}).start();}})).current;return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:(0,_jsxRuntime.jsxs)(_reactNative.SafeAreaView,{children:[(0,_jsxRuntime.jsx)(_reactNative.Animated.View,Object.assign({style:[maximizeFrame?styles.container:styles.minimizedStyle,{height:maxHeight,width:maxWidth},{transform:[{translateX:pan.x},{translateY:pan.y}]}]},panResponder.panHandlers,{children:(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:[styles.container,{height:'100%',width:'100%'},styles.thumbnailClick],onPress:function onPress(){!maximizeFrame&&toggleFrame();},children:[props.children,!maximizeFrame&&!isLocalVideoPaused&&intialFrame&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:{justifyContent:"center",alignItems:"center",paddingBottom:100},children:(0,_jsxRuntime.jsx)(_reactNative.Image,{source:{uri:"https://img.litedev.com/mis/a115f5c6081ee720ce6d3dd47a59cb2a.png"},style:styles.imageStyle,resizeMode:"contain"})}),!maximizeFrame&&isPaused&&!intialFrame&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:{justifyContent:"center",alignItems:"center",paddingBottom:100},children:(0,_jsxRuntime.jsx)(_reactNative.Image,{source:notification!=null&&notification.docProfile&&notification.docProfile.trim()!==''?{uri:notification.docProfile}:{uri:"https://img.litedev.com/mis/a115f5c6081ee720ce6d3dd47a59cb2a.png"},style:styles.imageStyle,resizeMode:"contain"})})]})})),maximizeFrame&&(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:(0,_jsxRuntime.jsx)(_Controls.default,{toggleFrame:toggleFrame,duration:duration})})]})});};var _default=exports.default=RtcContainer;var styles=_reactNative.StyleSheet.create({container:{backgroundColor:"#1c1c1e",position:'absolute',flex:1,top:0,left:0,right:0,bottom:0,height:height,width:width},primaryFrame:{borderRadius:5},thumbnailFrame:{backgroundColor:'transparent',borderRadius:5},thumbnailFrameDimensions:{height:250,width:150},primaryFrameDimensions:{height:height,width:width},thumbnailClick:{flex:1,zIndex:99999},minimizedStyle:{position:'absolute',height:250,width:150,zIndex:999,borderRadius:10,overflow:'hidden'},imageStyle:{width:80,height:80,borderRadius:50,backgroundColor:"#e6ecf0"}});
@@ -0,0 +1,3 @@
1
+ export default SideFrame;
2
+ declare function SideFrame(props: any): React.JSX.Element;
3
+ import React from 'react';
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _VideoFrames=_interopRequireDefault(require("./VideoFrames"));var _SanarContext=_interopRequireDefault(require("../common/SanarContext"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/components/SideFrame.js";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var SideFrame=function SideFrame(props){var isVideo=props.isVideo,isPaused=props.isPaused;var _useContext=(0,_react.useContext)(_SanarContext.default),notification=_useContext.notification,switchFrame=_useContext.switchFrame,intialFrame=_useContext.intialFrame;var docProfile=notification.docProfile,docName=notification.docName;var doctorImg=docProfile?{uri:docProfile}:{uri:"https://img.litedev.com/mis/a115f5c6081ee720ce6d3dd47a59cb2a.png"};return(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{onPress:switchFrame,style:styles.container,children:!intialFrame?!isVideo?(0,_jsxRuntime.jsx)(_reactNative.Image,{source:{uri:"https://img.litedev.com/mis/a115f5c6081ee720ce6d3dd47a59cb2a.png"},style:styles.imageStyle,resizeMode:"contain"}):(0,_jsxRuntime.jsx)(_VideoFrames.default,{isLocal:!intialFrame}):isPaused?(0,_jsxRuntime.jsx)(_reactNative.Image,{source:doctorImg,style:styles.imageStyle,resizeMode:"contain"}):(0,_jsxRuntime.jsx)(_VideoFrames.default,{isLocal:!intialFrame})});};var styles=_reactNative.StyleSheet.create({container:{width:120,height:160,borderWidth:1,borderColor:'lightgray',borderRadius:Platform.OS=='android'?0:10,overflow:'hidden',position:'absolute',zIndex:999099999,right:30,bottom:150},imageStyle:{width:120,height:160,alignSelf:'center',alignItems:'center',backgroundColor:"#e6ecf0"}});var _default=exports.default=SideFrame;
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ declare const SvgIcon: {
3
+ (props: any): React.JSX.Element | null;
4
+ defaultProps: {
5
+ fill: string;
6
+ fillRule: string;
7
+ height: string;
8
+ width: string;
9
+ viewBox: string;
10
+ };
11
+ };
12
+ export default SvgIcon;
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactNativeSvg=_interopRequireDefault(require("react-native-svg"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/components/SvgIcon.tsx";var _SvgIcon=function SvgIcon(props){if(!props.name){return null;}var name=props.svgs[`${props.name}.${_reactNative.Platform.OS}`]||props.svgs[props.name];if(!name){return null;}var height=props.height&&props.height.toString();var width=props.width&&props.width.toString();var strokeWidth=props.strokeWidth&&props.strokeWidth.toString();var isSimple=_react.default.isValidElement(name);var svgEl=isSimple?name:name.svg;var viewBox;if(props.viewBox&&props.viewBox!==_SvgIcon.defaultProps.viewBox){viewBox=props.viewBox;}else if(!isSimple&&name.viewBox){viewBox=name.viewBox;}else if(props.defaultViewBox){viewBox=props.defaultViewBox;}else{viewBox=_SvgIcon.defaultProps.viewBox;}return(0,_jsxRuntime.jsx)(_reactNativeSvg.default,{height:height,width:width,viewBox:viewBox,style:props.style,children:_react.default.cloneElement(svgEl,{fill:props.fill,fillRule:props.fillRule,stroke:props.stroke,strokeWidth:strokeWidth})});};_SvgIcon.defaultProps={fill:'#000',fillRule:'evenodd',height:'44',width:'44',viewBox:'0 0 100 100'};var _default=exports.default=_SvgIcon;
@@ -0,0 +1,3 @@
1
+ export default Timer;
2
+ declare function Timer(props: any): React.JSX.Element;
3
+ import React from 'react';
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/components/Timer.js";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var Timer=function Timer(props){var duration=props.duration;return(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.durationTxt,children:duration});};var styles=_reactNative.StyleSheet.create({durationTxt:{color:'#fff',fontWeight:'400',fontSize:10}});var _default=exports.default=Timer;
@@ -0,0 +1,3 @@
1
+ declare const _default: React.MemoExoticComponent<(props: any) => React.JSX.Element>;
2
+ export default _default;
3
+ import React from 'react';
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _react=_interopRequireWildcard(require("react"));var _reactNativeAgora=require("react-native-agora");var _SanarContext=_interopRequireDefault(require("../common/SanarContext"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/components/VideoFrames.js";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var VideoFrames=function VideoFrames(props){var isLocal=props.isLocal;var _useContext=(0,_react.useContext)(_SanarContext.default),notification=_useContext.notification,_peerIds=_useContext._peerIds;var LocalFrame=function LocalFrame(){return(0,_jsxRuntime.jsx)(_reactNativeAgora.RtcSurfaceView,{style:{flex:1,width:'100%',height:'100%'},zOrderOnTop:false,canvas:{uid:0,sourceType:_reactNativeAgora.VideoSourceType.VideoSourceCamera,renderMode:_reactNativeAgora.RenderModeType.RenderModeHidden}});};var RemoteFrame=function RemoteFrame(){return _peerIds.map(function(peerId,i){return(0,_jsxRuntime.jsx)(_reactNativeAgora.RtcSurfaceView,{style:{flex:1,width:'100%',height:'100%'},zOrderMediaOverlay:false,canvas:{uid:peerId,sourceType:_reactNativeAgora.VideoSourceType.VideoSourceRemote,renderMode:_reactNativeAgora.RenderModeType.RenderModeHidden}},i);});};return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:isLocal?(0,_jsxRuntime.jsx)(LocalFrame,{}):(0,_jsxRuntime.jsx)(RemoteFrame,{})});};var _default=exports.default=(0,_react.memo)(VideoFrames);
@@ -0,0 +1,9 @@
1
+ export declare enum CONNECTION_STATUS {
2
+ RINGING = 0,
3
+ CONNECTED = 1,
4
+ DISCONNECTED = 2
5
+ }
6
+ export declare const SanarContext: import("react").Context<any>;
7
+ export declare const SanarProvider: ({ children }: {
8
+ children: React.ReactNode;
9
+ }) => import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.SanarProvider=exports.SanarContext=exports.CONNECTION_STATUS=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=require("react");var _constants=require("../utils/constants");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/context/SanarContext.tsx";var CONNECTION_STATUS=exports.CONNECTION_STATUS=function(CONNECTION_STATUS){CONNECTION_STATUS[CONNECTION_STATUS["RINGING"]=0]="RINGING";CONNECTION_STATUS[CONNECTION_STATUS["CONNECTED"]=1]="CONNECTED";CONNECTION_STATUS[CONNECTION_STATUS["DISCONNECTED"]=2]="DISCONNECTED";return CONNECTION_STATUS;}({});var SanarContext=exports.SanarContext=(0,_react.createContext)({});var SanarProvider=exports.SanarProvider=function SanarProvider(_ref){var children=_ref.children;var initialState={notification:null,ringing:false,status:CONNECTION_STATUS.DISCONNECTED};var reducer=function reducer(state,action){switch(action.type){case _constants.TELECALL:return Object.assign({},state,{ringing:action.value});case _constants.MESSAGE:return Object.assign({},state,{notification:action.value});case _constants.ACCEPT_CALL:return Object.assign({},state,{status:action.value});case _constants.END_CALL:return Object.assign({},state,{status:action.value});default:return initialState;}};var _useReducer=(0,_react.useReducer)(reducer,initialState),_useReducer2=(0,_slicedToArray2.default)(_useReducer,2),state=_useReducer2[0],dispatch=_useReducer2[1];var store={ringing:state.ringing,notification:state.notification,status:state.status,dispatch:dispatch};return(0,_jsxRuntime.jsx)(SanarContext.Provider,{value:store,children:children});};
package/lib/index.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ export { RTCViewStatus } from "./Types";
2
+ export default SanarRTC;
3
+ export { default as SanarKit } from "./SanarKit";
4
+ export { default as SKConsultation } from "./screens/SKConsultation";
5
+ export { default as SKChat } from "./screens/SKChat";
6
+ export { default as ITCBooking } from "./screens/ITCBooking";
7
+ export { default as SKDashboard } from "./screens/SKDashboard";
8
+ export { default as SKAppointments } from "./screens/SKAppointments";
9
+ declare function SanarRTC({ enable, onCallStatusChange, isFullscreen, onViewModeChange }: {
10
+ enable: any;
11
+ onCallStatusChange: any;
12
+ isFullscreen: any;
13
+ onViewModeChange: any;
14
+ }): React.JSX.Element;
15
+ declare namespace SanarRTC {
16
+ namespace defaultProps {
17
+ let enable: boolean;
18
+ let isFullscreen: boolean;
19
+ function onCallStatusChange(): void;
20
+ function onViewModeChange(): void;
21
+ }
22
+ }
23
+ import React from "react";
package/lib/index.js ADDED
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"ITCBooking",{enumerable:true,get:function get(){return _ITCBooking.default;}});Object.defineProperty(exports,"RTCViewStatus",{enumerable:true,get:function get(){return _Types.RTCViewStatus;}});Object.defineProperty(exports,"SKAppointments",{enumerable:true,get:function get(){return _SKAppointments.default;}});Object.defineProperty(exports,"SKChat",{enumerable:true,get:function get(){return _SKChat.default;}});Object.defineProperty(exports,"SKConsultation",{enumerable:true,get:function get(){return _SKConsultation.default;}});Object.defineProperty(exports,"SKDashboard",{enumerable:true,get:function get(){return _SKDashboard.default;}});Object.defineProperty(exports,"SanarKit",{enumerable:true,get:function get(){return _SanarKit.default;}});exports.default=void 0;var _react=_interopRequireDefault(require("react"));var _Ringer=_interopRequireDefault(require("./components/Ringer"));var _SanarProvider=_interopRequireDefault(require("./common/SanarProvider"));var _RTCComponent=_interopRequireDefault(require("./RTCComponent"));var _jsxRuntime=require("react/jsx-runtime");var _Types=require("./Types");var _SanarKit=_interopRequireDefault(require("./SanarKit"));var _SKConsultation=_interopRequireDefault(require("./screens/SKConsultation"));var _SKChat=_interopRequireDefault(require("./screens/SKChat"));var _ITCBooking=_interopRequireDefault(require("./screens/ITCBooking"));var _SKDashboard=_interopRequireDefault(require("./screens/SKDashboard"));var _SKAppointments=_interopRequireDefault(require("./screens/SKAppointments"));var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/index.js";var SanarRTC=function SanarRTC(_ref){var enable=_ref.enable,onCallStatusChange=_ref.onCallStatusChange,isFullscreen=_ref.isFullscreen,onViewModeChange=_ref.onViewModeChange;return(0,_jsxRuntime.jsx)(_SanarProvider.default,{enable:enable,onCallStatusChange:onCallStatusChange,isFullscreen:isFullscreen,onViewModeChange:onViewModeChange,children:(0,_jsxRuntime.jsx)(_RTCComponent.default,{})});};SanarRTC.defaultProps={enable:false,isFullscreen:false,onCallStatusChange:function onCallStatusChange(){},onViewModeChange:function onViewModeChange(){}};var _default=exports.default=SanarRTC;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface IITCBooking {
3
+ onEndFlow: () => void;
4
+ enable: boolean;
5
+ navigationOption?: boolean;
6
+ }
7
+ declare const ITCBooking: (props: IITCBooking) => React.JSX.Element | null;
8
+ export default ITCBooking;
@@ -0,0 +1,18 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeWebview=_interopRequireDefault(require("react-native-webview"));var _Container=_interopRequireDefault(require("../components/Container"));var _SanarKit=_interopRequireDefault(require("../SanarKit"));var _SKConsultation=_interopRequireDefault(require("./SKConsultation"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/screens/ITCBooking.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var _Dimensions$get=_reactNative.Dimensions.get('window'),width=_Dimensions$get.width,height=_Dimensions$get.height;var ITCBooking=function ITCBooking(props){var _useState=(0,_react.useState)(''),_useState2=(0,_slicedToArray2.default)(_useState,2),baseUrl=_useState2[0],setBaseUrl=_useState2[1];var enable=props.enable,onEndFlow=props.onEndFlow;var _useState3=(0,_react.useState)(false),_useState4=(0,_slicedToArray2.default)(_useState3,2),chatEnable=_useState4[0],setChatEnable=_useState4[1];var _useState5=(0,_react.useState)(''),_useState6=(0,_slicedToArray2.default)(_useState5,2),apntId=_useState6[0],setApntId=_useState6[1];var _useState7=(0,_react.useState)(''),_useState8=(0,_slicedToArray2.default)(_useState7,2),empId=_useState8[0],setEmpId=_useState8[1];(0,_react.useEffect)(function(){if(enable){if(_SanarKit.default!=null&&_SanarKit.default.session){var itcURL=`${_SanarKit.default.session.itcUrl}`;if(!props.navigationOption){itcURL=`${itcURL}&nav=0`;}setBaseUrl(itcURL);}else{console.warn('Not connected to Sanar Sarvices!');onEndFlow();}}},[enable]);var _onMessage=function onMessage(event){var onEndFlow=props.onEndFlow;if(!event.canGoBack&&event.data&&event.data.includes('home')||event.canGoBack&&event.data&&event.data.includes('home')){setBaseUrl('');onEndFlow();}else if(event.data&&event.data.includes('chat')){setChatEnable(true);var parseData=JSON.parse(event.data);setApntId(parseData.aId);setEmpId(parseData.dId);}};if(!props.enable||!baseUrl){return null;}return(0,_jsxRuntime.jsxs)(_Container.default,{children:[chatEnable?(0,_jsxRuntime.jsx)(_SKConsultation.default,{enable:chatEnable,appointmentId:apntId,empId:empId,onEndFlow:function onEndFlow(){return setChatEnable(false);}}):null,(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.container,children:(0,_jsxRuntime.jsx)(_reactNativeWebview.default,{source:{uri:baseUrl},style:styles.container,incognito:true,onMessage:function onMessage(event){return _onMessage(event.nativeEvent);},injectedJavaScript:`
2
+ (function() {
3
+ function wrap(fn) {
4
+ return function wrapper() {
5
+ var res = fn.apply(this, arguments);
6
+ window.ReactNativeWebView.postMessage(window.location.href);
7
+ return res;
8
+ }
9
+ }
10
+ history.pushState = wrap(history.pushState);
11
+ history.replaceState = wrap(history.replaceState);
12
+ history.go = wrap(history.go);
13
+ window.addEventListener('popstate', function() {
14
+ window.ReactNativeWebView.postMessage('navigationStateChange');
15
+ });
16
+ })();
17
+ true;
18
+ `})})]});};var _default=exports.default=ITCBooking;var styles=_reactNative.StyleSheet.create({container:{flex:1,height:height,width:width}});
@@ -0,0 +1,14 @@
1
+ /**
2
+ * From root of the project run command to navigate to file : cd /SanarKit/screens/SKChat.tsx
3
+ * @Command1 : npx babel --presets=@babel/preset-env,@babel/preset-react,@babel/preset-typescript SKChat.tsx -o SKConsultation.js
4
+ * From root of the project run the command to upload component to servier
5
+ * @Command2 : npm run transpile-component "screens/SKConsultation.js" "commit message"
6
+ */
7
+ import React from 'react';
8
+ interface ISanarConsultation {
9
+ onEndFlow: () => void;
10
+ enable: boolean;
11
+ navigationOption?: boolean;
12
+ }
13
+ declare const SKAppointments: (props: ISanarConsultation) => React.JSX.Element | null;
14
+ export default SKAppointments;
@@ -0,0 +1,18 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeWebview=_interopRequireDefault(require("react-native-webview"));var _Container=_interopRequireDefault(require("../components/Container"));var _SanarKit=_interopRequireDefault(require("../SanarKit"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/screens/SKAppointments.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var _Dimensions$get=_reactNative.Dimensions.get('window'),width=_Dimensions$get.width,height=_Dimensions$get.height;var SKAppointments=function SKAppointments(props){var _useState=(0,_react.useState)(''),_useState2=(0,_slicedToArray2.default)(_useState,2),baseUrl=_useState2[0],setBaseUrl=_useState2[1];var enable=props.enable,onEndFlow=props.onEndFlow;var language=_reactNative.I18nManager.isRTL?'ar':'en';(0,_react.useEffect)(function(){if(enable){if(_SanarKit.default.session){var webUrl=`${_SanarKit.default.session.appointmentUrl}`;if(!props.navigationOption){webUrl=`${webUrl}&nav=0`;}setBaseUrl(webUrl);}else{console.warn('Not connected to Sanar Sarvices!');onEndFlow();}}},[enable]);var _onMessage=function onMessage(event){if(!event.canGoBack&&event.data&&event.data.includes('home')||event.canGoBack&&event.data&&event.data.includes('home')){setBaseUrl('');onEndFlow();}};if(!enable||!baseUrl){return null;}return(0,_jsxRuntime.jsx)(_Container.default,{children:(0,_jsxRuntime.jsx)(_reactNativeWebview.default,{source:{uri:baseUrl},style:{flex:1},onMessage:function onMessage(event){return _onMessage(event.nativeEvent);},injectedJavaScript:`
2
+ (function() {
3
+ function wrap(fn) {
4
+ return function wrapper() {
5
+ var res = fn.apply(this, arguments);
6
+ window.ReactNativeWebView.postMessage(window.location.href);
7
+ return res;
8
+ }
9
+ }
10
+ history.pushState = wrap(history.pushState);
11
+ history.replaceState = wrap(history.replaceState);
12
+ history.go = wrap(history.go);
13
+ window.addEventListener('popstate', function() {
14
+ window.ReactNativeWebView.postMessage('navigationStateChange');
15
+ });
16
+ })();
17
+ true;
18
+ `})});};var _default=exports.default=SKAppointments;var styles=_reactNative.StyleSheet.create({container:{flex:1,height:height,width:width,marginTop:25,marginBottom:30}});
@@ -0,0 +1,16 @@
1
+ /**
2
+ * From root of the project run command to navigate to file : cd /SanarKit/screens/SKChat.tsx
3
+ * @Command1 : npx babel --presets=@babel/preset-env,@babel/preset-react,@babel/preset-typescript SKChat.tsx -o SKConsultation.js
4
+ * From root of the project run the command to upload component to servier
5
+ * @Command2 : npm run transpile-component "screens/SKConsultation.js" "commit message"
6
+ */
7
+ import React from 'react';
8
+ interface ISanarConsultation {
9
+ onEndFlow: () => void;
10
+ enable: boolean;
11
+ appointmentId: any;
12
+ empId: any;
13
+ navigationOption?: boolean;
14
+ }
15
+ declare const SKConsultation: (props: ISanarConsultation) => React.JSX.Element | null;
16
+ export default SKConsultation;
@@ -0,0 +1,18 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeWebview=_interopRequireDefault(require("react-native-webview"));var _Container=_interopRequireDefault(require("../components/Container"));var _SanarKit=_interopRequireDefault(require("../SanarKit"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/screens/SKChat.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var _Dimensions$get=_reactNative.Dimensions.get('window'),width=_Dimensions$get.width,height=_Dimensions$get.height;var SKConsultation=function SKConsultation(props){var _useState=(0,_react.useState)(''),_useState2=(0,_slicedToArray2.default)(_useState,2),baseUrl=_useState2[0],setBaseUrl=_useState2[1];var appointmentId=props.appointmentId,empId=props.empId,enable=props.enable,onEndFlow=props.onEndFlow;var language=_reactNative.I18nManager.isRTL?'ar':'en';(0,_react.useEffect)(function(){if(enable){if(_SanarKit.default.session){var CHAT_URL=`${_SanarKit.default.session.chatUrl}/${appointmentId}/${empId}?token=${_SanarKit.default.session.token}&lang=${language}&sc=medgulf`;console.log('CHAT_URL',CHAT_URL);if(!props.navigationOption){CHAT_URL=`${CHAT_URL}&nav=0`;}setBaseUrl(CHAT_URL);}else{console.warn('Not connected to Sanar Sarvices!');onEndFlow();}}},[enable]);var _onMessage=function onMessage(event){if(!event.canGoBack&&event.data&&event.data.includes('home')||event.canGoBack&&event.data&&event.data.includes('home')){setBaseUrl('');onEndFlow();}};if(!enable||!baseUrl){return null;}return(0,_jsxRuntime.jsx)(_Container.default,{children:(0,_jsxRuntime.jsx)(_reactNativeWebview.default,{source:{uri:baseUrl},style:{flex:1},onMessage:function onMessage(event){return _onMessage(event.nativeEvent);},injectedJavaScript:`
2
+ (function() {
3
+ function wrap(fn) {
4
+ return function wrapper() {
5
+ var res = fn.apply(this, arguments);
6
+ window.ReactNativeWebView.postMessage(window.location.href);
7
+ return res;
8
+ }
9
+ }
10
+ history.pushState = wrap(history.pushState);
11
+ history.replaceState = wrap(history.replaceState);
12
+ history.go = wrap(history.go);
13
+ window.addEventListener('popstate', function() {
14
+ window.ReactNativeWebView.postMessage('navigationStateChange');
15
+ });
16
+ })();
17
+ true;
18
+ `})});};var _default=exports.default=SKConsultation;var styles=_reactNative.StyleSheet.create({container:{flex:1,height:height,width:width,marginTop:25,marginBottom:30}});
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export default function SKConsultation(props: any): React.JSX.Element;
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=SKConsultation;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var React=_interopRequireWildcard(require("react"));var _sanarDynamicComponents=require("sanar-dynamic-components");var _utils=require("../utils");var _constants=require("../utils/constants");var _SanarKit=_interopRequireDefault(require("../SanarKit"));var _jsxRuntime=require("react/jsx-runtime");var _jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/screens/SKConsultation.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var _createDynamicCompone=(0,_sanarDynamicComponents.createDynamicComponent)({buildRequestForUri:_utils.dcBuildRequestForUri,global:{require:function(_require){function require(_x){return _require.apply(this,arguments);}require.toString=function(){return _require.toString();};return require;}(function(moduleId){if(moduleId==='react'){return require('react');}else if(moduleId==='react-native'){return require('react-native');}else if(moduleId==='react-native-webview'){return require('react-native-webview');}else if(moduleId==='WebView'){return require('react-native-webview');}else if(moduleId==='../components/Container'){return require('../components/Container');}else if(moduleId==='../SanarKit'){return require('../SanarKit');}return null;})},verify:function(){var _verify=(0,_asyncToGenerator2.default)(function*(){return true;});function verify(){return _verify.apply(this,arguments);}return verify;}()}),DynamicComponent=_createDynamicCompone.DynamicComponent;function SKConsultation(props){var BASE_URL=_SanarKit.default.environment==='production'?_constants.DC_BASE_URL_PROD:_constants.DC_BASE_URL_DEV;return(0,_jsxRuntime.jsx)(DynamicComponent,Object.assign({source:{uri:BASE_URL+_constants.CD_COMPONENT_LIST.SKConsultation.dcPath}},props));}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * From root of the project run command to navigate to file : cd /SanarKit/screens/SKChat.tsx
3
+ * @Command1 : npx babel --presets=@babel/preset-env,@babel/preset-react,@babel/preset-typescript SKChat.tsx -o SKConsultation.js
4
+ * From root of the project run the command to upload component to servier
5
+ * @Command2 : npm run transpile-component "screens/SKConsultation.js" "commit message"
6
+ */
7
+ import React from "react";
8
+ interface ISanarConsultation {
9
+ onEndFlow: () => void;
10
+ enable: boolean;
11
+ navigationOption?: boolean;
12
+ }
13
+ declare const SKDashboard: (props: ISanarConsultation) => React.JSX.Element | null;
14
+ export default SKDashboard;
@@ -0,0 +1,36 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNativeWebview=_interopRequireDefault(require("react-native-webview"));var _Container=_interopRequireDefault(require("../components/Container"));var _SanarKit=_interopRequireDefault(require("../SanarKit"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/Volumes/MarenExt/sdk/medgulf/ReactNative/rn-sanarkit-dev/src/screens/SKDashboard.tsx";function _getRequireWildcardCache(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap(),t=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?t:r;})(e);}function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if("default"!==u&&{}.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u];}return n.default=e,t&&t.set(e,n),n;}var _Dimensions$get=_reactNative.Dimensions.get("window"),width=_Dimensions$get.width,height=_Dimensions$get.height;var SKDashboard=function SKDashboard(props){var _useState=(0,_react.useState)(""),_useState2=(0,_slicedToArray2.default)(_useState,2),baseUrl=_useState2[0],setBaseUrl=_useState2[1];var enable=props.enable,onEndFlow=props.onEndFlow;var language=_reactNative.I18nManager.isRTL?"ar":"en";(0,_react.useEffect)(function(){if(enable){if(_SanarKit.default.session){var webUrl=`${_SanarKit.default.session.dashboardURL}`;if(!props.navigationOption){webUrl=`${webUrl}&nav=0`;}setBaseUrl(webUrl);}else{console.warn("Not connected to Sanar Sarvices!");onEndFlow();}}},[enable]);var _onMessage=function onMessage(event){console.log("event:",event);var canGoBack=event.canGoBack,data=event.data;if(!data)return;var isHome=data.includes("home");var isHomeVisit=data.includes("homevisit");if(isHome&&!isHomeVisit){setBaseUrl("");onEndFlow();}};if(!enable||!baseUrl){return null;}return(0,_jsxRuntime.jsx)(_Container.default,{children:(0,_jsxRuntime.jsx)(_reactNativeWebview.default,{source:{uri:baseUrl},style:{flex:1},scalesPageToFit:false,bounces:false,scrollEnabled:false,showsHorizontalScrollIndicator:false,showsVerticalScrollIndicator:false,onMessage:function onMessage(event){return _onMessage(event.nativeEvent);},injectedJavaScript:`
2
+ (function() {
3
+ // Disable zoom
4
+ document.addEventListener('gesturestart', function (e) {
5
+ e.preventDefault();
6
+ });
7
+ document.addEventListener('gesturechange', function (e) {
8
+ e.preventDefault();
9
+ });
10
+ document.addEventListener('gestureend', function (e) {
11
+ e.preventDefault();
12
+ });
13
+
14
+ // Add viewport meta tag to disable zoom
15
+ var meta = document.createElement('meta');
16
+ meta.name = 'viewport';
17
+ meta.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no';
18
+ document.getElementsByTagName('head')[0].appendChild(meta);
19
+
20
+ // Navigation tracking
21
+ function wrap(fn) {
22
+ return function wrapper() {
23
+ var res = fn.apply(this, arguments);
24
+ window.ReactNativeWebView.postMessage(window.location.href);
25
+ return res;
26
+ }
27
+ }
28
+ history.pushState = wrap(history.pushState);
29
+ history.replaceState = wrap(history.replaceState);
30
+ history.go = wrap(history.go);
31
+ window.addEventListener('popstate', function() {
32
+ window.ReactNativeWebView.postMessage('navigationStateChange');
33
+ });
34
+ })();
35
+ true;
36
+ `})});};var _default=exports.default=SKDashboard;var styles=_reactNative.StyleSheet.create({container:{flex:1,height:height,width:width,marginTop:25,marginBottom:30}});
@@ -0,0 +1,18 @@
1
+ export declare const DC_BASE_URL_DEV: string;
2
+ export declare const MEMBER_BASE_URL_DEV: string;
3
+ export declare const DC_BASE_URL_PROD: string;
4
+ export declare const MEMBER_BASE_URL_PROD: string;
5
+ export declare const COMPONENT_PATH: string;
6
+ export declare const SCREEN_PATH: string;
7
+ export declare const CD_COMPONENT_LIST: {
8
+ [key: string]: {
9
+ name: string;
10
+ dcPath: string;
11
+ };
12
+ };
13
+ export declare const TELECALL: string;
14
+ export declare const MESSAGE: string;
15
+ export declare const END_CALL: string;
16
+ export declare const ACCEPT: string;
17
+ export declare const REJECT_CALL: string;
18
+ export declare const ACCEPT_CALL: string;
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.TELECALL=exports.SCREEN_PATH=exports.REJECT_CALL=exports.MESSAGE=exports.MEMBER_BASE_URL_PROD=exports.MEMBER_BASE_URL_DEV=exports.END_CALL=exports.DC_BASE_URL_PROD=exports.DC_BASE_URL_DEV=exports.COMPONENT_PATH=exports.CD_COMPONENT_LIST=exports.ACCEPT_CALL=exports.ACCEPT=void 0;var DC_BASE_URL_DEV=exports.DC_BASE_URL_DEV='https://codepushdev.litedev.com';var MEMBER_BASE_URL_DEV=exports.MEMBER_BASE_URL_DEV='https://api.litedev.com';var DC_BASE_URL_PROD=exports.DC_BASE_URL_PROD='https://codepush.sanar.sa';var MEMBER_BASE_URL_PROD=exports.MEMBER_BASE_URL_PROD='https://api.sanarservices.com';var COMPONENT_PATH=exports.COMPONENT_PATH='/components';var SCREEN_PATH=exports.SCREEN_PATH='/screens';var CD_COMPONENT_LIST=exports.CD_COMPONENT_LIST={SKConsultation:{name:'SKConsultation',dcPath:`${COMPONENT_PATH}/SKConsultation.js`}};var TELECALL=exports.TELECALL="telecall";var MESSAGE=exports.MESSAGE="message";var END_CALL=exports.END_CALL='endcall';var ACCEPT=exports.ACCEPT="accept";var REJECT_CALL=exports.REJECT_CALL="REJECT_CALL";var ACCEPT_CALL=exports.ACCEPT_CALL="ACCEPT_CALL";
@@ -0,0 +1,3 @@
1
+ import { Environment } from 'SanarKit';
2
+ export declare function getInfo(cid: string, data: {} | undefined, lang: string, environment: Environment): Promise<any>;
3
+ export declare const dcBuildRequestForUri: (config: any) => any;
@@ -0,0 +1 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.dcBuildRequestForUri=void 0;exports.getInfo=getInfo;var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _axios=_interopRequireDefault(require("axios"));var _reactNative=require("react-native");var _reactNativeDeviceInfo=_interopRequireDefault(require("react-native-device-info"));var _constants=require("./constants");function getInfo(_x){return _getInfo.apply(this,arguments);}function _getInfo(){_getInfo=(0,_asyncToGenerator2.default)(function*(cid){var data=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var lang=arguments.length>2?arguments[2]:undefined;var environment=arguments.length>3?arguments[3]:undefined;var BUNDLE_ID=yield _reactNativeDeviceInfo.default.getBundleId();var BASE_URL=environment==='production'?_constants.MEMBER_BASE_URL_PROD:_constants.MEMBER_BASE_URL_DEV;var response=yield fetch(`${BASE_URL}/v1/member`,{method:'POST',headers:{'Content-Type':'application/json','Authorization':cid,'sales-channel':_reactNative.Platform.OS==='ios'?'ios':'android','bundle-id':BUNDLE_ID,'Accept-Language':lang||'en'},body:JSON.stringify(data)});return response.json();});return _getInfo.apply(this,arguments);}var dcBuildRequestForUri=exports.dcBuildRequestForUri=function dcBuildRequestForUri(config){var defaultConfig={method:'get',headers:{'DCCID':"0xA2510200715d68b08a4b1a613dBce3A519263e01"}};var finalConfig=Object.assign({},defaultConfig,config);return(0,_axios.default)(finalConfig);};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ 'use strict';var _reactNative=require("react-native");var _Dimensions$get=_reactNative.Dimensions.get('window'),width=_Dimensions$get.width,height=_Dimensions$get.height;var units={vw:width/100,vh:height/100};units.vmin=Math.min(units.vw,units.vh);units.vmax=Math.max(units.vw,units.vh);module.exports=units;
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "@maren-sa/react-native-sanarkit",
3
+ "version": "2.5.0",
4
+ "description": "SanarKit is a React Native library for integrating Sanar's services in your app.",
5
+ "main": "lib/index.js",
6
+ "types": "lib/index.d.ts",
7
+ "bin": {
8
+ "sanarkit-setup": "./scripts/sanarkit-setup.js"
9
+ },
10
+ "scripts": {
11
+ "build": "rm -rf lib && babel src -d lib --extensions \".js,.ts,.tsx\"",
12
+ "build:types": "tsc --emitDeclarationOnly",
13
+ "prepare": "if [ -d \"src\" ]; then npm run build && npm run build:types; fi",
14
+ "sync:prod": "./scripts/sync-prod.sh",
15
+ "release": "./scripts/release.sh"
16
+ },
17
+ "files": [
18
+ "lib",
19
+ "scripts/sanarkit-setup.js"
20
+ ],
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/MarenTech/react-native-sanarkit.git"
24
+ },
25
+ "homepage": "https://github.com/MarenTech/react-native-sanarkit#readme",
26
+ "bugs": {
27
+ "url": "https://github.com/MarenTech/react-native-sanarkit/issues"
28
+ },
29
+ "publishConfig": {
30
+ "access": "public"
31
+ },
32
+ "keywords": [
33
+ "react-native",
34
+ "MarenTech",
35
+ "SanarKit",
36
+ "Tele-Consultation"
37
+ ],
38
+ "author": "MarenTech",
39
+ "license": "MIT",
40
+ "peerDependencies": {
41
+ "react": "*",
42
+ "react-native": ">=0.68.0",
43
+ "react-native-agora": "^4.5.3",
44
+ "react-native-device-info": ">=8.0.0",
45
+ "react-native-permissions": "*",
46
+ "react-native-reanimated": ">=3.1.0",
47
+ "react-native-svg": "^12.1.0",
48
+ "react-native-webview": ">=11.22.7"
49
+ },
50
+ "devDependencies": {
51
+ "@babel/cli": "^7.26.0",
52
+ "@babel/core": "^7.26.0",
53
+ "@babel/preset-env": "^7.26.0",
54
+ "@babel/preset-react": "^7.26.0",
55
+ "@babel/preset-typescript": "^7.26.0",
56
+ "@types/react": "^18.3.18",
57
+ "@types/react-native": "^0.73.0",
58
+ "metro-react-native-babel-preset": "^0.77.0",
59
+ "react-native-agora": "^4.5.3",
60
+ "react-native-device-info": "^14.0.4",
61
+ "react-native-svg": "^15.10.0",
62
+ "react-native-webview": "^13.13.2",
63
+ "typescript": "^5.7.3"
64
+ },
65
+ "dependencies": {
66
+ "axios": "^1.8.1",
67
+ "moment": "^2.30.1",
68
+ "sanar-dynamic-components": "https://github.com/MarenTech/react-native-sanar-dcomponent.git",
69
+ "socket.io-client": "^4.8.1"
70
+ }
71
+ }
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * SanarKit peer-dependency setup.
4
+ *
5
+ * Ships inside the `react-native-sanarkit` package and is exposed as the
6
+ * `sanarkit-setup` bin, so consumers run it with `npx sanarkit-setup` from
7
+ * their app root — no script to copy-paste, no list to keep in sync.
8
+ *
9
+ * What it does, in the host app's working directory:
10
+ * 1. Removes the deprecated `sanar-rtc` package if present (Agora 3.x → 4.x).
11
+ * 2. Reads the SDK's own `peerDependencies` (the authoritative source —
12
+ * this file lives next to the SDK's package.json) and installs any that
13
+ * are missing from the host app, skipping `react` / `react-native`.
14
+ * 3. On macOS, runs `pod install` only if anything actually changed.
15
+ *
16
+ * It auto-detects yarn vs npm from the host app's lockfile.
17
+ */
18
+ const fs = require('fs');
19
+ const path = require('path');
20
+ const { execSync } = require('child_process');
21
+
22
+ // Host app root (where `npx sanarkit-setup` was invoked).
23
+ const appRoot = process.cwd();
24
+ const appPkgPath = path.join(appRoot, 'package.json');
25
+
26
+ // The SDK's own manifest — single source of truth for the peer set.
27
+ // `__dirname` is <pkg>/scripts, so ../package.json is the SDK package.json,
28
+ // whether the SDK was installed from the registry or via a git URL.
29
+ const sdkPkg = require('../package.json');
30
+
31
+ console.log('🔍 SanarKit: checking dependency setup...');
32
+
33
+ if (!fs.existsSync(appPkgPath)) {
34
+ console.error(`❌ Could not find package.json at ${appRoot}.`);
35
+ console.error(' Run `npx sanarkit-setup` from the root of your app.');
36
+ process.exit(1);
37
+ }
38
+
39
+ // Detect the host app's package manager from its lockfile.
40
+ const isYarn = fs.existsSync(path.join(appRoot, 'yarn.lock'));
41
+ const addCmd = (pkg, version) =>
42
+ isYarn ? `yarn add "${pkg}@${version}"` : `npm install --save "${pkg}@${version}"`;
43
+ const removeCmd = pkg => (isYarn ? `yarn remove ${pkg}` : `npm uninstall ${pkg}`);
44
+
45
+ const readAppPkg = () => JSON.parse(fs.readFileSync(appPkgPath, 'utf8'));
46
+ let appPkg = readAppPkg();
47
+ const appDeps = () => ({ ...(appPkg.dependencies || {}), ...(appPkg.devDependencies || {}) });
48
+
49
+ let changed = false;
50
+
51
+ // 1. Remove the deprecated sanar-rtc package (replaced by react-native-agora).
52
+ if (appDeps()['sanar-rtc']) {
53
+ console.log('🗑️ Removing deprecated package: sanar-rtc');
54
+ execSync(removeCmd('sanar-rtc'), { stdio: 'inherit', shell: true });
55
+ console.log('✅ sanar-rtc removed');
56
+ changed = true;
57
+ appPkg = readAppPkg(); // reload after the manifest was rewritten
58
+ }
59
+
60
+ // 2. Install any missing peer dependencies at the SDK's declared ranges.
61
+ const peerDeps = sdkPkg.peerDependencies || {};
62
+ for (const [pkg, version] of Object.entries(peerDeps)) {
63
+ if (pkg === 'react' || pkg === 'react-native') continue;
64
+ if (!appDeps()[pkg]) {
65
+ console.log(`📦 Installing peer dependency: ${pkg}@${version}`);
66
+ execSync(addCmd(pkg, version), { stdio: 'inherit', shell: true });
67
+ changed = true;
68
+ appPkg = readAppPkg(); // reload so subsequent checks see the new dep
69
+ } else {
70
+ console.log(`✅ ${pkg} is already installed`);
71
+ }
72
+ }
73
+
74
+ // 3. Refresh iOS pods if anything changed.
75
+ if (process.platform === 'darwin') {
76
+ if (changed) {
77
+ console.log('🔄 Installing iOS pods due to dependency changes...');
78
+ execSync('cd ios && pod install', { stdio: 'inherit', shell: true });
79
+ } else {
80
+ console.log('✅ No dependency changes — skipping pod install');
81
+ }
82
+ }
83
+
84
+ console.log('✨ SanarKit setup completed successfully!');