@wavemaker/app-rn-runtime 11.3.2-next.27252 → 11.4.0-next.1417011

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 (41) hide show
  1. app-rn-runtime/actions/notification-action.js +4 -5
  2. app-rn-runtime/actions/notification-action.js.map +1 -1
  3. app-rn-runtime/components/container/tabs/tabpane/tabpane.component.js +1 -4
  4. app-rn-runtime/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
  5. app-rn-runtime/components/container/tabs/tabs.component.js +10 -25
  6. app-rn-runtime/components/container/tabs/tabs.component.js.map +1 -1
  7. app-rn-runtime/components/data/form/form.component.js +1 -1
  8. app-rn-runtime/components/data/form/form.component.js.map +1 -1
  9. app-rn-runtime/components/data/list/list.component.js +4 -16
  10. app-rn-runtime/components/data/list/list.component.js.map +1 -1
  11. app-rn-runtime/components/device/barcodescanner/barcodescanner.component.js +1 -2
  12. app-rn-runtime/components/device/barcodescanner/barcodescanner.component.js.map +1 -1
  13. app-rn-runtime/components/device/camera/camera.component.js +4 -6
  14. app-rn-runtime/components/device/camera/camera.component.js.map +1 -1
  15. app-rn-runtime/components/device/camera/camera.props.js +1 -0
  16. app-rn-runtime/components/device/camera/camera.props.js.map +1 -1
  17. app-rn-runtime/components/input/baseinput/baseinput.component.js +0 -7
  18. app-rn-runtime/components/input/baseinput/baseinput.component.js.map +1 -1
  19. app-rn-runtime/components/page/partial-container/partial-container.styles.js +1 -2
  20. app-rn-runtime/components/page/partial-container/partial-container.styles.js.map +1 -1
  21. app-rn-runtime/core/injector.js +1 -15
  22. app-rn-runtime/core/injector.js.map +1 -1
  23. app-rn-runtime/core/tappable.component.js +2 -9
  24. app-rn-runtime/core/tappable.component.js.map +1 -1
  25. app-rn-runtime/core/utils.js +0 -6
  26. app-rn-runtime/core/utils.js.map +1 -1
  27. app-rn-runtime/package.json +5 -5
  28. app-rn-runtime/runtime/App.js +14 -13
  29. app-rn-runtime/runtime/App.js.map +1 -1
  30. app-rn-runtime/runtime/App.navigator.js +12 -2
  31. app-rn-runtime/runtime/App.navigator.js.map +1 -1
  32. app-rn-runtime/runtime/services/device/camera-service.js +6 -28
  33. app-rn-runtime/runtime/services/device/camera-service.js.map +1 -1
  34. app-rn-runtime/runtime/services/device/scan-service.js +14 -15
  35. app-rn-runtime/runtime/services/device/scan-service.js.map +1 -1
  36. app-rn-runtime/variables/device/camera/capture-image.operation.js.map +1 -1
  37. app-rn-runtime/variables/device/camera/capture-video.operation.js.map +1 -1
  38. app-rn-runtime/variables/device/file/upload-file.operation.js +21 -43
  39. app-rn-runtime/variables/device/file/upload-file.operation.js.map +1 -1
  40. app-rn-runtime/variables/service-variable.js +7 -12
  41. app-rn-runtime/variables/service-variable.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","axios","Platform","TouchableOpacity","View","StatusBar","ProtoTypes","SafeAreaProvider","SafeAreaInsetsContext","SafeAreaView","DefaultTheme","Provider","PaperProvider","Linking","NativeModulesProxy","WebBrowser","get","last","RENDER_LOGGER","ThemeProvider","StorageService","injector","formatters","deepCopy","isWebPreviewMode","Utils","ModalProvider","FixedViewContainer","ToastProvider","NavigationServiceProvider","PartialProvider","WmNetworkInfoToaster","ThemeVariables","WmMessage","Animatedview","Watcher","preparePatch","AppDisplayManagerService","AppModalService","AppToastService","AppPartialService","AppSpinnerService","AppNavigator","SecurityProvider","CameraProvider","CameraService","ScanProvider","ScanService","AppSecurityService","getValidJSON","parseErrors","MaterialCommunityIconsFont","SplashScreen","WmMemo","style","any","MIN_TIME_BETWEEN_REFRESH_CYCLES","DrawerImpl","constructor","onChange","setContent","content","getContent","setAnimation","animation","getAnimation","SUPPORTED_SERVICES","BaseApp","Component","props","ROOT","refresh","preventAutoHideAsync","setTimeout","hideAsync","appConfig","app","drawer","refreshAfterWait","baseUrl","url","wait","bindServiceInterceptors","complete","reload","debug","forceUpdate","commonPartial","currentPage","watcher","check","goToPage","pageName","params","goBack","openUrl","onBeforeServiceCall","config","headers","console","log","isSkeletonEnabled","spinner","loader","onServiceSuccess","data","response","onServiceError","errorMsg","error","request","invokeNativeApi","key","EmbedCommModule","OS","sendToNative","Promise","reject","onPageReady","activePageName","activePageScope","openBrowser","window","open","startsWith","target","openBrowserAsync","openURL","resolve","axiosInterceptorIds","interceptors","use","errorDetails","errMsg","errors","message","status","eval","fn","failOnError","call","e","componentDidMount","show","all","startUpVariables","map","s","Variables","invoke","catch","then","onAppVariablesReady","isStarted","startUpActions","a","Actions","componentWillUnmount","id","eject","cleanup","forEach","getProviders","renderToasters","toastsOpened","length","watch","refreshCount","o","i","position","width","bottom","elevation","elevationIndex","zIndex","styles","onClick","text","type","renderDialogs","modalsOpened","animatedRefs","modalOptions","name","isModal","hideModal","appModal","centered","centeredModal","modalStyle","ref","animatedRef","appModalContent","contentStyle","evt","stopPropagation","renderDisplayManager","displayOptions","theme","displayViewContainer","renderIconsViewSupportForWeb","getSelectedLocale","selectedLocale","getDependency","serviceName","service","renderApp","autoUpdateVariables","value","invokeOnParamChange","colors","primary","INSTANCE","primaryColor","insets","top","left","right","flex","container","appLocale","alignItems","flexDirection","justifyContent","backgroundColor","height"],"sources":["App.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { Platform, TouchableOpacity, View, ViewStyle, StatusBar } from 'react-native';\nimport ProtoTypes from 'prop-types';\nimport { SafeAreaProvider, SafeAreaInsetsContext, SafeAreaView } from 'react-native-safe-area-context';\nimport { DefaultTheme, Provider as PaperProvider } from 'react-native-paper';\nimport { Linking } from 'react-native';\nimport { NativeModulesProxy } from 'expo-modules-core';\nimport * as WebBrowser from 'expo-web-browser';\nimport { get, last } from 'lodash';\nimport { RENDER_LOGGER } from '@wavemaker/app-rn-runtime/core/logger';\nimport { ThemeProvider } from '@wavemaker/app-rn-runtime/styles/theme';\nimport AppConfig, { Drawer } from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport StorageService from '@wavemaker/app-rn-runtime/core/storage.service';\nimport NetworkService from '@wavemaker/app-rn-runtime/core/network.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport formatters from '@wavemaker/app-rn-runtime/core/formatters';\nimport { deepCopy, isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport * as Utils from '@wavemaker/app-rn-runtime/core/utils';\nimport { ModalProvider } from '@wavemaker/app-rn-runtime/core/modal.service';\nimport { FixedViewContainer } from '@wavemaker/app-rn-runtime/core/fixed-view.component';\nimport { ToastProvider } from '@wavemaker/app-rn-runtime/core/toast.service';\nimport NavigationService, { NavigationServiceProvider } from '@wavemaker/app-rn-runtime/core/navigation.service';\nimport { PartialProvider } from '@wavemaker/app-rn-runtime/core/partial.service';\nimport WmNetworkInfoToaster from '@wavemaker/app-rn-runtime/components/advanced/network-info-toaster/network-info-toaster.component';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport WmMessage from '@wavemaker/app-rn-runtime/components/basic/message/message.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\n\nimport { Watcher } from './watcher';\nimport { preparePatch } from './lib-patch';\nimport AppDisplayManagerService from './services/app-display-manager.service';\nimport AppModalService from './services/app-modal.service';\nimport AppToastService from './services/app-toast.service';\nimport AppPartialService from './services/partial.service';\nimport AppSpinnerService from './services/app-spinner.service';\nimport { AppNavigator } from './App.navigator';\nimport { SecurityProvider } from '../core/security.service';\nimport { CameraProvider } from '../core/device/camera-service';\nimport CameraService from './services/device/camera-service';\nimport { ScanProvider } from '../core/device/scan-service';\nimport ScanService from './services/device/scan-service';\nimport AppSecurityService from './services/app-security.service';\nimport {getValidJSON, parseErrors} from '@wavemaker/app-rn-runtime/variables/utils/variable.utils';\nimport MaterialCommunityIconsFont from '@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf';\n\nimport * as SplashScreen from 'expo-splash-screen';\nimport BasePartial from './base-partial.component';\nimport BasePage from './base-page.component';\nimport { WmMemo } from './memo.component';\n\ndeclare const window: any;\n\n//some old react libraries need this\n((View as any)['propTypes'] = { style: ProtoTypes.any})\n\nconst MIN_TIME_BETWEEN_REFRESH_CYCLES = 200;\n\nclass DrawerImpl implements Drawer {\n content: ReactNode;\n animation: string = 'slide-in';\n\n constructor(private onChange: () => void) {\n\n }\n\n setContent(content: ReactNode) {\n this.content = content;\n this.onChange();\n }\n\n getContent() {\n return this.content;\n }\n\n setAnimation(animation: string) {\n this.animation = animation;\n this.onChange();\n }\n\n getAnimation() {\n return this.animation;\n }\n}\nconst SUPPORTED_SERVICES = {\n Utils: Utils,\n StorageService: StorageService,\n AppDisplayManagerService: AppDisplayManagerService\n};\n\nexport default abstract class BaseApp extends React.Component implements NavigationService {\n\n Actions: any = {};\n Variables: any = {};\n onAppVariablesReady = () => {};\n isStarted = false;\n appConfig = injector.get<AppConfig>('APP_CONFIG');\n public baseUrl = '';\n public targetPlatform = 'NATIVE_MOBILE';\n public cleanup = [] as Function[];\n public commonPartial: BasePartial = null as any;\n private startUpVariables: string[] = [];\n private startUpActions: string[] = [];\n private autoUpdateVariables: string[] = [];\n private axiosInterceptorIds: number[] = [];\n public formatters = formatters;\n public serviceDefinitions = {} as any;\n private animatedRef: any;\n public modalsOpened: number = 0;\n public toastsOpened: number = 0;\n public watcher: Watcher = Watcher.ROOT;\n public lib = preparePatch(() => {\n this.refresh();\n });\n\n constructor(props: any) {\n super(props);\n SplashScreen.preventAutoHideAsync();\n setTimeout(() => SplashScreen.hideAsync(), 10000);\n this.appConfig.app = this;\n this.appConfig.drawer = new DrawerImpl(() => this.refresh());\n let refreshAfterWait = false;\n this.baseUrl = this.appConfig.url;\n let wait = 0;\n this.bindServiceInterceptors();\n this.appConfig.refresh = (complete = false) => {\n if (complete) {\n this.reload();\n return;\n }\n if (!wait) {\n RENDER_LOGGER.debug('refreshing the app...');\n wait = MIN_TIME_BETWEEN_REFRESH_CYCLES;\n refreshAfterWait = false;\n setTimeout(() => {\n this.forceUpdate();\n this.commonPartial?.forceUpdate();\n this.appConfig.currentPage?.forceUpdate();\n this.watcher.check();\n });\n setTimeout(() => {\n wait = 0;\n refreshAfterWait && this.appConfig.refresh();\n }, wait);\n } else {\n RENDER_LOGGER.debug('will refresh the app in the next cycle.');\n refreshAfterWait = true;\n }\n }\n }\n\n goToPage(pageName: string, params: any) {\n return this.appConfig.currentPage?.goToPage(pageName, params);\n }\n\n goBack(pageName: string, params: any) {\n return this.appConfig.currentPage?.goBack(pageName, params);\n }\n\n openUrl(url: string, params?: any) {\n return this.appConfig.currentPage?.openUrl(url, params);\n }\n\n onBeforeServiceCall(config: AxiosRequestConfig) {\n if(config.headers) config.headers['X-Requested-With'] = 'XMLHttpRequest';\n console.log('onBeforeService call invoked on ' + config.url);\n return config\n }\n\n isSkeletonEnabled() {\n return this.appConfig.spinner.loader == \"skeleton\";\n }\n\n onServiceSuccess(data: any, response: AxiosResponse) {\n\n }\n\n onServiceError(errorMsg: any, error: AxiosError<any>) {\n console.error(`Error ${errorMsg} recieved from ${error.request.url}`);\n }\n\n invokeNativeApi(key: string, data: Object) {\n if (NativeModulesProxy.EmbedCommModule \n && (Platform.OS === 'android' || Platform.OS === 'ios')) {\n return NativeModulesProxy.EmbedCommModule.sendToNative(key, data || {});\n } else {\n return Promise.reject('Not able to invoke Native API in this platform.');\n }\n }\n\n onPageReady(activePageName: string, activePageScope: BasePage) {\n\n }\n\n get spinner() {\n return AppSpinnerService;\n }\n\n openBrowser(url: string, params = {} as any) {\n if (url) {\n if (isWebPreviewMode()) {\n window.open(url, '_blank');\n } else if (url.startsWith('http') && params.target === '_blank') {\n WebBrowser.openBrowserAsync(url);\n } else {\n return Linking.openURL(url);\n }\n }\n return Promise.resolve();\n }\n\n // To support old api\n reload() {}\n\n bindServiceInterceptors() {\n this.axiosInterceptorIds = [\n axios.interceptors.request.use((config: AxiosRequestConfig) => this.onBeforeServiceCall(config)),\n axios.interceptors.response.use(\n (response: AxiosResponse) => {\n this.onServiceSuccess(response.data, response);\n return response;\n },(error: AxiosError<any>) => {\n let errorDetails: any = error.response, errMsg;\n errorDetails = getValidJSON(errorDetails?.data) || errorDetails?.data;\n if (errorDetails && errorDetails.errors) {\n errMsg = parseErrors(errorDetails.errors) || \"Service Call Failed\";\n } else {\n errMsg = errMsg || \"Service Call Failed\";\n }\n error.message = errMsg;\n this.onServiceError(error.message, error);\n if (error.response?.config.url?.startsWith(this.appConfig.url) && error.response?.status === 401) {\n this.appConfig.currentPage?.pageName !== 'Login' && this.appConfig.currentPage?.goToPage('Login');\n }\n return Promise.reject(error)\n })\n ];\n }\n\n eval(fn: Function, failOnError = false) {\n try {\n return fn.call(this);\n } catch (e) {\n if (failOnError) {\n throw e;\n } else {\n return null;\n }\n }\n }\n\n componentDidMount() {\n AppSpinnerService.show({\n spinner: this.appConfig.spinner\n });\n Promise.all(this.startUpVariables.map(s => this.Variables[s] && this.Variables[s].invoke()))\n .catch(() => {})\n .then(() => {\n this.onAppVariablesReady();\n this.isStarted = true;\n this.forceUpdate();\n }, () => {}).then(() => {\n SplashScreen.hideAsync().then(() => {});\n });\n this.startUpActions.map(a => this.Actions[a] && this.Actions[a].invoke());\n }\n\n componentWillUnmount(): void {\n this.axiosInterceptorIds.map(id => {\n axios.interceptors.request.eject(id);\n });\n this.cleanup.forEach(fn => fn());\n }\n\n refresh() {\n this.appConfig.refresh();\n }\n\n getProviders(content: React.ReactNode) {\n return (\n <NavigationServiceProvider value={this}>\n <ToastProvider value={AppToastService}>\n <PartialProvider value={AppPartialService}>\n <SecurityProvider value={AppSecurityService}>\n <CameraProvider value={CameraService}>\n <ScanProvider value={ScanService}>\n <ModalProvider value={AppModalService}>\n { content }\n </ModalProvider>\n </ScanProvider>\n </CameraProvider>\n </SecurityProvider>\n </PartialProvider>\n </ToastProvider>\n </NavigationServiceProvider>\n );\n }\n\n renderToasters() {\n this.toastsOpened = AppToastService.toastsOpened.length;\n return <WmMemo watcher={this.watcher} render={(watch) => {\n watch(() => AppToastService.refreshCount);\n return (\n <>\n {AppToastService.toastsOpened.map((o, i) =>\n this.getProviders((\n <View key={i} style={[{\n position: 'absolute',\n width: '100%',\n bottom: 0,\n elevation: o.elevationIndex,\n zIndex: o.elevationIndex\n }, o.styles]}>\n <TouchableOpacity onPress={() => o.onClick && o.onClick()}>\n {o.content}\n {o.text && <WmMessage type={o.type} caption={o.text} hideclose={true}></WmMessage>}\n </TouchableOpacity>\n </View>\n )\n ))}\n </>);\n }}/>;\n }\n\n renderDialogs(): ReactNode {\n return <WmMemo watcher={this.watcher} render={(watch) => {\n watch(() => last(AppModalService.modalsOpened)?.content);\n this.modalsOpened = AppModalService.modalsOpened.length;\n AppModalService.animatedRefs.length = 0;\n return(\n <>\n {AppModalService.modalOptions.content &&\n AppModalService.modalsOpened.map((o, i) => {\n return (\n <View key={(o.name || '') + i}\n onStartShouldSetResponder={() => true}\n onResponderEnd={() => o.isModal && AppModalService.hideModal(o)}\n style={deepCopy(styles.appModal,\n o.centered ? styles.centeredModal: null,\n o.modalStyle,\n { elevation: o.elevationIndex,\n zIndex: o.elevationIndex })}>\n <Animatedview entryanimation={o.animation || 'fadeIn'}\n ref={ref => {\n this.animatedRef = ref;\n AppModalService.animatedRefs[i] = ref;\n }}\n style={[styles.appModalContent, o.contentStyle]}>\n <View\n onStartShouldSetResponder={evt => true}\n onResponderEnd={(e) => e.stopPropagation()}\n style={{width: '100%', 'alignItems': 'center'}}>\n {this.getProviders(o.content)}\n </View>\n </Animatedview>\n </View>\n )}\n )\n }\n </>);\n }}/>;\n }\n\n renderDisplayManager(): ReactNode {\n return <WmMemo watcher={this.watcher} render={(watch) => {\n watch(() => AppDisplayManagerService.displayOptions.content);\n return AppDisplayManagerService.displayOptions.content\n ? (\n <ThemeProvider value={this.appConfig.theme}>\n <View style={[styles.displayViewContainer, {\n elevation: this.toastsOpened + this.modalsOpened + 1,\n zIndex: this.toastsOpened + this.modalsOpened + 1\n }]}>\n {AppDisplayManagerService.displayOptions.content}\n </View>\n </ThemeProvider>) : null;\n }}/>\n }\n\n renderIconsViewSupportForWeb() {\n try {\n return (<style type=\"text/css\">{`\n @font-face {\n font-family: 'MaterialCommunityIcons';\n src: url(${MaterialCommunityIconsFont}) format('truetype');\n }\n `}</style>);\n } catch (e) {\n console.log('require react-native-vector-icons could not be loaded.');\n }\n return null;\n }\n\n getSelectedLocale() {\n return this.appConfig.selectedLocale;\n }\n\n getDependency(serviceName: string): any {\n const service = get(SUPPORTED_SERVICES, serviceName);\n if (service) {\n return service;\n }\n }\n\n renderApp(commonPartial:React.ReactNode) {\n this.autoUpdateVariables.forEach(value => this.Variables[value]?.invokeOnParamChange());\n return (\n <SafeAreaProvider>\n <PaperProvider theme={{\n ...DefaultTheme,\n colors: {\n ...DefaultTheme.colors,\n primary: ThemeVariables.INSTANCE.primaryColor\n }}}>\n <React.Fragment>\n {Platform.OS === 'web' ? this.renderIconsViewSupportForWeb() : null}\n <SafeAreaInsetsContext.Consumer>\n {(insets = {top: 0, bottom: 0, left: 0, right: 0}) =>\n (this.getProviders(\n (<SafeAreaView style={{flex: 1}}>\n <StatusBar />\n <FixedViewContainer>\n <View style={styles.container}>\n <AppNavigator\n app={this}\n landingPage={(this.props as any).pageName}\n landingPageParams={(this.props as any)?.pageName && this.props}\n hideDrawer={this.appConfig.drawer?.getContent() === null}\n drawerContent={() => this.appConfig.drawer? this.getProviders(this.appConfig.drawer.getContent()) : null}\n drawerAnimation={this.appConfig.drawer?.getAnimation()}></AppNavigator>\n {commonPartial}\n {this.renderToasters()}\n {this.renderDialogs()}\n {this.renderDisplayManager()}\n </View>\n <WmNetworkInfoToaster appLocale={this.appConfig.appLocale}></WmNetworkInfoToaster>\n </FixedViewContainer>\n </SafeAreaView>))\n )\n }\n </SafeAreaInsetsContext.Consumer>\n </React.Fragment>\n </PaperProvider>\n </SafeAreaProvider>\n );\n }\n}\n\nconst styles = {\n container: {\n flex: 1\n },\n appModal: {\n position: 'absolute',\n width: '100%'\n },\n appModalContent : {\n flex: 1,\n width: '100%',\n alignItems: 'center',\n flexDirection: 'column',\n justifyContent: 'center'\n },\n centeredModal: {\n flex: 1,\n position: 'absolute',\n top: 0,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n height: '100%'\n },\n displayViewContainer: {\n position: 'absolute',\n justifyContent: 'center',\n width: '100%',\n left: 0,\n right: 0,\n top: 0,\n bottom:0\n } as ViewStyle\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","axios","Platform","TouchableOpacity","View","ProtoTypes","SafeAreaProvider","SafeAreaInsetsContext","DefaultTheme","Provider","PaperProvider","Linking","NativeModulesProxy","WebBrowser","get","last","RENDER_LOGGER","ThemeProvider","StorageService","injector","formatters","deepCopy","isWebPreviewMode","ModalProvider","FixedViewContainer","ToastProvider","NavigationServiceProvider","PartialProvider","WmNetworkInfoToaster","ThemeVariables","WmMessage","Animatedview","Watcher","preparePatch","AppDisplayManagerService","AppModalService","AppToastService","AppPartialService","AppSpinnerService","AppNavigator","SecurityProvider","CameraProvider","CameraService","ScanProvider","ScanService","AppSecurityService","getValidJSON","parseErrors","MaterialCommunityIconsFont","SplashScreen","WmMemo","style","any","MIN_TIME_BETWEEN_REFRESH_CYCLES","DrawerImpl","constructor","onChange","setContent","content","getContent","setAnimation","animation","getAnimation","SUPPORTED_SERVICES","BaseApp","Component","props","ROOT","refresh","preventAutoHideAsync","setTimeout","hideAsync","appConfig","app","drawer","refreshAfterWait","baseUrl","url","wait","bindServiceInterceptors","complete","reload","debug","forceUpdate","commonPartial","currentPage","watcher","check","goToPage","pageName","params","goBack","openUrl","onBeforeServiceCall","config","headers","console","log","isSkeletonEnabled","spinner","loader","onServiceSuccess","data","response","onServiceError","errorMsg","error","request","invokeNativeApi","key","EmbedCommModule","OS","sendToNative","Promise","reject","onPageReady","activePageName","activePageScope","openBrowser","window","open","startsWith","target","openBrowserAsync","openURL","resolve","axiosInterceptorIds","interceptors","use","errorDetails","errMsg","errors","message","status","eval","fn","failOnError","call","e","componentDidMount","show","all","startUpVariables","map","s","Variables","invoke","catch","then","onAppVariablesReady","isStarted","startUpActions","a","Actions","componentWillUnmount","id","eject","cleanup","forEach","getProviders","renderToasters","toastsOpened","length","watch","refreshCount","o","i","position","width","bottom","elevation","elevationIndex","zIndex","styles","onClick","text","type","renderDialogs","modalsOpened","animatedRefs","modalOptions","name","isModal","hideModal","appModal","centered","centeredModal","modalStyle","ref","animatedRef","appModalContent","contentStyle","evt","stopPropagation","renderDisplayManager","displayOptions","theme","displayViewContainer","renderIconsViewSupportForWeb","getSelectedLocale","selectedLocale","getDependency","serviceName","service","renderApp","autoUpdateVariables","value","invokeOnParamChange","colors","primary","INSTANCE","primaryColor","insets","top","left","right","container","paddingTop","paddingBottom","paddingLeft","paddingRight","appLocale","flex","alignItems","flexDirection","justifyContent","backgroundColor","height"],"sources":["App.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\nimport { Platform, TouchableOpacity, View, ViewStyle } from 'react-native';\nimport ProtoTypes from 'prop-types';\nimport { SafeAreaProvider, SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport { DefaultTheme, Provider as PaperProvider } from 'react-native-paper';\nimport { Linking } from 'react-native';\nimport { NativeModulesProxy } from 'expo-modules-core';\nimport * as WebBrowser from 'expo-web-browser';\nimport { get, last } from 'lodash';\nimport { RENDER_LOGGER } from '@wavemaker/app-rn-runtime/core/logger';\nimport { ThemeProvider } from '@wavemaker/app-rn-runtime/styles/theme';\nimport AppConfig, { Drawer } from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport StorageService from '@wavemaker/app-rn-runtime/core/storage.service';\nimport NetworkService from '@wavemaker/app-rn-runtime/core/network.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport formatters from '@wavemaker/app-rn-runtime/core/formatters';\nimport { deepCopy, isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { ModalProvider } from '@wavemaker/app-rn-runtime/core/modal.service';\nimport { FixedViewContainer } from '@wavemaker/app-rn-runtime/core/fixed-view.component';\nimport { ToastProvider } from '@wavemaker/app-rn-runtime/core/toast.service';\nimport NavigationService, { NavigationServiceProvider } from '@wavemaker/app-rn-runtime/core/navigation.service';\nimport { PartialProvider } from '@wavemaker/app-rn-runtime/core/partial.service';\nimport WmNetworkInfoToaster from '@wavemaker/app-rn-runtime/components/advanced/network-info-toaster/network-info-toaster.component';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport WmMessage from '@wavemaker/app-rn-runtime/components/basic/message/message.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\n\nimport { Watcher } from './watcher';\nimport { preparePatch } from './lib-patch';\nimport AppDisplayManagerService from './services/app-display-manager.service';\nimport AppModalService from './services/app-modal.service';\nimport AppToastService from './services/app-toast.service';\nimport AppPartialService from './services/partial.service';\nimport AppSpinnerService from './services/app-spinner.service';\nimport { AppNavigator } from './App.navigator';\nimport { SecurityProvider } from '../core/security.service';\nimport { CameraProvider } from '../core/device/camera-service';\nimport CameraService from './services/device/camera-service';\nimport { ScanProvider } from '../core/device/scan-service';\nimport ScanService from './services/device/scan-service';\nimport AppSecurityService from './services/app-security.service';\nimport {getValidJSON, parseErrors} from '@wavemaker/app-rn-runtime/variables/utils/variable.utils';\nimport MaterialCommunityIconsFont from '@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf';\n\nimport * as SplashScreen from 'expo-splash-screen';\nimport BasePartial from './base-partial.component';\nimport BasePage from './base-page.component';\nimport { WmMemo } from './memo.component';\n\ndeclare const window: any;\n\n//some old react libraries need this\n((View as any)['propTypes'] = { style: ProtoTypes.any})\n\nconst MIN_TIME_BETWEEN_REFRESH_CYCLES = 200;\n\nclass DrawerImpl implements Drawer {\n content: ReactNode;\n animation: string = 'slide-in';\n\n constructor(private onChange: () => void) {\n\n }\n\n setContent(content: ReactNode) {\n this.content = content;\n this.onChange();\n }\n\n getContent() {\n return this.content;\n }\n\n setAnimation(animation: string) {\n this.animation = animation;\n this.onChange();\n }\n\n getAnimation() {\n return this.animation;\n }\n}\nconst SUPPORTED_SERVICES = { StorageService: StorageService,\n AppDisplayManagerService: AppDisplayManagerService\n };\n\nexport default abstract class BaseApp extends React.Component implements NavigationService {\n\n Actions: any = {};\n Variables: any = {};\n onAppVariablesReady = () => {};\n isStarted = false;\n appConfig = injector.get<AppConfig>('APP_CONFIG');\n public baseUrl = '';\n public targetPlatform = 'NATIVE_MOBILE';\n public cleanup = [] as Function[];\n public commonPartial: BasePartial = null as any;\n private startUpVariables: string[] = [];\n private startUpActions: string[] = [];\n private autoUpdateVariables: string[] = [];\n private axiosInterceptorIds: number[] = [];\n public formatters = formatters;\n public serviceDefinitions = {} as any;\n private animatedRef: any;\n public modalsOpened: number = 0;\n public toastsOpened: number = 0;\n public watcher: Watcher = Watcher.ROOT;\n public lib = preparePatch(() => {\n this.refresh();\n });\n\n constructor(props: any) {\n super(props);\n SplashScreen.preventAutoHideAsync();\n setTimeout(() => SplashScreen.hideAsync(), 10000);\n this.appConfig.app = this;\n this.appConfig.drawer = new DrawerImpl(() => this.refresh());\n let refreshAfterWait = false;\n this.baseUrl = this.appConfig.url;\n let wait = 0;\n this.bindServiceInterceptors();\n this.appConfig.refresh = (complete = false) => {\n if (complete) {\n this.reload();\n return;\n }\n if (!wait) {\n RENDER_LOGGER.debug('refreshing the app...');\n wait = MIN_TIME_BETWEEN_REFRESH_CYCLES;\n refreshAfterWait = false;\n setTimeout(() => {\n this.forceUpdate();\n this.commonPartial?.forceUpdate();\n this.appConfig.currentPage?.forceUpdate();\n this.watcher.check();\n });\n setTimeout(() => {\n wait = 0;\n refreshAfterWait && this.appConfig.refresh();\n }, wait);\n } else {\n RENDER_LOGGER.debug('will refresh the app in the next cycle.');\n refreshAfterWait = true;\n }\n }\n }\n\n goToPage(pageName: string, params: any) {\n return this.appConfig.currentPage?.goToPage(pageName, params);\n }\n\n goBack(pageName: string, params: any) {\n return this.appConfig.currentPage?.goBack(pageName, params);\n }\n\n openUrl(url: string, params?: any) {\n return this.appConfig.currentPage?.openUrl(url, params);\n }\n\n onBeforeServiceCall(config: AxiosRequestConfig) {\n if(config.headers) config.headers['X-Requested-With'] = 'XMLHttpRequest';\n console.log('onBeforeService call invoked on ' + config.url);\n return config\n }\n\n isSkeletonEnabled() {\n return this.appConfig.spinner.loader == \"skeleton\";\n }\n\n onServiceSuccess(data: any, response: AxiosResponse) {\n\n }\n\n onServiceError(errorMsg: any, error: AxiosError<any>) {\n console.error(`Error ${errorMsg} recieved from ${error.request.url}`);\n }\n\n invokeNativeApi(key: string, data: Object) {\n if (NativeModulesProxy.EmbedCommModule \n && (Platform.OS === 'android' || Platform.OS === 'ios')) {\n return NativeModulesProxy.EmbedCommModule.sendToNative(key, data || {});\n } else {\n return Promise.reject('Not able to invoke Native API in this platform.');\n }\n }\n\n onPageReady(activePageName: string, activePageScope: BasePage) {\n\n }\n\n get spinner() {\n return AppSpinnerService;\n }\n\n openBrowser(url: string, params = {} as any) {\n if (url) {\n if (isWebPreviewMode()) {\n window.open(url, '_blank');\n } else if (url.startsWith('http') && params.target === '_blank') {\n WebBrowser.openBrowserAsync(url);\n } else {\n return Linking.openURL(url);\n }\n }\n return Promise.resolve();\n }\n\n // To support old api\n reload() {}\n\n bindServiceInterceptors() {\n this.axiosInterceptorIds = [\n axios.interceptors.request.use((config: AxiosRequestConfig) => this.onBeforeServiceCall(config)),\n axios.interceptors.response.use(\n (response: AxiosResponse) => {\n this.onServiceSuccess(response.data, response);\n return response;\n },(error: AxiosError<any>) => {\n let errorDetails: any = error.response, errMsg;\n errorDetails = getValidJSON(errorDetails?.data) || errorDetails?.data;\n if (errorDetails && errorDetails.errors) {\n errMsg = parseErrors(errorDetails.errors) || \"Service Call Failed\";\n } else {\n errMsg = errMsg || \"Service Call Failed\";\n }\n error.message = errMsg;\n this.onServiceError(error.message, error);\n if (error.response?.config.url?.startsWith(this.appConfig.url) && error.response?.status === 401) {\n this.appConfig.currentPage?.pageName !== 'Login' && this.appConfig.currentPage?.goToPage('Login');\n }\n return Promise.reject(error)\n })\n ];\n }\n\n eval(fn: Function, failOnError = false) {\n try {\n return fn.call(this);\n } catch (e) {\n if (failOnError) {\n throw e;\n } else {\n return null;\n }\n }\n }\n\n componentDidMount() {\n AppSpinnerService.show({\n spinner: this.appConfig.spinner\n });\n Promise.all(this.startUpVariables.map(s => this.Variables[s] && this.Variables[s].invoke()))\n .catch(() => {})\n .then(() => {\n this.onAppVariablesReady();\n this.isStarted = true;\n this.forceUpdate();\n }, () => {}).then(() => {\n SplashScreen.hideAsync().then(() => {});\n });\n this.startUpActions.map(a => this.Actions[a] && this.Actions[a].invoke());\n }\n\n componentWillUnmount(): void {\n this.axiosInterceptorIds.map(id => {\n axios.interceptors.request.eject(id);\n });\n this.cleanup.forEach(fn => fn());\n }\n\n refresh() {\n this.appConfig.refresh();\n }\n\n getProviders(content: React.ReactNode) {\n return (\n <NavigationServiceProvider value={this}>\n <ToastProvider value={AppToastService}>\n <PartialProvider value={AppPartialService}>\n <SecurityProvider value={AppSecurityService}>\n <CameraProvider value={CameraService}>\n <ScanProvider value={ScanService}>\n <ModalProvider value={AppModalService}>\n { content }\n </ModalProvider>\n </ScanProvider>\n </CameraProvider>\n </SecurityProvider>\n </PartialProvider>\n </ToastProvider>\n </NavigationServiceProvider>\n );\n }\n\n renderToasters() {\n this.toastsOpened = AppToastService.toastsOpened.length;\n return <WmMemo watcher={this.watcher} render={(watch) => {\n watch(() => AppToastService.refreshCount);\n return (\n <>\n {AppToastService.toastsOpened.map((o, i) =>\n (\n <View key={i} style={[{\n position: 'absolute',\n width: '100%',\n bottom: 0,\n elevation: o.elevationIndex,\n zIndex: o.elevationIndex\n }, o.styles]}>\n <TouchableOpacity onPress={() => o.onClick && o.onClick()}>\n {o.content}\n {o.text && <WmMessage type={o.type} caption={o.text} hideclose={true}></WmMessage>}\n </TouchableOpacity>\n </View>\n )\n )}\n </>);\n }}/>;\n }\n\n renderDialogs(): ReactNode {\n return <WmMemo watcher={this.watcher} render={(watch) => {\n watch(() => last(AppModalService.modalsOpened)?.content);\n this.modalsOpened = AppModalService.modalsOpened.length;\n AppModalService.animatedRefs.length = 0;\n return(\n <>\n {AppModalService.modalOptions.content &&\n AppModalService.modalsOpened.map((o, i) => {\n return (\n <View key={(o.name || '') + i}\n onStartShouldSetResponder={() => true}\n onResponderEnd={() => o.isModal && AppModalService.hideModal(o)}\n style={deepCopy(styles.appModal,\n o.centered ? styles.centeredModal: null,\n o.modalStyle,\n { elevation: o.elevationIndex,\n zIndex: o.elevationIndex })}>\n <Animatedview entryanimation={o.animation || 'fadeIn'}\n ref={ref => {\n this.animatedRef = ref;\n AppModalService.animatedRefs[i] = ref;\n }}\n style={[styles.appModalContent, o.contentStyle]}>\n <View\n onStartShouldSetResponder={evt => true}\n onResponderEnd={(e) => e.stopPropagation()}\n style={{width: '100%', 'alignItems': 'center'}}>\n {this.getProviders(o.content)}\n </View>\n </Animatedview>\n </View>\n )}\n )\n }\n </>);\n }}/>;\n }\n\n renderDisplayManager(): ReactNode {\n return <WmMemo watcher={this.watcher} render={(watch) => {\n watch(() => AppDisplayManagerService.displayOptions.content);\n return AppDisplayManagerService.displayOptions.content\n ? (\n <ThemeProvider value={this.appConfig.theme}>\n <View style={[styles.displayViewContainer, {\n elevation: this.toastsOpened + this.modalsOpened + 1,\n zIndex: this.toastsOpened + this.modalsOpened + 1\n }]}>\n {AppDisplayManagerService.displayOptions.content}\n </View>\n </ThemeProvider>) : null;\n }}/>\n }\n\n renderIconsViewSupportForWeb() {\n try {\n return (<style type=\"text/css\">{`\n @font-face {\n font-family: 'MaterialCommunityIcons';\n src: url(${MaterialCommunityIconsFont}) format('truetype');\n }\n `}</style>);\n } catch (e) {\n console.log('require react-native-vector-icons could not be loaded.');\n }\n return null;\n }\n\n getSelectedLocale() {\n return this.appConfig.selectedLocale;\n }\n\n getDependency(serviceName: string): any {\n const service = get(SUPPORTED_SERVICES, serviceName);\n if (service) {\n return service;\n }\n }\n\n renderApp(commonPartial:React.ReactNode) {\n this.autoUpdateVariables.forEach(value => this.Variables[value]?.invokeOnParamChange());\n return (\n <SafeAreaProvider>\n <PaperProvider theme={{\n ...DefaultTheme,\n colors: {\n ...DefaultTheme.colors,\n primary: ThemeVariables.INSTANCE.primaryColor\n }}}>\n <React.Fragment>\n {Platform.OS === 'web' ? this.renderIconsViewSupportForWeb() : null}\n <SafeAreaInsetsContext.Consumer>\n {(insets = {top: 0, bottom: 0, left: 0, right: 0}) =>\n (this.getProviders(\n (<FixedViewContainer>\n <View style={[styles.container, {paddingTop: insets?.top || 0, paddingBottom: insets?.bottom, paddingLeft: insets?.left, paddingRight : insets?.right}]}>\n <View style={styles.container}>\n <AppNavigator\n app={this}\n landingPage={(this.props as any).pageName}\n landingPageParams={(this.props as any)?.pageName && this.props}\n hideDrawer={this.appConfig.drawer?.getContent() === null}\n drawerContent={() => this.appConfig.drawer? this.getProviders(this.appConfig.drawer.getContent()) : null}\n drawerAnimation={this.appConfig.drawer?.getAnimation()}></AppNavigator>\n {commonPartial}\n </View> \n <WmNetworkInfoToaster appLocale={this.appConfig.appLocale}></WmNetworkInfoToaster>\n </View>\n </FixedViewContainer>))\n )\n }\n </SafeAreaInsetsContext.Consumer>\n {this.renderToasters()}\n {this.renderDialogs()}\n {this.renderDisplayManager()}\n </React.Fragment>\n </PaperProvider>\n </SafeAreaProvider>\n );\n }\n}\n\nconst styles = {\n container: {\n flex: 1\n },\n appModal: {\n position: 'absolute',\n width: '100%'\n },\n appModalContent : {\n flex: 1,\n width: '100%',\n alignItems: 'center',\n flexDirection: 'column',\n justifyContent: 'center'\n },\n centeredModal: {\n flex: 1,\n position: 'absolute',\n top: 0,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.4)',\n height: '100%'\n },\n displayViewContainer: {\n position: 'absolute',\n justifyContent: 'center',\n width: '100%',\n left: 0,\n right: 0,\n top: 0,\n bottom:0\n } as ViewStyle\n};\n"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
- import { Platform, View } from 'react-native';
2
+ import { Platform, View, StatusBar } from 'react-native';
3
3
  import { NavigationContainer } from '@react-navigation/native';
4
4
  import { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';
5
5
  import injector from '@wavemaker/app-rn-runtime/core/injector';
6
6
  import AppDrawerNavigator from './navigator/drawer.navigator';
7
7
  import AppStackNavigator from './navigator/stack.navigator';
8
+ import { SafeAreaView } from 'react-native-safe-area-context';
8
9
  import { isEmpty, keys, last } from 'lodash';
9
10
  const getNavigationState = (pageName, params) => {
10
11
  return {
@@ -88,7 +89,16 @@ export const AppNavigator = props => {
88
89
  const leftNav = /*#__PURE__*/React.createElement(AppDrawerNavigator, {
89
90
  type: props.drawerAnimation === 'slide-over' ? 'front' : 'slide',
90
91
  hide: props.hideDrawer,
91
- content: () => props.drawerContent && props.drawerContent() || /*#__PURE__*/React.createElement(View, null),
92
+ content: () => /*#__PURE__*/React.createElement(SafeAreaView, {
93
+ style: [{
94
+ flex: 1
95
+ }, Platform.OS === 'ios' ? {
96
+ paddingTop: -40
97
+ } : {}]
98
+ }, /*#__PURE__*/React.createElement(StatusBar, {
99
+ barStyle: "light-content",
100
+ backgroundColor: "#000000"
101
+ }), props.drawerContent && props.drawerContent() || /*#__PURE__*/React.createElement(View, null)),
92
102
  rootComponent: stack
93
103
  });
94
104
  const initialState = props.landingPage && Platform.OS !== 'web' ? getNavigationState(props.landingPage, props.landingPageParams) : undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","View","NavigationContainer","isWebPreviewMode","injector","AppDrawerNavigator","AppStackNavigator","isEmpty","keys","last","getNavigationState","pageName","params","routes","name","state","index","getStateFromPath","path","options","hash","window","location","substring","startsWith","paramstr","split","forEach","p","k","v","getPathFromState","pagesRoute","pageRoute","href","map","join","setTimeout","id","history","replaceState","AppNavigator","props","appConfig","get","pages","linking","prefixes","appId","config","screens","undefined","stack","landingPage","leftNav","drawerAnimation","hideDrawer","drawerContent","initialState","OS","landingPageParams"],"sources":["App.navigator.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Platform, View } from 'react-native';\nimport { NavigationContainer } from '@react-navigation/native';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppDrawerNavigator from './navigator/drawer.navigator';\nimport AppStackNavigator from './navigator/stack.navigator';\nimport { isEmpty, keys, last } from 'lodash';\n\ndeclare const window: any;\n\nexport interface AppNavigatorProps {\n drawerContent: () => ReactNode;\n drawerAnimation: string;\n hideDrawer: boolean;\n landingPage?: string;\n landingPageParams?: any;\n app: any;\n}\n\nconst getNavigationState = (pageName: string, params: any) => {\n return {\n routes: [{\n name: 'pages',\n state: {\n index: 0,\n routes: [{\n name: pageName,\n params: params\n }]\n }\n }]\n };\n};\n\nconst getStateFromPath = (path: string, options?: any) => {\n let hash: string = window.location.hash;\n hash = hash.substring(1);\n if (hash && hash.startsWith('/')) {\n hash = hash.substring(1);\n }\n if (!hash) {\n return;\n }\n let [pageName, paramstr] = hash.split('?');\n let params = {} as any;\n if (paramstr) {\n paramstr.split('&').forEach((p) => {\n const [k, v] = p.split('=');\n params[k] = v;\n });\n }\n return getNavigationState(pageName, params);\n};\n\nconst getPathFromState = (state: any, options: any) => {\n const pagesRoute = state?.routes[0];\n const pageRoute: any = last(pagesRoute?.state.routes);\n let path = '';\n if (pageRoute) {\n path = window.location.href.split('#')[0] + '#/'+ pageRoute.name;\n if (!isEmpty(pageRoute.params)) {\n path += '?' + keys(pageRoute.params).map((k) => {\n return `${k}=${pageRoute.params[k]}`\n }).join('&');\n }\n }\n setTimeout(() => { \n const id = window.history.state?.id;\n window.history.replaceState({id}, null, path);\n });\n return path;\n};\n\nexport const AppNavigator = (props: AppNavigatorProps) => {\n const appConfig = injector.get<AppConfig>('APP_CONFIG');\n const pages = {};\n const linking = {\n prefixes: [`${appConfig.appId}://`],\n config: {\n screens: {\n \"pages\": {\n path: \"pages\",\n screens: pages\n }\n }\n },\n getStateFromPath: isWebPreviewMode() ? getStateFromPath : undefined,\n getPathFromState: isWebPreviewMode()? getPathFromState: undefined\n } as any;\n appConfig.pages?.forEach((p) => {\n //@ts-ignore\n pages[p.name] = p.name;\n });\n const stack = (<AppStackNavigator\n pages={appConfig.pages || []}\n landingPage={appConfig.landingPage}></AppStackNavigator>);\n const leftNav = (<AppDrawerNavigator\n type={props.drawerAnimation === 'slide-over' ? 'front' : 'slide'}\n hide={props.hideDrawer}\n content={() => (props.drawerContent && props.drawerContent()) || (<View/>)}\n rootComponent={stack}/>);\n const initialState = props.landingPage && Platform.OS !== 'web' ? \n getNavigationState(props.landingPage, props.landingPageParams)\n : undefined;\n return (<NavigationContainer initialState={initialState} linking={linking}>{leftNav}</NavigationContainer>);\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Platform","View","StatusBar","NavigationContainer","isWebPreviewMode","injector","AppDrawerNavigator","AppStackNavigator","SafeAreaView","isEmpty","keys","last","getNavigationState","pageName","params","routes","name","state","index","getStateFromPath","path","options","hash","window","location","substring","startsWith","paramstr","split","forEach","p","k","v","getPathFromState","pagesRoute","pageRoute","href","map","join","setTimeout","id","history","replaceState","AppNavigator","props","appConfig","get","pages","linking","prefixes","appId","config","screens","undefined","stack","landingPage","leftNav","drawerAnimation","hideDrawer","flex","OS","paddingTop","drawerContent","initialState","landingPageParams"],"sources":["App.navigator.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Platform, View, StatusBar } from 'react-native';\nimport { NavigationContainer } from '@react-navigation/native';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppDrawerNavigator from './navigator/drawer.navigator';\nimport AppStackNavigator from './navigator/stack.navigator';\nimport { SafeAreaView } from 'react-native-safe-area-context';\nimport { isEmpty, keys, last } from 'lodash';\n\ndeclare const window: any;\n\nexport interface AppNavigatorProps {\n drawerContent: () => ReactNode;\n drawerAnimation: string;\n hideDrawer: boolean;\n landingPage?: string;\n landingPageParams?: any;\n app: any;\n}\n\nconst getNavigationState = (pageName: string, params: any) => {\n return {\n routes: [{\n name: 'pages',\n state: {\n index: 0,\n routes: [{\n name: pageName,\n params: params\n }]\n }\n }]\n };\n};\n\nconst getStateFromPath = (path: string, options?: any) => {\n let hash: string = window.location.hash;\n hash = hash.substring(1);\n if (hash && hash.startsWith('/')) {\n hash = hash.substring(1);\n }\n if (!hash) {\n return;\n }\n let [pageName, paramstr] = hash.split('?');\n let params = {} as any;\n if (paramstr) {\n paramstr.split('&').forEach((p) => {\n const [k, v] = p.split('=');\n params[k] = v;\n });\n }\n return getNavigationState(pageName, params);\n};\n\nconst getPathFromState = (state: any, options: any) => {\n const pagesRoute = state?.routes[0];\n const pageRoute: any = last(pagesRoute?.state.routes);\n let path = '';\n if (pageRoute) {\n path = window.location.href.split('#')[0] + '#/'+ pageRoute.name;\n if (!isEmpty(pageRoute.params)) {\n path += '?' + keys(pageRoute.params).map((k) => {\n return `${k}=${pageRoute.params[k]}`\n }).join('&');\n }\n }\n setTimeout(() => { \n const id = window.history.state?.id;\n window.history.replaceState({id}, null, path);\n });\n return path;\n};\n\nexport const AppNavigator = (props: AppNavigatorProps) => {\n const appConfig = injector.get<AppConfig>('APP_CONFIG');\n const pages = {};\n const linking = {\n prefixes: [`${appConfig.appId}://`],\n config: {\n screens: {\n \"pages\": {\n path: \"pages\",\n screens: pages\n }\n }\n },\n getStateFromPath: isWebPreviewMode() ? getStateFromPath : undefined,\n getPathFromState: isWebPreviewMode()? getPathFromState: undefined\n } as any;\n appConfig.pages?.forEach((p) => {\n //@ts-ignore\n pages[p.name] = p.name;\n });\n const stack = (<AppStackNavigator\n pages={appConfig.pages || []}\n landingPage={appConfig.landingPage}></AppStackNavigator>);\n const leftNav = (<AppDrawerNavigator\n type={props.drawerAnimation === 'slide-over' ? 'front' : 'slide'}\n hide={props.hideDrawer}\n content={() => (<SafeAreaView style={[{flex: 1}, Platform.OS === 'ios' ? {paddingTop: -40} : {}]}>\n <StatusBar barStyle=\"light-content\" backgroundColor=\"#000000\" />\n {(props.drawerContent && props.drawerContent()) || (<View/>)}\n </SafeAreaView>)}\n rootComponent={stack}/>);\n const initialState = props.landingPage && Platform.OS !== 'web' ? \n getNavigationState(props.landingPage, props.landingPageParams)\n : undefined;\n return (<NavigationContainer initialState={initialState} linking={linking}>{leftNav}</NavigationContainer>);\n};\n"],"mappings":"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"}
@@ -6,7 +6,6 @@ import { ImageBackground, TouchableOpacity, View } from "react-native";
6
6
  import { Ionicons } from "@expo/vector-icons";
7
7
  import { ResizeMode, Video } from "expo-av";
8
8
  import { Camera, CameraType } from "expo-camera";
9
- import * as FileSystem from "expo-file-system";
10
9
  import permissionManager from '@wavemaker/app-rn-runtime/runtime/services/device/permissions';
11
10
  import appDisplayManagerService from "@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service";
12
11
  const styles = {
@@ -37,17 +36,14 @@ const styles = {
37
36
  },
38
37
  leftWrapper: {
39
38
  flex: 1,
40
- justifyContent: 'center',
41
39
  alignItems: 'flex-start'
42
40
  },
43
41
  midWrapper: {
44
42
  flex: 1,
45
- justifyContent: 'center',
46
43
  alignItems: 'center'
47
44
  },
48
45
  rightWrapper: {
49
46
  flex: 1,
50
- justifyContent: 'center',
51
47
  alignItems: 'flex-end'
52
48
  },
53
49
  circle: {
@@ -83,12 +79,8 @@ export class CameraService {
83
79
  captureType: 'video',
84
80
  onSuccess: o => {
85
81
  destroy.call(this.displayManager);
86
- /*o.content().catch(() => {}).then(base64 => {
87
- resolve({videoPath: o.uri, content: base64 || ''});
88
- });*/
89
82
  resolve({
90
- videoPath: o.uri,
91
- content: ''
83
+ videoPath: o.uri
92
84
  });
93
85
  },
94
86
  onCancel: () => {
@@ -108,11 +100,8 @@ export class CameraService {
108
100
  captureType: 'image',
109
101
  onSuccess: o => {
110
102
  destroy.call(this.displayManager);
111
- o.content().catch(() => {}).then(base64 => {
112
- resolve({
113
- imagePath: o.uri,
114
- content: base64 || ''
115
- });
103
+ resolve({
104
+ imagePath: o.uri
116
105
  });
117
106
  },
118
107
  onCancel: () => {
@@ -148,11 +137,6 @@ export class CameraView extends React.Component {
148
137
  _defineProperty(this, "camera", {});
149
138
  _defineProperty(this, "startRecord", async () => {
150
139
  this.camera.recordAsync().then(response => {
151
- response.content = async () => {
152
- return await FileSystem.readAsStringAsync(response.uri, {
153
- encoding: 'base64'
154
- });
155
- };
156
140
  this.setState({
157
141
  cameraContent: response,
158
142
  isCaptured: true
@@ -198,15 +182,9 @@ export class CameraView extends React.Component {
198
182
  base64: false,
199
183
  skipProcessing: true,
200
184
  onPictureSaved: response => {
201
- response.content = async () => {
202
- return await FileSystem.readAsStringAsync(response.uri, {
203
- encoding: 'base64'
204
- });
205
- };
206
185
  this.setState({
207
186
  cameraContent: response,
208
- isCaptured: true,
209
- showActionBtns: true
187
+ isCaptured: true
210
188
  });
211
189
  }
212
190
  };
@@ -292,7 +270,7 @@ export class CameraView extends React.Component {
292
270
  source: {
293
271
  uri: this.state.cameraContent.uri
294
272
  },
295
- resizeMode: ResizeMode.CONTAIN,
273
+ resizeMode: ResizeMode.COVER,
296
274
  style: {
297
275
  flex: 1
298
276
  }
@@ -306,7 +284,7 @@ export class CameraView extends React.Component {
306
284
  shouldPlay: true,
307
285
  useNativeControls: true,
308
286
  isLooping: true,
309
- resizeMode: ResizeMode.CONTAIN
287
+ resizeMode: ResizeMode.COVER
310
288
  });
311
289
  }
312
290
  render() {
@@ -1 +1 @@
1
- {"version":3,"names":["React","ImageBackground","TouchableOpacity","View","Ionicons","ResizeMode","Video","Camera","CameraType","FileSystem","permissionManager","appDisplayManagerService","styles","preview","top","left","right","flexGrow","backgroundColor","actionBtn","flex","padding","paddingHorizontal","alignSelf","margin","actionBar","flexDirection","justifyContent","position","bottom","leftWrapper","alignItems","midWrapper","rightWrapper","circle","display","outerCircle","borderWidth","height","width","borderRadius","borderColor","innerCircle","CameraService","constructor","displayManager","back","captureVideo","options","Promise","resolve","reject","requestPermissions","then","destroy","show","content","type","o","call","videoPath","uri","captureImage","params","catch","base64","imagePath","CameraViewProps","CameraViewState","CameraView","Component","props","camera","recordAsync","response","readAsStringAsync","encoding","setState","cameraContent","isCaptured","state","showActionBtns","recording","stopRecording","toggleCapture","captureType","takePicture","startRecord","stopRecord","quality","skipProcessing","onPictureSaved","takePictureAsync","getActionsTemplate","closeView","onCancel","bind","onSuccess","cameraType","getPreviewTemplate","actions","CONTAIN","render","ref","cameraService"],"sources":["camera-service.tsx"],"sourcesContent":["import React from \"react\";\nimport { ImageBackground, TouchableOpacity, View, ViewStyle } from \"react-native\";\nimport { Ionicons } from \"@expo/vector-icons\";\nimport { ResizeMode, Video } from \"expo-av\";\nimport { Camera, CameraType } from \"expo-camera\";\nimport * as FileSystem from \"expo-file-system\";\n\nimport { DisplayManager } from \"@wavemaker/app-rn-runtime/core/display.manager\";\nimport { CaptureVideoOutput } from \"@wavemaker/app-rn-runtime/variables/device/camera/capture-video.operation\";\nimport { CaptureImageOutput } from \"@wavemaker/app-rn-runtime/variables/device/camera/capture-image.operation\";\nimport permissionManager from '@wavemaker/app-rn-runtime/runtime/services/device/permissions';\nimport { CameraInput } from \"@wavemaker/app-rn-runtime/core/device/camera-service\";\nimport { Input } from \"@wavemaker/app-rn-runtime/variables/device/operation.provider\";\nimport appDisplayManagerService from \"@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service\";\nconst styles = {\n preview: {\n top: 0,\n left: 0,\n right: 0,\n flexGrow: 1,\n backgroundColor: 'black'\n },\n actionBtn: {\n flex: 0,\n padding: 15,\n paddingHorizontal: 20,\n alignSelf: 'center',\n margin: 20,\n } as ViewStyle,\n actionBar: {\n flex: 0,\n flexDirection: 'row',\n justifyContent: 'center',\n backgroundColor: 'rgba(0,0,0,0.6)',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n padding: 20\n } as ViewStyle,\n leftWrapper: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'flex-start',\n } as ViewStyle,\n midWrapper: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n } as ViewStyle,\n rightWrapper: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'flex-end',\n } as ViewStyle,\n circle: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n } as ViewStyle,\n outerCircle: {\n borderWidth: 3,\n height: 50,\n width: 50,\n borderRadius: 25,\n borderColor: 'white'\n },\n innerCircle: {\n borderRadius:2,\n height: 20,\n width:20,\n backgroundColor: 'red'\n }\n};\n\nexport interface CameraVideoInput extends Input {}\n\nexport class CameraService {\n private type= CameraType.back;\n\n constructor(private displayManager: DisplayManager) {\n }\n\n public captureVideo(options?: CameraVideoInput): Promise<CaptureVideoOutput> {\n return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('video').then(() => {\n const destroy = this.displayManager.show({\n content: (<CameraView type={this.type} captureType={'video'} onSuccess={(o) => {\n destroy.call(this.displayManager);\n /*o.content().catch(() => {}).then(base64 => {\n resolve({videoPath: o.uri, content: base64 || ''});\n });*/\n resolve({videoPath: o.uri, content: ''});\n }}\n onCancel={() => {\n destroy.call(this.displayManager);\n }}\n ></CameraView>)\n });\n }, reject);\n });\n }\n\n public captureImage(params: CameraInput): Promise<CaptureImageOutput> {\n return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('image').then(() => {\n const destroy = this.displayManager.show({\n content: (<CameraView type={this.type} captureType={'image'} onSuccess={(o) => {\n destroy.call(this.displayManager);\n o.content().catch(() => {}).then(base64 => {\n resolve({imagePath: o.uri, content: base64 || ''});\n });\n }} onCancel={() => {destroy.call(this.displayManager);}}\n ></CameraView>)\n });\n }, reject);\n });\n }\n}\n\ninterface CameraOutput {\n uri: string;\n content: () => Promise<string>;\n}\n\nclass CameraViewProps {\n type: 'front' | 'back' = 'back' as CameraType;\n captureType: 'image' | 'video' = 'image';\n onSuccess: (o: CameraOutput) => any = () => {};\n onCancel: () => any = () => {};\n}\n\nclass CameraViewState {\n recording: boolean = false;\n showActionBtns: boolean = false;\n cameraType: CameraType = CameraType.back;\n isCaptured: boolean = false;\n closeView: boolean = false;\n cameraContent: CameraOutput = {} as CameraOutput;\n}\n\nexport class CameraView extends React.Component<CameraViewProps, CameraViewState> {\n private camera: Camera = {} as Camera;\n\n constructor(props: CameraViewProps) {\n super(props);\n this.state = new CameraViewState();\n }\n\n toggleCapture() {\n if (this.props.captureType === 'image') {\n this.takePicture();\n } else {\n if (!this.state.recording) {\n this.startRecord();\n } else {\n this.stopRecord();\n this.setState({showActionBtns: true} as CameraViewState);\n }\n }\n }\n\n async takePicture() {\n const options = {\n quality: 0.5,\n base64: false,\n skipProcessing: true,\n onPictureSaved: (response: any) => {\n response.content = async () => {\n return await FileSystem.readAsStringAsync(response.uri, { encoding: 'base64' });\n };\n this.setState({ \n cameraContent: response,\n isCaptured: true,\n showActionBtns: true } as CameraViewState);\n }\n }\n await this.camera.takePictureAsync(options);\n\n if (this.state.showActionBtns) {\n this.setState({showActionBtns: false} as CameraViewState);\n }\n this.setState({showActionBtns: true} as CameraViewState);\n }\n\n // start recording\n startRecord = async () => {\n this.camera.recordAsync().then((response: any) => {\n response.content = async () => {\n return await FileSystem.readAsStringAsync(response.uri, { encoding: 'base64' });\n };\n this.setState({ cameraContent: response, isCaptured: true } as CameraViewState);\n });\n if (this.state.showActionBtns) {\n this.setState({showActionBtns: false} as CameraViewState);\n }\n\n this.setState({recording: true} as CameraViewState);\n };\n\n // stop recording\n stopRecord = async () => {\n this.camera.stopRecording();\n this.setState({recording: false} as CameraViewState);\n this.setState({showActionBtns: true} as CameraViewState);\n };\n\n getActionsTemplate() {\n return <View style={styles.actionBar}>\n <View style={styles.leftWrapper}>\n <TouchableOpacity\n onPress={() => {\n this.setState({ cameraContent: {uri: ''}, isCaptured: false, closeView: true } as CameraViewState);\n this.props.onCancel();\n }}>\n <Ionicons name='close-circle' size={32} color='white' />\n </TouchableOpacity>\n </View>\n <View style={styles.midWrapper}>\n {!this.state.isCaptured ? <TouchableOpacity style={[styles.circle, styles.outerCircle, this.props.captureType === 'video' && !this.state.recording ? { backgroundColor: \"red\" } : {},\n this.props.captureType === 'image' ? { backgroundColor: \"white\" } : {}]}\n onPress={this.toggleCapture.bind(this)}>\n <View style={[styles.circle as ViewStyle, this.props.captureType === 'image' ? {} : styles.innerCircle, this.props.captureType === 'image' ? { backgroundColor: \"white\" } : {}]}></View>\n </TouchableOpacity> : null}\n </View>\n <View style={styles.rightWrapper}>\n {this.state.showActionBtns ? (<TouchableOpacity\n onPress={() => {\n this.setState({ isCaptured: false, closeView: true } as CameraViewState);\n this.props.onSuccess(this.state.cameraContent);\n this.setState({ cameraContent: {uri: ''} } as CameraViewState);\n }}>\n <Ionicons name='checkmark-circle' size={32} color='white'/>\n </TouchableOpacity>) : (<TouchableOpacity\n onPress={() => {\n this.setState({cameraType: this.state.cameraType === 'back' ? 'front' : 'back'} as CameraViewState);\n }}>\n <Ionicons name='camera-reverse' size={32} color='white' />\n </TouchableOpacity>)}\n </View>\n </View>\n }\n\n getPreviewTemplate(actions: any) {\n return this.props.captureType === 'image' ?\n <ImageBackground source={{uri : this.state.cameraContent.uri}} resizeMode={ResizeMode.CONTAIN} style={{flex: 1}} />\n : <Video\n style={{ flex: 1 }}\n source={{\n uri: this.state.cameraContent.uri,\n }}\n shouldPlay={true}\n useNativeControls\n isLooping\n resizeMode={ResizeMode.CONTAIN}\n ></Video>\n }\n\n render() {\n if (this.state.closeView) {\n return null;\n }\n const actions = this.getActionsTemplate();\n return (\n <View style={styles.preview}>\n {this.state.isCaptured ? (\n this.getPreviewTemplate(actions)\n ) : (\n <Camera type={CameraType[this.state.cameraType]} ref={(ref: Camera) => { this.camera = ref; }}\n style={{flex: 1}}\n onCameraReady={() => {}}>\n\n </Camera>)}\n {actions}\n </View>)\n }\n}\nconst cameraService = new CameraService(appDisplayManagerService);\nexport default cameraService;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","ImageBackground","TouchableOpacity","View","Ionicons","ResizeMode","Video","Camera","CameraType","permissionManager","appDisplayManagerService","styles","preview","top","left","right","flexGrow","backgroundColor","actionBtn","flex","padding","paddingHorizontal","alignSelf","margin","actionBar","flexDirection","justifyContent","position","bottom","leftWrapper","alignItems","midWrapper","rightWrapper","circle","display","outerCircle","borderWidth","height","width","borderRadius","borderColor","innerCircle","CameraService","constructor","displayManager","back","captureVideo","options","Promise","resolve","reject","requestPermissions","then","destroy","show","content","type","o","call","videoPath","uri","captureImage","params","imagePath","CameraViewProps","CameraViewState","CameraView","Component","props","camera","recordAsync","response","setState","cameraContent","isCaptured","state","showActionBtns","recording","stopRecording","toggleCapture","captureType","takePicture","startRecord","stopRecord","quality","base64","skipProcessing","onPictureSaved","takePictureAsync","getActionsTemplate","closeView","onCancel","bind","onSuccess","cameraType","getPreviewTemplate","actions","COVER","render","ref","cameraService"],"sources":["camera-service.tsx"],"sourcesContent":["import React from \"react\";\nimport { ImageBackground, TouchableOpacity, View, ViewStyle } from \"react-native\";\nimport { Ionicons } from \"@expo/vector-icons\";\nimport { ResizeMode, Video } from \"expo-av\";\nimport { Camera, CameraType } from \"expo-camera\";\n\nimport { DisplayManager } from \"@wavemaker/app-rn-runtime/core/display.manager\";\nimport { CaptureVideoOutput } from \"@wavemaker/app-rn-runtime/variables/device/camera/capture-video.operation\";\nimport { CaptureImageOutput } from \"@wavemaker/app-rn-runtime/variables/device/camera/capture-image.operation\";\nimport permissionManager from '@wavemaker/app-rn-runtime/runtime/services/device/permissions';\nimport { CameraInput } from \"@wavemaker/app-rn-runtime/core/device/camera-service\";\nimport { Input } from \"@wavemaker/app-rn-runtime/variables/device/operation.provider\";\nimport appDisplayManagerService from \"@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service\";\nconst styles = {\n preview: {\n top: 0,\n left: 0,\n right: 0,\n flexGrow: 1,\n backgroundColor: 'black'\n },\n actionBtn: {\n flex: 0,\n padding: 15,\n paddingHorizontal: 20,\n alignSelf: 'center',\n margin: 20,\n } as ViewStyle,\n actionBar: {\n flex: 0,\n flexDirection: 'row',\n justifyContent: 'center',\n backgroundColor: 'rgba(0,0,0,0.6)',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n padding: 20\n } as ViewStyle,\n leftWrapper: {\n flex: 1,\n alignItems: 'flex-start',\n } as ViewStyle,\n midWrapper: {\n flex: 1,\n alignItems: 'center',\n } as ViewStyle,\n rightWrapper: {\n flex: 1,\n alignItems: 'flex-end',\n } as ViewStyle,\n circle: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n } as ViewStyle,\n outerCircle: {\n borderWidth: 3,\n height: 50,\n width: 50,\n borderRadius: 25,\n borderColor: 'white'\n },\n innerCircle: {\n borderRadius:2,\n height: 20,\n width:20,\n backgroundColor: 'red'\n }\n};\n\nexport interface CameraVideoInput extends Input {}\n\nexport class CameraService {\n private type= CameraType.back;\n\n constructor(private displayManager: DisplayManager) {\n }\n\n public captureVideo(options?: CameraVideoInput): Promise<CaptureVideoOutput> {\n return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('video').then(() => {\n const destroy = this.displayManager.show({\n content: (<CameraView type={this.type} captureType={'video'} onSuccess={(o) => {\n destroy.call(this.displayManager);\n resolve({videoPath: o.uri});\n }}\n onCancel={() => {\n destroy.call(this.displayManager);\n }}\n ></CameraView>)\n });\n }, reject);\n });\n }\n\n public captureImage(params: CameraInput): Promise<CaptureImageOutput> {\n return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('image').then(() => {\n const destroy = this.displayManager.show({\n content: (<CameraView type={this.type} captureType={'image'} onSuccess={(o) => {\n destroy.call(this.displayManager);\n resolve({imagePath: o.uri});\n }} onCancel={() => {destroy.call(this.displayManager);}}\n ></CameraView>)\n });\n }, reject);\n });\n }\n}\n\ninterface CameraOutput {\n uri: string;\n}\n\nclass CameraViewProps {\n type: 'front' | 'back' = 'back' as CameraType;\n captureType: 'image' | 'video' = 'image';\n onSuccess: (o: CameraOutput) => any = () => {};\n onCancel: () => any = () => {};\n}\n\nclass CameraViewState {\n recording: boolean = false;\n showActionBtns: boolean = false;\n cameraType: CameraType = CameraType.back;\n isCaptured: boolean = false;\n closeView: boolean = false;\n cameraContent: CameraOutput = {} as CameraOutput;\n}\n\nexport class CameraView extends React.Component<CameraViewProps, CameraViewState> {\n private camera: Camera = {} as Camera;\n\n constructor(props: CameraViewProps) {\n super(props);\n this.state = new CameraViewState();\n }\n\n toggleCapture() {\n if (this.props.captureType === 'image') {\n this.takePicture();\n } else {\n if (!this.state.recording) {\n this.startRecord();\n } else {\n this.stopRecord();\n this.setState({showActionBtns: true} as CameraViewState);\n }\n }\n }\n\n async takePicture() {\n const options = {\n quality: 0.5,\n base64: false,\n skipProcessing: true,\n onPictureSaved: (response: any) => {\n this.setState({ cameraContent: response, isCaptured: true } as CameraViewState);\n }\n }\n await this.camera.takePictureAsync(options);\n\n if (this.state.showActionBtns) {\n this.setState({showActionBtns: false} as CameraViewState);\n }\n this.setState({showActionBtns: true} as CameraViewState);\n }\n\n // start recording\n startRecord = async () => {\n this.camera.recordAsync().then((response: any) => {\n this.setState({ cameraContent: response, isCaptured: true } as CameraViewState);\n });\n if (this.state.showActionBtns) {\n this.setState({showActionBtns: false} as CameraViewState);\n }\n\n this.setState({recording: true} as CameraViewState);\n };\n\n // stop recording\n stopRecord = async () => {\n this.camera.stopRecording();\n this.setState({recording: false} as CameraViewState);\n this.setState({showActionBtns: true} as CameraViewState);\n };\n\n getActionsTemplate() {\n return <View style={styles.actionBar}>\n <View style={styles.leftWrapper}>\n <TouchableOpacity\n onPress={() => {\n this.setState({ cameraContent: {uri: ''}, isCaptured: false, closeView: true } as CameraViewState);\n this.props.onCancel();\n }}>\n <Ionicons name='close-circle' size={32} color='white' />\n </TouchableOpacity>\n </View>\n <View style={styles.midWrapper}>\n {!this.state.isCaptured ? <TouchableOpacity style={[styles.circle, styles.outerCircle, this.props.captureType === 'video' && !this.state.recording ? { backgroundColor: \"red\" } : {},\n this.props.captureType === 'image' ? { backgroundColor: \"white\" } : {}]}\n onPress={this.toggleCapture.bind(this)}>\n <View style={[styles.circle as ViewStyle, this.props.captureType === 'image' ? {} : styles.innerCircle, this.props.captureType === 'image' ? { backgroundColor: \"white\" } : {}]}></View>\n </TouchableOpacity> : null}\n </View>\n <View style={styles.rightWrapper}>\n {this.state.showActionBtns ? (<TouchableOpacity\n onPress={() => {\n this.setState({ isCaptured: false, closeView: true } as CameraViewState);\n this.props.onSuccess(this.state.cameraContent);\n this.setState({ cameraContent: {uri: ''} } as CameraViewState);\n }}>\n <Ionicons name='checkmark-circle' size={32} color='white'/>\n </TouchableOpacity>) : (<TouchableOpacity\n onPress={() => {\n this.setState({cameraType: this.state.cameraType === 'back' ? 'front' : 'back'} as CameraViewState);\n }}>\n <Ionicons name='camera-reverse' size={32} color='white' />\n </TouchableOpacity>)}\n </View>\n </View>\n }\n\n getPreviewTemplate(actions: any) {\n return this.props.captureType === 'image' ?\n <ImageBackground source={{uri : this.state.cameraContent.uri}} resizeMode={ResizeMode.COVER} style={{flex: 1}} />\n : <Video\n style={{ flex: 1 }}\n source={{\n uri: this.state.cameraContent.uri,\n }}\n shouldPlay={true}\n useNativeControls\n isLooping\n resizeMode={ResizeMode.COVER}\n ></Video>\n }\n\n render() {\n if (this.state.closeView) {\n return null;\n }\n const actions = this.getActionsTemplate();\n return (\n <View style={styles.preview}>\n {this.state.isCaptured ? (\n this.getPreviewTemplate(actions)\n ) : (\n <Camera type={CameraType[this.state.cameraType]} ref={(ref: Camera) => { this.camera = ref; }}\n style={{flex: 1}}\n onCameraReady={() => {}}>\n\n </Camera>)}\n {actions}\n </View>)\n }\n}\nconst cameraService = new CameraService(appDisplayManagerService);\nexport default cameraService;\n"],"mappings":"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"}
@@ -30,9 +30,8 @@ const styles = StyleSheet.create({
30
30
  },
31
31
  closeWrapper: {
32
32
  flex: 1,
33
- justifyContent: 'flex-end',
34
- alignItems: 'center',
35
- paddingBottom: 32
33
+ alignItems: 'flex-end',
34
+ paddingRight: 10
36
35
  },
37
36
  topWrapper: {
38
37
  flex: 2,
@@ -79,16 +78,6 @@ export class ScanService {
79
78
  style: StyleSheet.absoluteFillObject
80
79
  }, /*#__PURE__*/React.createElement(View, {
81
80
  style: styles.topWrapper
82
- }), /*#__PURE__*/React.createElement(View, {
83
- style: styles.centerWrapper
84
- }, /*#__PURE__*/React.createElement(View, {
85
- style: styles.leftWrapper
86
- }), /*#__PURE__*/React.createElement(View, {
87
- style: styles.focused
88
- }), /*#__PURE__*/React.createElement(View, {
89
- style: styles.rightWrapper
90
- })), /*#__PURE__*/React.createElement(View, {
91
- style: styles.bottomWrapper
92
81
  }, /*#__PURE__*/React.createElement(View, {
93
82
  style: styles.closeWrapper
94
83
  }, /*#__PURE__*/React.createElement(TouchableOpacity, {
@@ -97,9 +86,19 @@ export class ScanService {
97
86
  }
98
87
  }, /*#__PURE__*/React.createElement(Ionicons, {
99
88
  name: "close-circle",
100
- size: 48,
89
+ size: 32,
101
90
  color: "white"
102
- })))))
91
+ })))), /*#__PURE__*/React.createElement(View, {
92
+ style: styles.centerWrapper
93
+ }, /*#__PURE__*/React.createElement(View, {
94
+ style: styles.leftWrapper
95
+ }), /*#__PURE__*/React.createElement(View, {
96
+ style: styles.focused
97
+ }), /*#__PURE__*/React.createElement(View, {
98
+ style: styles.rightWrapper
99
+ })), /*#__PURE__*/React.createElement(View, {
100
+ style: styles.bottomWrapper
101
+ }))
103
102
  });
104
103
  }, reject);
105
104
  }).then(response => {
@@ -1 +1 @@
1
- {"version":3,"names":["Camera","Ionicons","BarCodeScanner","Platform","StyleSheet","TouchableOpacity","View","React","permissionManager","appDisplayManagerService","barcodeFormatOptions","opacity","styles","create","container","flex","flexDirection","closeWrapper","justifyContent","alignItems","paddingBottom","topWrapper","backgroundColor","centerWrapper","leftWrapper","focused","rightWrapper","bottomWrapper","ScanService","constructor","displayManager","scanBarcode","params","format","barcodeFormat","OS","undefined","Promise","resolve","reject","requestPermissions","then","destroy","show","content","barCodeTypes","Constants","BarCodeType","result","call","absoluteFillObject","response","type","values","Object","index","indexOf","keys","text","data","cancelled","scanService"],"sources":["scan-service.tsx"],"sourcesContent":["import { Camera } from 'expo-camera';\nimport { Ionicons } from '@expo/vector-icons';\nimport { BarCodeScanner } from 'expo-barcode-scanner';\nimport { Platform, StyleSheet, TouchableOpacity, View } from 'react-native';\nimport React from 'react';\nimport { ScanInput, ScanOutput } from '@wavemaker/app-rn-runtime/variables/device/scan/scan.operation';\nimport { DisplayManager } from '@wavemaker/app-rn-runtime/core/display.manager';\nimport permissionManager from '@wavemaker/app-rn-runtime/runtime/services/device/permissions';\nimport appDisplayManagerService from '@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service';\n\ninterface objectMap {\n [key: string]: string\n}\n\nconst barcodeFormatOptions: objectMap = {\n 'ALL': 'ALL',\n 'CODABAR': 'codabar',\n 'CODE_39': 'code39',\n 'CODE_93': 'code93',\n 'CODE_128': 'code128',\n 'DATA_MATRIX': 'datamatrix',\n 'EAN_8': 'ean8',\n 'EAN_13': 'ean13',\n 'ITF': 'itf14',\n 'PDF_417': 'pdf417',\n 'QR_CODE': 'qr',\n 'RSS14': 'rss14',\n 'RSS_EXPANDED': 'rssexpanded',\n 'UPC_E': 'upc_e',\n 'UPC_A': 'upc_a'\n};\nconst opacity = 'rgba(0, 0, 0, 0.6)';\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column'\n },\n closeWrapper: {\n flex: 1,\n justifyContent: 'flex-end',\n alignItems: 'center',\n paddingBottom: 32\n },\n topWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n centerWrapper: {\n flex: 2,\n flexDirection: 'row'\n },\n leftWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n focused: {\n flex: 10\n },\n rightWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n bottomWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n});\n\nexport class ScanService {\n\n constructor(private displayManager: DisplayManager) {}\n\n public scanBarcode(params: ScanInput): Promise<ScanOutput> {\n const format = params?.barcodeFormat || 'ALL';\n const barcodeFormat: string | undefined = Platform.OS === 'ios' ? undefined : barcodeFormatOptions[format];\n return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('camera').then(() => {\n const destroy = this.displayManager.show({\n content: (<Camera\n barCodeScannerSettings={barcodeFormat ? {\n barCodeTypes: [BarCodeScanner.Constants.BarCodeType[barcodeFormat]],\n }: undefined}\n onBarCodeScanned={(result) => {\n destroy.call(this.displayManager);\n resolve(result);\n }}\n style={StyleSheet.absoluteFillObject}\n >\n <View style={styles.topWrapper}>\n </View>\n <View style={styles.centerWrapper}>\n <View style={styles.leftWrapper}/>\n <View style={styles.focused}/>\n <View style={styles.rightWrapper}/>\n </View>\n <View style={styles.bottomWrapper}>\n \n <View style={styles.closeWrapper}>\n <TouchableOpacity\n onPress={() => {\n destroy.call(this.displayManager);\n }}>\n <Ionicons name='close-circle' size={48} color='white' />\n </TouchableOpacity>\n </View>\n </View>\n </Camera>)\n });\n }, reject)\n }).then((response: any) => {\n let format;\n if (response.type) {\n const values = Object.values(BarCodeScanner.Constants.BarCodeType);\n const index = values.indexOf(response.type);\n format = index > -1 ? Object.keys(BarCodeScanner.Constants.BarCodeType)[index] : '';\n }\n return Promise.resolve({\n text: response.data,\n format : format || response.type,\n cancelled : false\n });\n });\n }\n}\nconst scanService = new ScanService(appDisplayManagerService);\nexport default scanService;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,aAAa;AACpC,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,QAAQ,EAAEC,UAAU,EAAEC,gBAAgB,EAAEC,IAAI,QAAQ,cAAc;AAC3E,OAAOC,KAAK,MAAM,OAAO;AAGzB,OAAOC,iBAAiB,MAAM,+DAA+D;AAC7F,OAAOC,wBAAwB,MAAM,wEAAwE;AAM7G,MAAMC,oBAA+B,GAAG;EACtC,KAAK,EAAE,KAAK;EACZ,SAAS,EAAE,SAAS;EACpB,SAAS,EAAE,QAAQ;EACnB,SAAS,EAAE,QAAQ;EACnB,UAAU,EAAE,SAAS;EACrB,aAAa,EAAE,YAAY;EAC3B,OAAO,EAAE,MAAM;EACf,QAAQ,EAAE,OAAO;EACjB,KAAK,EAAE,OAAO;EACd,SAAS,EAAE,QAAQ;EACnB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,OAAO;EAChB,cAAc,EAAE,aAAa;EAC7B,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE;AACX,CAAC;AACD,MAAMC,OAAO,GAAG,oBAAoB;AACpC,MAAMC,MAAM,GAAGR,UAAU,CAACS,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE;EACjB,CAAC;EACDC,YAAY,EAAE;IACZF,IAAI,EAAE,CAAC;IACPG,cAAc,EAAE,UAAU;IAC1BC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE;EACjB,CAAC;EACDC,UAAU,EAAE;IACVN,IAAI,EAAE,CAAC;IACPO,eAAe,EAAEX;EACnB,CAAC;EACDY,aAAa,EAAE;IACbR,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE;EACjB,CAAC;EACDQ,WAAW,EAAE;IACXT,IAAI,EAAE,CAAC;IACPO,eAAe,EAAEX;EACnB,CAAC;EACDc,OAAO,EAAE;IACPV,IAAI,EAAE;EACR,CAAC;EACDW,YAAY,EAAE;IACZX,IAAI,EAAE,CAAC;IACPO,eAAe,EAAEX;EACnB,CAAC;EACDgB,aAAa,EAAE;IACbZ,IAAI,EAAE,CAAC;IACPO,eAAe,EAAEX;EACnB;AACF,CAAC,CAAC;AAEF,OAAO,MAAMiB,WAAW,CAAC;EAEvBC,WAAW,CAASC,cAA8B,EAAE;IAAA,KAAhCA,cAA8B,GAA9BA,cAA8B;EAAG;EAE9CC,WAAW,CAACC,MAAiB,EAAuB;IACzD,MAAMC,MAAM,GAAG,CAAAD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEE,aAAa,KAAI,KAAK;IAC7C,MAAMA,aAAiC,GAAG/B,QAAQ,CAACgC,EAAE,KAAK,KAAK,GAAGC,SAAS,GAAG1B,oBAAoB,CAACuB,MAAM,CAAC;IAC1G,OAAO,IAAII,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC/B,iBAAiB,CAACgC,kBAAkB,CAAC,QAAQ,CAAC,CAACC,IAAI,CAAC,MAAM;QACxD,MAAMC,OAAO,GAAG,IAAI,CAACZ,cAAc,CAACa,IAAI,CAAC;UACvCC,OAAO,eAAG,oBAAC,MAAM;YACf,sBAAsB,EAAEV,aAAa,GAAG;cACtCW,YAAY,EAAE,CAAC3C,cAAc,CAAC4C,SAAS,CAACC,WAAW,CAACb,aAAa,CAAC;YACpE,CAAC,GAAEE,SAAU;YACb,gBAAgB,EAAGY,MAAM,IAAK;cAC5BN,OAAO,CAACO,IAAI,CAAC,IAAI,CAACnB,cAAc,CAAC;cACjCQ,OAAO,CAACU,MAAM,CAAC;YACjB,CAAE;YACF,KAAK,EAAE5C,UAAU,CAAC8C;UAAmB,gBAErC,oBAAC,IAAI;YAAC,KAAK,EAAEtC,MAAM,CAACS;UAAW,EACxB,eACP,oBAAC,IAAI;YAAC,KAAK,EAAET,MAAM,CAACW;UAAc,gBAChC,oBAAC,IAAI;YAAC,KAAK,EAAEX,MAAM,CAACY;UAAY,EAAE,eAClC,oBAAC,IAAI;YAAC,KAAK,EAAEZ,MAAM,CAACa;UAAQ,EAAE,eAC9B,oBAAC,IAAI;YAAC,KAAK,EAAEb,MAAM,CAACc;UAAa,EAAE,CAC9B,eACP,oBAAC,IAAI;YAAC,KAAK,EAAEd,MAAM,CAACe;UAAc,gBAEhC,oBAAC,IAAI;YAAC,KAAK,EAAEf,MAAM,CAACK;UAAa,gBAC7B,oBAAC,gBAAgB;YACb,OAAO,EAAE,MAAM;cACbyB,OAAO,CAACO,IAAI,CAAC,IAAI,CAACnB,cAAc,CAAC;YACnC;UAAE,gBACF,oBAAC,QAAQ;YAAC,IAAI,EAAC,cAAc;YAAC,IAAI,EAAE,EAAG;YAAC,KAAK,EAAC;UAAO,EAAG,CACzC,CAChB,CACF;QAEX,CAAC,CAAC;MACJ,CAAC,EAAES,MAAM,CAAC;IACZ,CAAC,CAAC,CAACE,IAAI,CAAEU,QAAa,IAAK;MACzB,IAAIlB,MAAM;MACV,IAAIkB,QAAQ,CAACC,IAAI,EAAE;QACjB,MAAMC,MAAM,GAAGC,MAAM,CAACD,MAAM,CAACnD,cAAc,CAAC4C,SAAS,CAACC,WAAW,CAAC;QAClE,MAAMQ,KAAK,GAAGF,MAAM,CAACG,OAAO,CAACL,QAAQ,CAACC,IAAI,CAAC;QAC3CnB,MAAM,GAAGsB,KAAK,GAAG,CAAC,CAAC,GAAGD,MAAM,CAACG,IAAI,CAACvD,cAAc,CAAC4C,SAAS,CAACC,WAAW,CAAC,CAACQ,KAAK,CAAC,GAAG,EAAE;MACrF;MACA,OAAOlB,OAAO,CAACC,OAAO,CAAC;QACrBoB,IAAI,EAAEP,QAAQ,CAACQ,IAAI;QACnB1B,MAAM,EAAGA,MAAM,IAAIkB,QAAQ,CAACC,IAAI;QAChCQ,SAAS,EAAG;MACd,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF;AACA,MAAMC,WAAW,GAAG,IAAIjC,WAAW,CAACnB,wBAAwB,CAAC;AAC7D,eAAeoD,WAAW"}
1
+ {"version":3,"names":["Camera","Ionicons","BarCodeScanner","Platform","StyleSheet","TouchableOpacity","View","React","permissionManager","appDisplayManagerService","barcodeFormatOptions","opacity","styles","create","container","flex","flexDirection","closeWrapper","alignItems","paddingRight","topWrapper","backgroundColor","centerWrapper","leftWrapper","focused","rightWrapper","bottomWrapper","ScanService","constructor","displayManager","scanBarcode","params","format","barcodeFormat","OS","undefined","Promise","resolve","reject","requestPermissions","then","destroy","show","content","barCodeTypes","Constants","BarCodeType","result","call","absoluteFillObject","response","type","values","Object","index","indexOf","keys","text","data","cancelled","scanService"],"sources":["scan-service.tsx"],"sourcesContent":["import { Camera } from 'expo-camera';\nimport { Ionicons } from '@expo/vector-icons';\nimport { BarCodeScanner } from 'expo-barcode-scanner';\nimport { Platform, StyleSheet, TouchableOpacity, View } from 'react-native';\nimport React from 'react';\nimport { ScanInput, ScanOutput } from '@wavemaker/app-rn-runtime/variables/device/scan/scan.operation';\nimport { DisplayManager } from '@wavemaker/app-rn-runtime/core/display.manager';\nimport permissionManager from '@wavemaker/app-rn-runtime/runtime/services/device/permissions';\nimport appDisplayManagerService from '@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service';\n\ninterface objectMap {\n [key: string]: string\n}\n\nconst barcodeFormatOptions: objectMap = {\n 'ALL': 'ALL',\n 'CODABAR': 'codabar',\n 'CODE_39': 'code39',\n 'CODE_93': 'code93',\n 'CODE_128': 'code128',\n 'DATA_MATRIX': 'datamatrix',\n 'EAN_8': 'ean8',\n 'EAN_13': 'ean13',\n 'ITF': 'itf14',\n 'PDF_417': 'pdf417',\n 'QR_CODE': 'qr',\n 'RSS14': 'rss14',\n 'RSS_EXPANDED': 'rssexpanded',\n 'UPC_E': 'upc_e',\n 'UPC_A': 'upc_a'\n};\nconst opacity = 'rgba(0, 0, 0, 0.6)';\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column'\n },\n closeWrapper: {\n flex: 1,\n alignItems: 'flex-end',\n paddingRight: 10\n },\n topWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n centerWrapper: {\n flex: 2,\n flexDirection: 'row'\n },\n leftWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n focused: {\n flex: 10\n },\n rightWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n bottomWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n});\n\nexport class ScanService {\n\n constructor(private displayManager: DisplayManager) {}\n\n public scanBarcode(params: ScanInput): Promise<ScanOutput> {\n const format = params?.barcodeFormat || 'ALL';\n const barcodeFormat: string | undefined = Platform.OS === 'ios' ? undefined : barcodeFormatOptions[format];\n return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('camera').then(() => {\n const destroy = this.displayManager.show({\n content: (<Camera\n barCodeScannerSettings={barcodeFormat ? {\n barCodeTypes: [BarCodeScanner.Constants.BarCodeType[barcodeFormat]],\n }: undefined}\n onBarCodeScanned={(result) => {\n destroy.call(this.displayManager);\n resolve(result);\n }}\n style={StyleSheet.absoluteFillObject}\n >\n <View style={styles.topWrapper}>\n <View style={styles.closeWrapper}>\n <TouchableOpacity\n onPress={() => {\n destroy.call(this.displayManager);\n }}>\n <Ionicons name='close-circle' size={32} color='white' />\n </TouchableOpacity>\n </View>\n </View>\n <View style={styles.centerWrapper}>\n <View style={styles.leftWrapper}/>\n <View style={styles.focused}/>\n <View style={styles.rightWrapper}/>\n </View>\n <View style={styles.bottomWrapper}/>\n </Camera>)\n });\n }, reject)\n }).then((response: any) => {\n let format;\n if (response.type) {\n const values = Object.values(BarCodeScanner.Constants.BarCodeType);\n const index = values.indexOf(response.type);\n format = index > -1 ? Object.keys(BarCodeScanner.Constants.BarCodeType)[index] : '';\n }\n return Promise.resolve({\n text: response.data,\n format : format || response.type,\n cancelled : false\n });\n });\n }\n}\nconst scanService = new ScanService(appDisplayManagerService);\nexport default scanService;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["CaptureImageOperation","constructor","camera","invoke","params","captureImage"],"sources":["capture-image.operation.tsx"],"sourcesContent":["import {CameraInput, CameraService} from \"@wavemaker/app-rn-runtime/core/device/camera-service\";\nimport { Operation, Output } from '../operation.provider';\n\nexport interface CaptureImageOutput extends Output {\n imagePath: string;\n content: string;\n}\n\nexport class CaptureImageOperation implements Operation {\n constructor(private camera: CameraService) {}\n\n public invoke(params: CameraInput): Promise<CaptureImageOutput> {\n return this.camera.captureImage(params);\n }\n}\n"],"mappings":"AAQA,OAAO,MAAMA,qBAAqB,CAAsB;EACtDC,WAAW,CAASC,MAAqB,EAAE;IAAA,KAAvBA,MAAqB,GAArBA,MAAqB;EAAG;EAErCC,MAAM,CAACC,MAAmB,EAA+B;IAC9D,OAAO,IAAI,CAACF,MAAM,CAACG,YAAY,CAACD,MAAM,CAAC;EACzC;AACF"}
1
+ {"version":3,"names":["CaptureImageOperation","constructor","camera","invoke","params","captureImage"],"sources":["capture-image.operation.tsx"],"sourcesContent":["import {CameraInput, CameraService} from \"@wavemaker/app-rn-runtime/core/device/camera-service\";\nimport { Operation, Output } from '../operation.provider';\n\nexport interface CaptureImageOutput extends Output {\n imagePath: string\n}\n\nexport class CaptureImageOperation implements Operation {\n constructor(private camera: CameraService) {}\n\n public invoke(params: CameraInput): Promise<CaptureImageOutput> {\n return this.camera.captureImage(params);\n }\n}\n"],"mappings":"AAOA,OAAO,MAAMA,qBAAqB,CAAsB;EACtDC,WAAW,CAASC,MAAqB,EAAE;IAAA,KAAvBA,MAAqB,GAArBA,MAAqB;EAAG;EAErCC,MAAM,CAACC,MAAmB,EAA+B;IAC9D,OAAO,IAAI,CAACF,MAAM,CAACG,YAAY,CAACD,MAAM,CAAC;EACzC;AACF"}
@@ -1 +1 @@
1
- {"version":3,"names":["CaptureVideoOperation","constructor","camera","invoke","captureVideo"],"sources":["capture-video.operation.tsx"],"sourcesContent":["import { CameraService } from \"@wavemaker/app-rn-runtime/core/device/camera-service\";\nimport { Operation, Output } from '../operation.provider';\n\nexport interface CaptureVideoOutput extends Output {\n videoPath: string;\n content: string;\n}\n\nexport class CaptureVideoOperation implements Operation {\n constructor(private camera: CameraService) {\n }\n\n public invoke(): Promise<CaptureVideoOutput> {\n return this.camera.captureVideo();\n }\n}\n"],"mappings":"AAQA,OAAO,MAAMA,qBAAqB,CAAsB;EACtDC,WAAW,CAASC,MAAqB,EAAE;IAAA,KAAvBA,MAAqB,GAArBA,MAAqB;EACzC;EAEOC,MAAM,GAAgC;IAC3C,OAAO,IAAI,CAACD,MAAM,CAACE,YAAY,EAAE;EACnC;AACF"}
1
+ {"version":3,"names":["CaptureVideoOperation","constructor","camera","invoke","captureVideo"],"sources":["capture-video.operation.tsx"],"sourcesContent":["import { CameraService } from \"@wavemaker/app-rn-runtime/core/device/camera-service\";\nimport { Operation, Output } from '../operation.provider';\n\nexport interface CaptureVideoOutput extends Output {\n videoPath: string\n}\n\nexport class CaptureVideoOperation implements Operation {\n constructor(private camera: CameraService) {\n }\n\n public invoke(): Promise<CaptureVideoOutput> {\n return this.camera.captureVideo();\n }\n}\n"],"mappings":"AAOA,OAAO,MAAMA,qBAAqB,CAAsB;EACtDC,WAAW,CAASC,MAAqB,EAAE;IAAA,KAAvBA,MAAqB,GAArBA,MAAqB;EACzC;EAEOC,MAAM,GAAgC;IAC3C,OAAO,IAAI,CAACD,MAAM,CAACE,YAAY,EAAE;EACnC;AACF"}