@wavemaker/app-rn-runtime 11.14.3-rc.6401 → 11.15.0-2.247
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions/notification-action.js +1 -0
- package/actions/notification-action.js.map +1 -1
- package/components/basic/bottomsheet/bottomsheet.component.js +58 -23
- package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
- package/components/basic/button/button.component.js +56 -7
- package/components/basic/button/button.component.js.map +1 -1
- package/components/basic/button/button.styles.js +0 -1
- package/components/basic/button/button.styles.js.map +1 -1
- package/components/basic/message/message.component.js +1 -1
- package/components/basic/message/message.component.js.map +1 -1
- package/components/basic/message/message.props.js +1 -0
- package/components/basic/message/message.props.js.map +1 -1
- package/components/basic/picture/picture.component.js +2 -2
- package/components/basic/picture/picture.component.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.component.js +13 -2
- package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.props.js +1 -0
- package/components/chart/bar-chart/bar-chart.props.js.map +1 -1
- package/components/container/accordion/accordion.component.js +10 -3
- package/components/container/accordion/accordion.component.js.map +1 -1
- package/components/container/accordion/accordion.styles.js +6 -2
- package/components/container/accordion/accordion.styles.js.map +1 -1
- package/components/container/container.component.js +132 -50
- package/components/container/container.component.js.map +1 -1
- package/components/container/container.props.js +1 -0
- package/components/container/container.props.js.map +1 -1
- package/components/container/panel/panel.component.js +8 -1
- package/components/container/panel/panel.component.js.map +1 -1
- package/components/container/panel/panel.props.js +2 -0
- package/components/container/panel/panel.props.js.map +1 -1
- package/components/container/tile/tile.component.js +3 -0
- package/components/container/tile/tile.component.js.map +1 -1
- package/components/container/wizard/wizard.component.js +1 -1
- package/components/container/wizard/wizard.component.js.map +1 -1
- package/components/container/wizard/wizard.props.js +1 -0
- package/components/container/wizard/wizard.props.js.map +1 -1
- package/components/container/wizard/wizard.styles.js +0 -13
- package/components/container/wizard/wizard.styles.js.map +1 -1
- package/components/data/form/form-body/form-body.component.js +2 -1
- package/components/data/form/form-body/form-body.component.js.map +1 -1
- package/components/data/form/form-footer/form-footer.component.js +2 -1
- package/components/data/form/form-footer/form-footer.component.js.map +1 -1
- package/components/input/chips/chips.component.js +2 -2
- package/components/input/chips/chips.component.js.map +1 -1
- package/components/input/chips/chips.styles.js +1 -0
- package/components/input/chips/chips.styles.js.map +1 -1
- package/components/input/currency/currency.component.js +3 -1
- package/components/input/currency/currency.component.js.map +1 -1
- package/components/input/epoch/base-datetime.component.js +3 -1
- package/components/input/epoch/base-datetime.component.js.map +1 -1
- package/components/input/number/number.component.js +2 -1
- package/components/input/number/number.component.js.map +1 -1
- package/components/input/select/select.component.js +76 -35
- package/components/input/select/select.component.js.map +1 -1
- package/components/input/text/text.component.js +2 -1
- package/components/input/text/text.component.js.map +1 -1
- package/components/input/textarea/textarea.component.js +2 -1
- package/components/input/textarea/textarea.component.js.map +1 -1
- package/components/input/toggle/toggle.component.js +12 -4
- package/components/input/toggle/toggle.component.js.map +1 -1
- package/components/input/toggle/toggle.props.js +5 -0
- package/components/input/toggle/toggle.props.js.map +1 -1
- package/components/navigation/popover/popover.component.js +5 -1
- package/components/navigation/popover/popover.component.js.map +1 -1
- package/core/advanced-promise-rejection-tracker.js +208 -0
- package/core/advanced-promise-rejection-tracker.js.map +1 -0
- package/core/base.component.js +8 -3
- package/core/base.component.js.map +1 -1
- package/core/components/error-fallback/error-fallback.component.js +50 -18
- package/core/components/error-fallback/error-fallback.component.js.map +1 -1
- package/core/components/error-fallback/error-fallback.styles.js +4 -1
- package/core/components/error-fallback/error-fallback.styles.js.map +1 -1
- package/core/error-boundary.component.js +17 -1
- package/core/error-boundary.component.js.map +1 -1
- package/core/fixed-view.component.js +19 -2
- package/core/fixed-view.component.js.map +1 -1
- package/core/global-error-handler.service.js +103 -0
- package/core/global-error-handler.service.js.map +1 -0
- package/core/tappable.component.js +7 -4
- package/core/tappable.component.js.map +1 -1
- package/core/toast.service.js.map +1 -1
- package/npm-shrinkwrap.json +802 -712
- package/package-lock.json +802 -712
- package/package.json +2 -2
- package/runtime/App.js +124 -13
- package/runtime/App.js.map +1 -1
- package/runtime/base-page.component.js +11 -2
- package/runtime/base-page.component.js.map +1 -1
- package/runtime/navigator/drawer.navigator.js +1 -0
- package/runtime/navigator/drawer.navigator.js.map +1 -1
- package/runtime/services/device/camera-service.js +31 -20
- package/runtime/services/device/camera-service.js.map +1 -1
- package/styles/theme.js +17 -3
- package/styles/theme.js.map +1 -1
- package/styles/theme.variables.js +2 -0
- package/styles/theme.variables.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clone","isEqual","React","CommonActions","SplashScreen","WmPage","NavigationServiceProvider","AppSecurityService","AppSpinnerService","BaseFragment","Watcher","setCurrentPageInAppLayout","ScreenCaptureProtectionConsumer","BasePage","constructor","props","_this$appConfig$drawe","_defineProperty","setTimeout","hideAsync","pageName","route","name","pageParams","params","appConfig","currentPage","drawer","setContent","serviceDefinitions","App","watcher","ROOT","create","canUserAccessPage","then","flag","cache","redirectToLogin","toHashURL","diagnostics","pageStartTime","Date","now","onComponentInit","w","targetWidget","refreshdataonattach","toggleDrawer","navigation","setDrawerContent","content","drawerContent","drawerType","hasDrawer","proxy","_this$appConfig$drawe2","_this$appConfig$drawe4","_this$appConfig$drawe3","createElement","value","setAnimation","onAttach","pageReadyTime","notify","onFragmentReady","onContentReady","triggerPageReady","hide","cleanup","push","addListener","_this$appConfig$scree","refresh","screenCaptureContext","screenCaptureProtection","enabled","enableProtection","_this$appConfig$scree2","disableProtection","componentWillUnmount","canNavigate","nextPage","navigate","onBeforePageLeave","goToPage","clearCahe","isNavigable","Promise","resolve","_params","dispatch","reset","index","routes","onDetach","destroyMe","closeDrawer","navigateToLandingPage","hash","paramStr","Object","keys","map","k","join","goBack","_navigation$getState","getState","canGoBack","length","window","history","back","openUrl","url","startsWith","substring","splits","split","p","forEach","openBrowser","isActiveTabbarItem","label","link","links","possibleLinks","find","l","includes","renderWidget","context","renderPage"],"sources":["base-page.component.tsx"],"sourcesContent":["import { clone, isEqual } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { CommonActions } from '@react-navigation/native';\nimport * as SplashScreen from 'expo-splash-screen';\nimport { BaseComponent } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmPage from '@wavemaker/app-rn-runtime/components/page/page.component';\nimport NavigationService, { NavigationServiceProvider } from '@wavemaker/app-rn-runtime/core/navigation.service';\n\nimport AppSecurityService from './services/app-security.service';\nimport AppSpinnerService from './services/app-spinner.service';\nimport BaseFragment, { FragmentProps, FragmentState } from './base-fragment.component';\nimport { Watcher } from './watcher';\nimport { setCurrentPageInAppLayout } from '../core/utils';\nimport { ScreenCaptureProtectionConsumer, ScreenCaptureProtectionContextType } from '../core/screen-capture-protection.service';\nimport { Alert } from 'react-native';\n\ndeclare const window: any;\n\nexport interface PageProps extends FragmentProps {\n route: any;\n navigation: any;\n destroyMe: Function;\n}\n\nexport interface PageState extends FragmentState<PageProps> {\n}\n\nexport default abstract class BasePage extends BaseFragment<PageProps, PageState> implements NavigationService {\n private pageName = null as unknown as string;\n private pageParams: any = {};\n private hasDrawer = false;\n private hasTabbar = false;\n private drawerContent = null as React.ReactNode;\n private drawerType = '';\n private screenCaptureContext: ScreenCaptureProtectionContextType | null = null;\n\n constructor(props: PageProps) {\n super(props);\n setTimeout(() => {\n SplashScreen.hideAsync();\n }, 300);\n this.pageName = props.route.name;\n this.pageParams = props.route.params;\n this.appConfig.currentPage = this;\n this.appConfig.drawer?.setContent(null);\n this.serviceDefinitions = this.App.serviceDefinitions;\n this.watcher = Watcher.ROOT.create();\n \n \n AppSecurityService.canUserAccessPage(this.pageName)\n .then(flag => {\n if (!flag) {\n this.cache = false;\n AppSecurityService.redirectToLogin(this.toHashURL());\n }\n });\n if (this.App.appConfig.diagnostics.pageStartTime < 0) {\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n }\n\n setCurrentPageInAppLayout(props.route.name);\n }\n\n onComponentInit(w: BaseComponent<any, any, any>) {\n super.onComponentInit(w);\n if (w instanceof WmPage) {\n this.targetWidget = w;\n const props = w.props as any;\n this.cache = !(props.cache === false);\n this.refreshdataonattach = !(props.refreshdataonattach === false);\n }\n }\n\n toggleDrawer() {\n (this.props as PageProps).navigation.toggleDrawer();\n }\n\n setDrawerContent(content = this.drawerContent, drawerType = this.drawerType) {\n if (!content) {\n return;\n }\n this.drawerContent = content;\n this.drawerType = drawerType;\n this.hasDrawer = true;\n setTimeout(() => {\n if (this.appConfig.currentPage === this \n || this.appConfig.currentPage.proxy === this) {\n this.appConfig.drawer?.setContent(null);\n setTimeout(() => {\n this.appConfig.drawer?.setContent((\n <NavigationServiceProvider value={this}>\n {content}\n </NavigationServiceProvider>));\n }, 500);\n this.appConfig.drawer?.setAnimation(drawerType);\n }\n }, 10);\n }\n\n onAttach() {\n super.onAttach();\n this.setDrawerContent();\n this.App.appConfig.diagnostics.pageReadyTime = Date.now();\n this.App.notify('pageAttached', this);\n }\n\n onFragmentReady() {\n return super.onFragmentReady().then(() => {\n this.onContentReady();\n this.App.triggerPageReady(this.pageName, this.proxy as BasePage);\n this.App.appConfig.diagnostics.pageReadyTime = Date.now(); \n this.App.notify('pageReady', this);\n AppSpinnerService.hide();\n this.cleanup.push((this.props as PageProps).navigation.addListener('focus', () => {\n if (this.appConfig.currentPage !== this) {\n this.appConfig.currentPage = this;\n this.onAttach();\n this.appConfig.refresh();\n }\n if (this.screenCaptureContext && this.appConfig.screenCaptureProtection?.enabled) {\n this.screenCaptureContext.enableProtection();\n }\n }));\n \n this.cleanup.push((this.props as PageProps).navigation.addListener('blur', () => {\n if (this.screenCaptureContext && this.appConfig.screenCaptureProtection?.enabled) {\n this.screenCaptureContext.disableProtection();\n }\n }));\n });\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.App.notify('pageDestroyed', this);\n }\n\n async canNavigate (currentPage: string, nextPage: string) {\n let navigate = true;\n navigate = await this.onBeforePageLeave(currentPage, nextPage);\n if(navigate !== false){\n navigate = await this.App.onBeforePageLeave(currentPage, nextPage);\n }\n\n if(navigate !== false) navigate = true;\n\n return navigate; \n }\n\n async onBeforePageLeave(currentPage: string, nextPage: string) {\n //method can be override by the user from studio;\n return true;\n }\n\n async goToPage(pageName: string, params: any, clearCahe = false) {\n const isNavigable = await this.canNavigate(this.pageName, pageName)\n if(!isNavigable){\n return Promise.resolve();\n }\n\n const navigation = (this.props as PageProps).navigation;\n const _params = clone(params);\n _params && delete _params['pageName'];\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n if (pageName !== this.pageName || !isEqual(_params || null, this.pageParams || null)) {\n if (pageName === this.pageName) {\n navigation.push(pageName, _params);\n } else if (clearCahe) {\n navigation.dispatch(CommonActions.reset({\n index: 0,\n routes: [\n { name: pageName, params: params }\n ]}));\n } else {\n navigation.navigate(pageName, _params);\n }\n if (this.cache) {\n this.onDetach();\n } else {\n this.props.destroyMe();\n }\n } else {\n (this.props as PageProps).navigation.closeDrawer();\n }\n return Promise.resolve();\n }\n\n public navigateToLandingPage() {\n AppSecurityService.navigateToLandingPage();\n }\n\n public toHashURL() {\n const hash = `#/${this.pageName}`;\n const paramStr = Object.keys(this.pageParams || [])\n .map(k => k && `${k}=${this.pageParams[k]}`)\n .join('&');\n return hash + (paramStr ? `?${paramStr}` : '');\n }\n\n async goBack() {\n const navigation = (this.props as PageProps).navigation;\n const routes = navigation.getState()?.routes;\n let isNavigable = true;\n\n if(navigation.canGoBack()){\n isNavigable = await this.canNavigate(this.pageName, routes[routes.length - 2].name)\n }\n if(!isNavigable){\n return Promise.resolve();\n }\n\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n if (navigation.canGoBack()) {\n navigation.goBack();\n } else if (window && window.history) {\n window.history.back();\n }\n return Promise.resolve();\n }\n\n openUrl(url: string, params = {} as any) {\n if (url) {\n if (url.startsWith('#')) {\n url = url.substring(1);\n url = url.startsWith('/') ? url.substring(1) : url;\n const splits = url.split('?');\n const pageName = splits[0];\n let params = {} as any;\n if (splits.length > 1) {\n splits[1].split('&')\n .map(p => p.split('='))\n .forEach(p => params[p[0]] = p[1]);\n }\n return this.goToPage(pageName, params);\n } else {\n this.App.openBrowser(url, params);\n }\n }\n return Promise.resolve();\n }\n\n isActiveTabbarItem({label, link, links}: {label: string, link: string, links: string[]}) {\n const pageName = this.pageName;\n const possibleLinks = [pageName, '#' + pageName, '#/' + pageName];\n return links && links.find(l => possibleLinks.includes(l));\n }\n\n abstract renderPage(): ReactNode;\n\n renderWidget(props: PageProps) {\n return (\n <ScreenCaptureProtectionConsumer>\n {(context: ScreenCaptureProtectionContextType | null) => {\n if (!context) return this.renderPage();\n this.screenCaptureContext = context;\n return this.renderPage();\n }}\n </ScreenCaptureProtectionConsumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clone","isEqual","React","CommonActions","SplashScreen","WmPage","NavigationServiceProvider","AppSecurityService","AppSpinnerService","BaseFragment","Watcher","setCurrentPageInAppLayout","ScreenCaptureProtectionConsumer","BasePage","constructor","props","_this$appConfig$drawe","_defineProperty","setTimeout","hideAsync","pageName","route","name","pageParams","params","appConfig","currentPage","drawer","setContent","serviceDefinitions","App","watcher","ROOT","create","canUserAccessPage","then","flag","cache","redirectToLogin","toHashURL","diagnostics","pageStartTime","Date","now","onComponentInit","w","targetWidget","refreshdataonattach","toggleDrawer","navigation","setDrawerContent","content","drawerContent","drawerType","hasDrawer","proxy","_this$appConfig$drawe2","_this$appConfig$drawe4","_this$appConfig$drawe3","createElement","value","setAnimation","onAttach","pageReadyTime","notify","onFragmentReady","onContentReady","triggerPageReady","hide","cleanup","push","addListener","_this$appConfig$scree","refresh","screenCaptureContext","screenCaptureProtection","enabled","enableProtection","_this$appConfig$scree2","disableProtection","componentWillUnmount","canNavigate","nextPage","navigate","onBeforePageLeave","e","handleCallbackError","goToPage","clearCahe","isNavigable","Promise","resolve","_params","dispatch","reset","index","routes","onDetach","destroyMe","closeDrawer","navigateToLandingPage","hash","paramStr","Object","keys","map","k","join","goBack","_navigation$getState","getState","canGoBack","length","window","history","back","openUrl","url","startsWith","substring","splits","split","p","forEach","openBrowser","isActiveTabbarItem","label","link","links","possibleLinks","find","l","includes","renderWidget","context","renderPage"],"sources":["base-page.component.tsx"],"sourcesContent":["import { clone, isEqual } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { CommonActions } from '@react-navigation/native';\nimport * as SplashScreen from 'expo-splash-screen';\nimport { BaseComponent } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmPage from '@wavemaker/app-rn-runtime/components/page/page.component';\nimport NavigationService, { NavigationServiceProvider } from '@wavemaker/app-rn-runtime/core/navigation.service';\n\nimport AppSecurityService from './services/app-security.service';\nimport AppSpinnerService from './services/app-spinner.service';\nimport BaseFragment, { FragmentProps, FragmentState } from './base-fragment.component';\nimport { Watcher } from './watcher';\nimport { setCurrentPageInAppLayout } from '../core/utils';\nimport { ScreenCaptureProtectionConsumer, ScreenCaptureProtectionContextType } from '../core/screen-capture-protection.service';\nimport { Alert } from 'react-native';\n\ndeclare const window: any;\n\nexport interface PageProps extends FragmentProps {\n route: any;\n navigation: any;\n destroyMe: Function;\n}\n\nexport interface PageState extends FragmentState<PageProps> {\n}\n\nexport default abstract class BasePage extends BaseFragment<PageProps, PageState> implements NavigationService {\n private pageName = null as unknown as string;\n private pageParams: any = {};\n private hasDrawer = false;\n private hasTabbar = false;\n private drawerContent = null as React.ReactNode;\n private drawerType = '';\n private screenCaptureContext: ScreenCaptureProtectionContextType | null = null;\n\n constructor(props: PageProps) {\n super(props);\n setTimeout(() => {\n SplashScreen.hideAsync();\n }, 300);\n this.pageName = props.route.name;\n this.pageParams = props.route.params;\n this.appConfig.currentPage = this;\n this.appConfig.drawer?.setContent(null);\n this.serviceDefinitions = this.App.serviceDefinitions;\n this.watcher = Watcher.ROOT.create();\n \n \n AppSecurityService.canUserAccessPage(this.pageName)\n .then(flag => {\n if (!flag) {\n this.cache = false;\n AppSecurityService.redirectToLogin(this.toHashURL());\n }\n });\n if (this.App.appConfig.diagnostics.pageStartTime < 0) {\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n }\n\n setCurrentPageInAppLayout(props.route.name);\n }\n\n onComponentInit(w: BaseComponent<any, any, any>) {\n super.onComponentInit(w);\n if (w instanceof WmPage) {\n this.targetWidget = w;\n const props = w.props as any;\n this.cache = !(props.cache === false);\n this.refreshdataonattach = !(props.refreshdataonattach === false);\n }\n }\n\n toggleDrawer() {\n (this.props as PageProps).navigation.toggleDrawer();\n }\n\n setDrawerContent(content = this.drawerContent, drawerType = this.drawerType) {\n if (!content) {\n return;\n }\n this.drawerContent = content;\n this.drawerType = drawerType;\n this.hasDrawer = true;\n setTimeout(() => {\n if (this.appConfig.currentPage === this \n || this.appConfig.currentPage.proxy === this) {\n this.appConfig.drawer?.setContent(null);\n setTimeout(() => {\n this.appConfig.drawer?.setContent((\n <NavigationServiceProvider value={this}>\n {content}\n </NavigationServiceProvider>));\n }, 500);\n this.appConfig.drawer?.setAnimation(drawerType);\n }\n }, 10);\n }\n\n onAttach() {\n super.onAttach();\n this.setDrawerContent();\n this.App.appConfig.diagnostics.pageReadyTime = Date.now();\n this.App.notify('pageAttached', this);\n }\n\n onFragmentReady() {\n return super.onFragmentReady().then(() => {\n this.onContentReady();\n this.App.triggerPageReady(this.pageName, this.proxy as BasePage);\n this.App.appConfig.diagnostics.pageReadyTime = Date.now(); \n this.App.notify('pageReady', this);\n AppSpinnerService.hide();\n this.cleanup.push((this.props as PageProps).navigation.addListener('focus', () => {\n if (this.appConfig.currentPage !== this) {\n this.appConfig.currentPage = this;\n this.onAttach();\n this.appConfig.refresh();\n }\n if (this.screenCaptureContext && this.appConfig.screenCaptureProtection?.enabled) {\n this.screenCaptureContext.enableProtection();\n }\n }));\n \n this.cleanup.push((this.props as PageProps).navigation.addListener('blur', () => {\n if (this.screenCaptureContext && this.appConfig.screenCaptureProtection?.enabled) {\n this.screenCaptureContext.disableProtection();\n }\n }));\n });\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.App.notify('pageDestroyed', this);\n }\n\n async canNavigate (currentPage: string, nextPage: string) {\n let navigate = true;\n //added try-catch to catch any errors in the callback fn and propogate it to global error handler.\n try {\n navigate = await this.onBeforePageLeave(currentPage, nextPage);\n } catch (e) {\n this.App.handleCallbackError(e, `Error in page-level onBeforePageLeave callback`);\n }\n \n if(navigate !== false){\n try {\n navigate = await this.App.onBeforePageLeave(currentPage, nextPage);\n } catch (e) {\n this.App.handleCallbackError(e, `Error in app-level onBeforePageLeave callback`);\n }\n }\n\n if(navigate !== false) navigate = true;\n\n return navigate; \n }\n\n async onBeforePageLeave(currentPage: string, nextPage: string) {\n //method can be override by the user from studio;\n return true;\n }\n\n async goToPage(pageName: string, params: any, clearCahe = false) {\n const isNavigable = await this.canNavigate(this.pageName, pageName)\n if(!isNavigable){\n return Promise.resolve();\n }\n\n const navigation = (this.props as PageProps).navigation;\n const _params = clone(params);\n _params && delete _params['pageName'];\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n if (pageName !== this.pageName || !isEqual(_params || null, this.pageParams || null)) {\n if (pageName === this.pageName) {\n navigation.push(pageName, _params);\n } else if (clearCahe) {\n navigation.dispatch(CommonActions.reset({\n index: 0,\n routes: [\n { name: pageName, params: params }\n ]}));\n } else {\n navigation.navigate(pageName, _params);\n }\n if (this.cache) {\n this.onDetach();\n } else {\n this.props.destroyMe();\n }\n } else {\n (this.props as PageProps).navigation.closeDrawer();\n }\n return Promise.resolve();\n }\n\n public navigateToLandingPage() {\n AppSecurityService.navigateToLandingPage();\n }\n\n public toHashURL() {\n const hash = `#/${this.pageName}`;\n const paramStr = Object.keys(this.pageParams || [])\n .map(k => k && `${k}=${this.pageParams[k]}`)\n .join('&');\n return hash + (paramStr ? `?${paramStr}` : '');\n }\n\n async goBack() {\n const navigation = (this.props as PageProps).navigation;\n const routes = navigation.getState()?.routes;\n let isNavigable = true;\n\n if(navigation.canGoBack()){\n isNavigable = await this.canNavigate(this.pageName, routes[routes.length - 2].name)\n }\n if(!isNavigable){\n return Promise.resolve();\n }\n\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n if (navigation.canGoBack()) {\n navigation.goBack();\n } else if (window && window.history) {\n window.history.back();\n }\n return Promise.resolve();\n }\n\n openUrl(url: string, params = {} as any) {\n if (url) {\n if (url.startsWith('#')) {\n url = url.substring(1);\n url = url.startsWith('/') ? url.substring(1) : url;\n const splits = url.split('?');\n const pageName = splits[0];\n let params = {} as any;\n if (splits.length > 1) {\n splits[1].split('&')\n .map(p => p.split('='))\n .forEach(p => params[p[0]] = p[1]);\n }\n return this.goToPage(pageName, params);\n } else {\n this.App.openBrowser(url, params);\n }\n }\n return Promise.resolve();\n }\n\n isActiveTabbarItem({label, link, links}: {label: string, link: string, links: string[]}) {\n const pageName = this.pageName;\n const possibleLinks = [pageName, '#' + pageName, '#/' + pageName];\n return links && links.find(l => possibleLinks.includes(l));\n }\n\n abstract renderPage(): ReactNode;\n\n renderWidget(props: PageProps) {\n return (\n <ScreenCaptureProtectionConsumer>\n {(context: ScreenCaptureProtectionContextType | null) => {\n if (!context) return this.renderPage();\n this.screenCaptureContext = context;\n return this.renderPage();\n }}\n </ScreenCaptureProtectionConsumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createDrawerNavigator","getDrawerStatusFromState","ThemeVariables","Drawer","AppDrawerNavigator","Component","constructor","props","render","createElement","Navigator","initialRouteName","drawerContent","content","screenOptions","navigation","widthStyle","drawerWidth","getState","width","maxWidth","drawerType","type","headerShown","gestureHandlerProps","enabled","hide","drawerStyle","backgroundColor","
|
|
1
|
+
{"version":3,"names":["React","createDrawerNavigator","getDrawerStatusFromState","ThemeVariables","Drawer","AppDrawerNavigator","Component","constructor","props","render","createElement","Navigator","initialRouteName","drawerContent","content","screenOptions","navigation","widthStyle","drawerWidth","getState","width","maxWidth","drawerType","type","headerShown","overlayColor","INSTANCE","leftPanelOverlayColor","gestureHandlerProps","enabled","hide","drawerStyle","backgroundColor","pageContentBgColor","Screen","name","_props","rootComponent"],"sources":["drawer.navigator.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { createDrawerNavigator, getDrawerStatusFromState } from '@react-navigation/drawer';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nconst Drawer = createDrawerNavigator();\n\ninterface AppDrawerNavigatorProps {\n content: (props: any) => ReactNode;\n hide: boolean,\n drawerWidth: any;\n type: any;\n rootComponent: React.ReactNode;\n}\n\nclass AppDrawerNavigator extends React.Component<AppDrawerNavigatorProps, any, any> {\n\n constructor(props: AppDrawerNavigatorProps) {\n super(props);\n }\n\n render(){\n return (<Drawer.Navigator\n initialRouteName=\"pages\"\n drawerContent={this.props.content}\n // useLegacyImplementation={false}\n screenOptions={({navigation})=> {\n const widthStyle = (this.props.drawerWidth && getDrawerStatusFromState(navigation.getState()) === 'open' ? {width: this.props.drawerWidth, maxWidth: null} : {})\n return {\n drawerType: this.props.type,\n headerShown: false,\n overlayColor: ThemeVariables.INSTANCE.leftPanelOverlayColor,\n gestureHandlerProps: { enabled: !this.props.hide },\n drawerStyle: { backgroundColor: ThemeVariables.INSTANCE.pageContentBgColor, ...widthStyle}}\n }}>\n <Drawer.Screen name=\"pages\">\n {(_props) => this.props.rootComponent}\n </Drawer.Screen>\n </Drawer.Navigator>);\n }\n}\n\nexport default AppDrawerNavigator;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAqB,OAAO;AACxC,SAASC,qBAAqB,EAAEC,wBAAwB,QAAQ,0BAA0B;AAC1F,OAAOC,cAAc,MAAM,kDAAkD;AAC7E,MAAMC,MAAM,GAAGH,qBAAqB,CAAC,CAAC;AAUtC,MAAMI,kBAAkB,SAASL,KAAK,CAACM,SAAS,CAAoC;EAElFC,WAAWA,CAACC,KAA8B,EAAE;IAC1C,KAAK,CAACA,KAAK,CAAC;EACd;EAEAC,MAAMA,CAAA,EAAE;IACN,oBAAQT,KAAA,CAAAU,aAAA,CAACN,MAAM,CAACO,SAAS;MACvBC,gBAAgB,EAAC,OAAO;MACxBC,aAAa,EAAE,IAAI,CAACL,KAAK,CAACM;MAC1B;MAAA;MACAC,aAAa,EAAEA,CAAC;QAACC;MAAU,CAAC,KAAI;QAC9B,MAAMC,UAAU,GAAI,IAAI,CAACT,KAAK,CAACU,WAAW,IAAIhB,wBAAwB,CAACc,UAAU,CAACG,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG;UAACC,KAAK,EAAE,IAAI,CAACZ,KAAK,CAACU,WAAW;UAAEG,QAAQ,EAAE;QAAI,CAAC,GAAG,CAAC,CAAE;QAChK,OAAO;UACLC,UAAU,EAAE,IAAI,CAACd,KAAK,CAACe,IAAI;UAC3BC,WAAW,EAAE,KAAK;UAClBC,YAAY,EAAEtB,cAAc,CAACuB,QAAQ,CAACC,qBAAqB;UAC3DC,mBAAmB,EAAE;YAAEC,OAAO,EAAE,CAAC,IAAI,CAACrB,KAAK,CAACsB;UAAK,CAAC;UAClDC,WAAW,EAAE;YAAEC,eAAe,EAAG7B,cAAc,CAACuB,QAAQ,CAACO,kBAAkB;YAAE,GAAGhB;UAAU;QAAC,CAAC;MAChG;IAAE,gBACFjB,KAAA,CAAAU,aAAA,CAACN,MAAM,CAAC8B,MAAM;MAACC,IAAI,EAAC;IAAO,GACvBC,MAAM,IAAK,IAAI,CAAC5B,KAAK,CAAC6B,aACX,CACC,CAAC;EACrB;AACF;AAEA,eAAehC,kBAAkB","ignoreList":[]}
|
|
@@ -149,12 +149,12 @@ class CameraViewProps {
|
|
|
149
149
|
}
|
|
150
150
|
class CameraViewState {
|
|
151
151
|
constructor() {
|
|
152
|
-
_defineProperty(this, "recording", false);
|
|
153
152
|
_defineProperty(this, "showActionBtns", false);
|
|
154
153
|
_defineProperty(this, "cameraType", CameraType.back);
|
|
155
154
|
_defineProperty(this, "isCaptured", false);
|
|
156
155
|
_defineProperty(this, "closeView", false);
|
|
157
156
|
_defineProperty(this, "cameraContent", {});
|
|
157
|
+
_defineProperty(this, "isRecording", false);
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
export class Camera extends React.Component {
|
|
@@ -162,51 +162,60 @@ export class Camera extends React.Component {
|
|
|
162
162
|
super(props);
|
|
163
163
|
_defineProperty(this, "cameraService", null);
|
|
164
164
|
_defineProperty(this, "camera", {});
|
|
165
|
+
_defineProperty(this, "recordingInProgress", false);
|
|
165
166
|
// start recording
|
|
166
167
|
_defineProperty(this, "startRecord", async () => {
|
|
168
|
+
this.recordingInProgress = true;
|
|
169
|
+
this.setState({
|
|
170
|
+
isRecording: true
|
|
171
|
+
});
|
|
167
172
|
this.camera.recordAsync().then(response => {
|
|
168
173
|
response.content = async () => {
|
|
169
174
|
return await this.cameraService.fsReadAsString(response.uri, {
|
|
170
175
|
encoding: 'base64'
|
|
171
176
|
});
|
|
172
177
|
};
|
|
178
|
+
this.recordingInProgress = false;
|
|
173
179
|
this.setState({
|
|
174
180
|
cameraContent: response,
|
|
175
|
-
isCaptured: true
|
|
181
|
+
isCaptured: true,
|
|
182
|
+
showActionBtns: true,
|
|
183
|
+
isRecording: false
|
|
176
184
|
});
|
|
177
|
-
})
|
|
178
|
-
|
|
185
|
+
}).catch(error => {
|
|
186
|
+
this.recordingInProgress = false;
|
|
179
187
|
this.setState({
|
|
180
|
-
|
|
188
|
+
isRecording: false
|
|
181
189
|
});
|
|
182
|
-
}
|
|
183
|
-
this.setState({
|
|
184
|
-
recording: true
|
|
185
190
|
});
|
|
186
191
|
});
|
|
187
192
|
// stop recording
|
|
188
193
|
_defineProperty(this, "stopRecord", async () => {
|
|
189
|
-
this.camera.stopRecording
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
}
|
|
193
|
-
this.setState({
|
|
194
|
-
showActionBtns: true
|
|
195
|
-
});
|
|
194
|
+
if (this.camera && this.camera.stopRecording) {
|
|
195
|
+
this.camera.stopRecording();
|
|
196
|
+
// Don't change state here - recordAsync promise will handle it
|
|
197
|
+
}
|
|
196
198
|
});
|
|
197
199
|
this.state = new CameraViewState();
|
|
198
200
|
}
|
|
201
|
+
shouldComponentUpdate(_nextProps, nextState) {
|
|
202
|
+
if (this.recordingInProgress) {
|
|
203
|
+
// Allow update ONLY for recording state change
|
|
204
|
+
if (this.state.isRecording !== nextState.isRecording) {
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
return true;
|
|
210
|
+
}
|
|
199
211
|
toggleCapture() {
|
|
200
212
|
if (this.props.captureType === 'image') {
|
|
201
213
|
this.takePicture();
|
|
202
214
|
} else {
|
|
203
|
-
if (!this.state.
|
|
215
|
+
if (!this.state.isRecording) {
|
|
204
216
|
this.startRecord();
|
|
205
217
|
} else {
|
|
206
218
|
this.stopRecord();
|
|
207
|
-
this.setState({
|
|
208
|
-
showActionBtns: true
|
|
209
|
-
});
|
|
210
219
|
}
|
|
211
220
|
}
|
|
212
221
|
}
|
|
@@ -274,7 +283,7 @@ export class Camera extends React.Component {
|
|
|
274
283
|
}))), /*#__PURE__*/React.createElement(View, {
|
|
275
284
|
style: styles.midWrapper
|
|
276
285
|
}, !this.state.isCaptured ? /*#__PURE__*/React.createElement(TouchableOpacity, _extends({
|
|
277
|
-
style: [styles.circle, styles.outerCircle, this.props.captureType === 'video' && !this.state.
|
|
286
|
+
style: [styles.circle, styles.outerCircle, this.props.captureType === 'video' && !this.state.isRecording ? {
|
|
278
287
|
backgroundColor: "red"
|
|
279
288
|
} : {}, this.props.captureType === 'image' ? {
|
|
280
289
|
backgroundColor: "white"
|
|
@@ -349,6 +358,8 @@ export class Camera extends React.Component {
|
|
|
349
358
|
return /*#__PURE__*/React.createElement(View, {
|
|
350
359
|
style: styles.preview
|
|
351
360
|
}, this.state.isCaptured ? this.getPreviewTemplate(actions) : /*#__PURE__*/React.createElement(CameraView, {
|
|
361
|
+
key: "stable-camera-view",
|
|
362
|
+
mode: this.props.captureType === 'video' ? 'video' : 'picture',
|
|
352
363
|
facing: this.state.cameraType,
|
|
353
364
|
ref: ref => {
|
|
354
365
|
this.camera = ref;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ImageBackground","Platform","TouchableOpacity","View","Ionicons","CameraPluginConsumer","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","ICamera","ResizeMode","CameraType","CameraService","constructor","displayManager","_defineProperty","back","captureVideo","options","Promise","resolve","reject","_options$permissionSe","permissionService","requestPermissions","then","destroy","show","content","createElement","Camera","testID","type","captureType","onSuccess","o","call","videoPath","uri","onCancel","captureImage","params","_params$permissionSer","catch","base64","imagePath","CameraViewProps","CameraViewState","Component","props","camera","recordAsync","response","cameraService","fsReadAsString","encoding","setState","cameraContent","isCaptured","state","showActionBtns","recording","stopRecording","toggleCapture","takePicture","startRecord","stopRecord","getTestProps","suffix","id","OS","accessibilityLabel","accessible","quality","skipProcessing","onPictureSaved","takePictureAsync","getActionsTemplate","style","_extends","onPress","closeView","name","size","color","bind","cameraType","getPreviewTemplate","actions","Video","source","resizeMode","CONTAIN","shouldPlay","useNativeControls","isLooping","render","CameraView","facing","ref","onCameraReady"],"sources":["camera-service.tsx"],"sourcesContent":["import React from \"react\";\nimport { ImageBackground, Platform, TouchableOpacity, View, ViewStyle } from \"react-native\";\nimport { Ionicons } from \"@expo/vector-icons\";\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 { CameraPluginService as ICameraPluginService, CameraInput, CameraPluginConsumer } 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 permissionService: any;\n}\n\nlet ICamera: ICameraPluginService = null as any;\nenum ResizeMode {\n CONTAIN = 'contain',\n COVER = 'cover',\n STRETCH = 'stretch',\n}\nenum CameraType {\n front = 'front',\n back = 'back',\n}\n\nexport class CameraService {\n private type: CameraType = CameraType.back;\n\n constructor(private displayManager: DisplayManager) {\n }\n\n public captureVideo(options?: CameraVideoInput): Promise<CaptureVideoOutput> {\n return new Promise((resolve, reject) => {\n options?.permissionService?.requestPermissions && options.permissionService.requestPermissions('video').then(() => {\n const destroy = this.displayManager.show({\n content: (<Camera testID={\"camera_view\"} 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 ></Camera>)\n });\n }, reject);\n });\n }\n\n public captureImage(params: CameraInput): Promise<CaptureImageOutput> {\n return new Promise((resolve, reject) => {\n params?.permissionService?.requestPermissions && params.permissionService.requestPermissions('image').then(() => {\n const destroy = this.displayManager.show({\n content: (<Camera testID={\"camera_view\"} 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 ></Camera>)\n });\n }, reject);\n });\n }\n}\n\ninterface CameraOutput {\n uri: string;\n content: () => Promise<string>;\n}\n\nclass CameraViewProps {\n testID: string = 'camera_view';\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 Camera extends React.Component<CameraViewProps, CameraViewState> {\n private cameraService: ICameraPluginService = null as any;\n private camera: any = {};\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 getTestProps(suffix: string) {\n const id = this.props.testID + (suffix ? '_' + suffix : '');\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\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 this.cameraService.fsReadAsString(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 this.cameraService.fsReadAsString(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 {...this.getTestProps('close')}\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 {...this.getTestProps('capture')}>\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 {...this.getTestProps('ok')}>\n <Ionicons name='checkmark-circle' size={32} color='white'/>\n </TouchableOpacity>) : (<TouchableOpacity\n {...this.getTestProps('toggle')}\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 const Video = this.cameraService.Video;\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 <CameraPluginConsumer>\n {(cameraService: any) => {\n this.cameraService = cameraService;\n const CameraView = this.cameraService.CameraView;\n return <View style={styles.preview}>\n {this.state.isCaptured ? (\n this.getPreviewTemplate(actions)\n ) : (\n <CameraView facing={this.state.cameraType} ref={(ref: any) => { this.camera = ref; }}\n style={{flex: 1}}\n onCameraReady={() => {}}>\n\n </CameraView>)}\n {actions}\n </View>\n }}\n </CameraPluginConsumer>)\n }\n}\nconst cameraService = new CameraService(appDisplayManagerService);\nexport default cameraService;"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","ImageBackground","Platform","TouchableOpacity","View","Ionicons","CameraPluginConsumer","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","ICamera","ResizeMode","CameraType","CameraService","constructor","displayManager","_defineProperty","back","captureVideo","options","Promise","resolve","reject","_options$permissionSe","permissionService","requestPermissions","then","destroy","show","content","createElement","Camera","testID","type","captureType","onSuccess","o","call","videoPath","uri","onCancel","captureImage","params","_params$permissionSer","catch","base64","imagePath","CameraViewProps","CameraViewState","Component","props","recordingInProgress","setState","isRecording","camera","recordAsync","response","cameraService","fsReadAsString","encoding","cameraContent","isCaptured","showActionBtns","error","stopRecording","state","shouldComponentUpdate","_nextProps","nextState","toggleCapture","takePicture","startRecord","stopRecord","getTestProps","suffix","id","OS","accessibilityLabel","accessible","quality","skipProcessing","onPictureSaved","takePictureAsync","getActionsTemplate","style","_extends","onPress","closeView","name","size","color","bind","cameraType","getPreviewTemplate","actions","Video","source","resizeMode","CONTAIN","shouldPlay","useNativeControls","isLooping","render","CameraView","key","mode","facing","ref","onCameraReady"],"sources":["camera-service.tsx"],"sourcesContent":["import React from \"react\";\nimport { ImageBackground, Platform, TouchableOpacity, View, ViewStyle } from \"react-native\";\nimport { Ionicons } from \"@expo/vector-icons\";\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 { CameraPluginService as ICameraPluginService, CameraInput, CameraPluginConsumer } 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 permissionService: any;\n}\n\nlet ICamera: ICameraPluginService = null as any;\nenum ResizeMode {\n CONTAIN = 'contain',\n COVER = 'cover',\n STRETCH = 'stretch',\n}\nenum CameraType {\n front = 'front',\n back = 'back',\n}\n\nexport class CameraService {\n private type: CameraType = CameraType.back;\n\n constructor(private displayManager: DisplayManager) {\n }\n\n public captureVideo(options?: CameraVideoInput): Promise<CaptureVideoOutput> {\n return new Promise((resolve, reject) => {\n options?.permissionService?.requestPermissions && options.permissionService.requestPermissions('video').then(() => {\n const destroy = this.displayManager.show({\n content: (<Camera testID={\"camera_view\"} 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 ></Camera>)\n });\n }, reject);\n });\n }\n\n public captureImage(params: CameraInput): Promise<CaptureImageOutput> {\n return new Promise((resolve, reject) => {\n params?.permissionService?.requestPermissions && params.permissionService.requestPermissions('image').then(() => {\n const destroy = this.displayManager.show({\n content: (<Camera testID={\"camera_view\"} 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 ></Camera>)\n });\n }, reject);\n });\n }\n}\n\ninterface CameraOutput {\n uri: string;\n content: () => Promise<string>;\n}\n\nclass CameraViewProps {\n testID: string = 'camera_view';\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 showActionBtns: boolean = false;\n cameraType: CameraType = CameraType.back;\n isCaptured: boolean = false;\n closeView: boolean = false;\n cameraContent: CameraOutput = {} as CameraOutput;\n isRecording: boolean = false;\n}\n\nexport class Camera extends React.Component<CameraViewProps, CameraViewState> {\n private cameraService: ICameraPluginService = null as any;\n private camera: any = {};\n private recordingInProgress: boolean = false;\n\n constructor(props: CameraViewProps) {\n super(props);\n this.state = new CameraViewState();\n }\n\n shouldComponentUpdate(_nextProps: CameraViewProps, nextState: CameraViewState) {\n if (this.recordingInProgress) {\n // Allow update ONLY for recording state change\n if (this.state.isRecording !== nextState.isRecording) {\n return true;\n }\n return false;\n }\n return true;\n }\n\n toggleCapture() {\n if (this.props.captureType === 'image') {\n this.takePicture();\n } else {\n if (!this.state.isRecording) {\n this.startRecord();\n } else {\n this.stopRecord();\n }\n }\n }\n\n getTestProps(suffix: string) {\n const id = this.props.testID + (suffix ? '_' + suffix : '');\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\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 this.cameraService.fsReadAsString(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.recordingInProgress = true;\n this.setState({ isRecording: true } as CameraViewState);\n this.camera.recordAsync().then((response: any) => {\n response.content = async () => {\n return await this.cameraService.fsReadAsString(response.uri, { encoding: 'base64' });\n };\n this.recordingInProgress = false;\n this.setState({ \n cameraContent: response, \n isCaptured: true,\n showActionBtns: true,\n isRecording: false\n } as CameraViewState);\n }).catch((error: any) => {\n this.recordingInProgress = false;\n this.setState({ isRecording: false } as CameraViewState);\n });\n };\n\n // stop recording\n stopRecord = async () => {\n if (this.camera && this.camera.stopRecording) {\n this.camera.stopRecording();\n // Don't change state here - recordAsync promise will handle it\n }\n };\n\n getActionsTemplate() {\n return <View style={styles.actionBar}>\n <View style={styles.leftWrapper}>\n <TouchableOpacity\n {...this.getTestProps('close')}\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.isRecording ? { backgroundColor: \"red\" } : {},\n this.props.captureType === 'image' ? { backgroundColor: \"white\" } : {}]}\n onPress={this.toggleCapture.bind(this)}\n {...this.getTestProps('capture')}>\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 {...this.getTestProps('ok')}>\n <Ionicons name='checkmark-circle' size={32} color='white'/>\n </TouchableOpacity>) : (<TouchableOpacity\n {...this.getTestProps('toggle')}\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 const Video = this.cameraService.Video;\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 <CameraPluginConsumer>\n {(cameraService: any) => {\n this.cameraService = cameraService;\n const CameraView = this.cameraService.CameraView;\n return <View style={styles.preview}>\n {this.state.isCaptured ? (\n this.getPreviewTemplate(actions)\n ) : (\n <CameraView \n key=\"stable-camera-view\"\n mode={this.props.captureType === 'video' ? 'video' : 'picture'}\n facing={this.state.cameraType} \n ref={(ref: any) => { this.camera = ref; }}\n style={{flex: 1}}\n onCameraReady={() => {}}>\n\n </CameraView>)}\n {actions}\n </View>\n }}\n </CameraPluginConsumer>)\n }\n}\nconst cameraService = new CameraService(appDisplayManagerService);\nexport default cameraService;"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,EAAEC,QAAQ,EAAEC,gBAAgB,EAAEC,IAAI,QAAmB,cAAc;AAC3F,SAASC,QAAQ,QAAQ,oBAAoB;AAK7C,SAAmEC,oBAAoB,QAAQ,sDAAsD;AAErJ,OAAOC,wBAAwB,MAAM,wEAAwE;AAC7G,MAAMC,MAAM,GAAG;EACbC,OAAO,EAAE;IACPC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,QAAQ,EAAE,CAAC;IACXC,eAAe,EAAE;EACnB,CAAC;EACDC,SAAS,EAAE;IACTC,IAAI,EAAE,CAAC;IACPC,OAAO,EAAE,EAAE;IACXC,iBAAiB,EAAE,EAAE;IACrBC,SAAS,EAAE,QAAQ;IACnBC,MAAM,EAAE;EACV,CAAc;EACdC,SAAS,EAAE;IACTL,IAAI,EAAE,CAAC;IACPM,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,QAAQ;IACxBT,eAAe,EAAE,iBAAiB;IAClCU,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,CAAC;IACTd,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRK,OAAO,EAAE;EACX,CAAc;EACdS,WAAW,EAAE;IACXV,IAAI,EAAE,CAAC;IACPO,cAAc,EAAE,QAAQ;IACxBI,UAAU,EAAE;EACd,CAAc;EACdC,UAAU,EAAE;IACVZ,IAAI,EAAE,CAAC;IACPO,cAAc,EAAE,QAAQ;IACxBI,UAAU,EAAE;EACd,CAAc;EACdE,YAAY,EAAE;IACZb,IAAI,EAAE,CAAC;IACPO,cAAc,EAAE,QAAQ;IACxBI,UAAU,EAAE;EACd,CAAc;EACdG,MAAM,EAAE;IACNC,OAAO,EAAE,MAAM;IACfR,cAAc,EAAE,QAAQ;IACxBI,UAAU,EAAE;EACd,CAAc;EACdK,WAAW,EAAE;IACXC,WAAW,EAAE,CAAC;IACdC,MAAM,EAAE,EAAE;IACVC,KAAK,EAAE,EAAE;IACTC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE;EACf,CAAC;EACDC,WAAW,EAAE;IACXF,YAAY,EAAC,CAAC;IACdF,MAAM,EAAE,EAAE;IACVC,KAAK,EAAC,EAAE;IACRrB,eAAe,EAAE;EACnB;AACF,CAAC;AAMD,IAAIyB,OAA6B,GAAG,IAAW;AAAC,IAC3CC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,EAAVA,UAAU;AAAA,IAKVC,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA,EAAVA,UAAU;AAKf,OAAO,MAAMC,aAAa,CAAC;EAGzBC,WAAWA,CAASC,cAA8B,EAAE;IAAA,KAAhCA,cAA8B,GAA9BA,cAA8B;IAAAC,eAAA,eAFvBJ,UAAU,CAACK,IAAI;EAG1C;EAEOC,YAAYA,CAACC,OAA0B,EAA+B;IAC3E,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MAAA,IAAAC,qBAAA;MACtC,CAAAJ,OAAO,aAAPA,OAAO,gBAAAI,qBAAA,GAAPJ,OAAO,CAAEK,iBAAiB,cAAAD,qBAAA,uBAA1BA,qBAAA,CAA4BE,kBAAkB,KAAIN,OAAO,CAACK,iBAAiB,CAACC,kBAAkB,CAAC,OAAO,CAAC,CAACC,IAAI,CAAC,MAAM;QACjH,MAAMC,OAAO,GAAG,IAAI,CAACZ,cAAc,CAACa,IAAI,CAAC;UACvCC,OAAO,eAAG1D,KAAA,CAAA2D,aAAA,CAACC,MAAM;YAACC,MAAM,EAAE,aAAc;YAACC,IAAI,EAAE,IAAI,CAACA,IAAK;YAACC,WAAW,EAAE,OAAQ;YAACC,SAAS,EAAGC,CAAC,IAAK;cAChGT,OAAO,CAACU,IAAI,CAAC,IAAI,CAACtB,cAAc,CAAC;cACjC;AACZ;AACA;cACYM,OAAO,CAAC;gBAACiB,SAAS,EAAEF,CAAC,CAACG,GAAG;gBAAEV,OAAO,EAAE;cAAE,CAAC,CAAC;YAC1C,CAAE;YACFW,QAAQ,EAAEA,CAAA,KAAM;cACdb,OAAO,CAACU,IAAI,CAAC,IAAI,CAACtB,cAAc,CAAC;YACnC;UAAE,CACO;QACX,CAAC,CAAC;MACJ,CAAC,EAAEO,MAAM,CAAC;IACZ,CAAC,CAAC;EACJ;EAEOmB,YAAYA,CAACC,MAAmB,EAA+B;IACpE,OAAO,IAAItB,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MAAA,IAAAqB,qBAAA;MACtC,CAAAD,MAAM,aAANA,MAAM,gBAAAC,qBAAA,GAAND,MAAM,CAAElB,iBAAiB,cAAAmB,qBAAA,uBAAzBA,qBAAA,CAA2BlB,kBAAkB,KAAIiB,MAAM,CAAClB,iBAAiB,CAACC,kBAAkB,CAAC,OAAO,CAAC,CAACC,IAAI,CAAC,MAAM;QAC/G,MAAMC,OAAO,GAAG,IAAI,CAACZ,cAAc,CAACa,IAAI,CAAC;UACvCC,OAAO,eAAG1D,KAAA,CAAA2D,aAAA,CAACC,MAAM;YAACC,MAAM,EAAE,aAAc;YAACC,IAAI,EAAE,IAAI,CAACA,IAAK;YAACC,WAAW,EAAE,OAAQ;YAACC,SAAS,EAAGC,CAAC,IAAK;cAChGT,OAAO,CAACU,IAAI,CAAC,IAAI,CAACtB,cAAc,CAAC;cACjCqB,CAAC,CAACP,OAAO,CAAC,CAAC,CAACe,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAClB,IAAI,CAACmB,MAAM,IAAI;gBACzCxB,OAAO,CAAC;kBAACyB,SAAS,EAAEV,CAAC,CAACG,GAAG;kBAAEV,OAAO,EAAEgB,MAAM,IAAI;gBAAE,CAAC,CAAC;cACpD,CAAC,CAAC;YACJ,CAAE;YAACL,QAAQ,EAAEA,CAAA,KAAM;cAACb,OAAO,CAACU,IAAI,CAAC,IAAI,CAACtB,cAAc,CAAC;YAAC;UAAE,CAC/C;QACX,CAAC,CAAC;MACJ,CAAC,EAAEO,MAAM,CAAC;IACZ,CAAC,CAAC;EACJ;AACF;AAOA,MAAMyB,eAAe,CAAC;EAAAjC,YAAA;IAAAE,eAAA,iBACH,aAAa;IAAAA,eAAA,eACL,MAAM;IAAAA,eAAA,sBACE,OAAO;IAAAA,eAAA,oBACF,MAAM,CAAC,CAAC;IAAAA,eAAA,mBACxB,MAAM,CAAC,CAAC;EAAA;AAChC;AAEA,MAAMgC,eAAe,CAAC;EAAAlC,YAAA;IAAAE,eAAA,yBACQ,KAAK;IAAAA,eAAA,qBACNJ,UAAU,CAACK,IAAI;IAAAD,eAAA,qBAClB,KAAK;IAAAA,eAAA,oBACN,KAAK;IAAAA,eAAA,wBACI,CAAC,CAAC;IAAAA,eAAA,sBACT,KAAK;EAAA;AAChC;AAEA,OAAO,MAAMe,MAAM,SAAS5D,KAAK,CAAC8E,SAAS,CAAmC;EAK5EnC,WAAWA,CAACoC,KAAsB,EAAE;IAClC,KAAK,CAACA,KAAK,CAAC;IAAClC,eAAA,wBAL+B,IAAI;IAAAA,eAAA,iBAC5B,CAAC,CAAC;IAAAA,eAAA,8BACe,KAAK;IAmE5C;IAAAA,eAAA,sBACc,YAAY;MACxB,IAAI,CAACmC,mBAAmB,GAAG,IAAI;MAC/B,IAAI,CAACC,QAAQ,CAAC;QAAEC,WAAW,EAAE;MAAK,CAAoB,CAAC;MACvD,IAAI,CAACC,MAAM,CAACC,WAAW,CAAC,CAAC,CAAC7B,IAAI,CAAE8B,QAAa,IAAK;QAChDA,QAAQ,CAAC3B,OAAO,GAAG,YAAY;UAC7B,OAAO,MAAM,IAAI,CAAC4B,aAAa,CAACC,cAAc,CAACF,QAAQ,CAACjB,GAAG,EAAE;YAAEoB,QAAQ,EAAE;UAAS,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAACR,mBAAmB,GAAG,KAAK;QAChC,IAAI,CAACC,QAAQ,CAAC;UACZQ,aAAa,EAAEJ,QAAQ;UACvBK,UAAU,EAAE,IAAI;UAChBC,cAAc,EAAE,IAAI;UACpBT,WAAW,EAAE;QACf,CAAoB,CAAC;MACvB,CAAC,CAAC,CAACT,KAAK,CAAEmB,KAAU,IAAK;QACvB,IAAI,CAACZ,mBAAmB,GAAG,KAAK;QAChC,IAAI,CAACC,QAAQ,CAAC;UAAEC,WAAW,EAAE;QAAM,CAAoB,CAAC;MAC1D,CAAC,CAAC;IACJ,CAAC;IAED;IAAArC,eAAA,qBACa,YAAY;MACvB,IAAI,IAAI,CAACsC,MAAM,IAAI,IAAI,CAACA,MAAM,CAACU,aAAa,EAAE;QAC5C,IAAI,CAACV,MAAM,CAACU,aAAa,CAAC,CAAC;QAC3B;MACF;IACF,CAAC;IA1FC,IAAI,CAACC,KAAK,GAAG,IAAIjB,eAAe,CAAC,CAAC;EACpC;EAEAkB,qBAAqBA,CAACC,UAA2B,EAAEC,SAA0B,EAAE;IAC7E,IAAI,IAAI,CAACjB,mBAAmB,EAAE;MAC5B;MACA,IAAI,IAAI,CAACc,KAAK,CAACZ,WAAW,KAAKe,SAAS,CAACf,WAAW,EAAE;QACpD,OAAO,IAAI;MACb;MACA,OAAO,KAAK;IACd;IACA,OAAO,IAAI;EACb;EAEAgB,aAAaA,CAAA,EAAG;IACd,IAAI,IAAI,CAACnB,KAAK,CAAChB,WAAW,KAAK,OAAO,EAAE;MACtC,IAAI,CAACoC,WAAW,CAAC,CAAC;IACpB,CAAC,MAAM;MACL,IAAI,CAAC,IAAI,CAACL,KAAK,CAACZ,WAAW,EAAE;QAC3B,IAAI,CAACkB,WAAW,CAAC,CAAC;MACpB,CAAC,MAAM;QACL,IAAI,CAACC,UAAU,CAAC,CAAC;MACnB;IACF;EACF;EAEAC,YAAYA,CAACC,MAAc,EAAE;IAC3B,MAAMC,EAAE,GAAG,IAAI,CAACzB,KAAK,CAAClB,MAAM,IAAI0C,MAAM,GAAG,GAAG,GAAGA,MAAM,GAAI,EAAE,CAAC;IAC5D,IAAIrG,QAAQ,CAACuG,EAAE,KAAK,SAAS,IAAIvG,QAAQ,CAACuG,EAAE,KAAK,KAAK,EAAE;MACtD,OAAO;QACHC,kBAAkB,EAAEF,EAAE;QACtB3C,MAAM,EAAE2C;MACZ,CAAC;IACH;IACA,OAAO;MACHG,UAAU,EAAE,KAAK;MACjB9C,MAAM,EAAE2C;IACZ,CAAC;EACH;EAEA,MAAML,WAAWA,CAAA,EAAG;IAClB,MAAMnD,OAAO,GAAG;MACd4D,OAAO,EAAE,GAAG;MACZlC,MAAM,EAAE,KAAK;MACbmC,cAAc,EAAE,IAAI;MACpBC,cAAc,EAAGzB,QAAa,IAAK;QACjCA,QAAQ,CAAC3B,OAAO,GAAG,YAAY;UAC7B,OAAO,MAAM,IAAI,CAAC4B,aAAa,CAACC,cAAc,CAACF,QAAQ,CAACjB,GAAG,EAAE;YAAEoB,QAAQ,EAAE;UAAS,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,CAACP,QAAQ,CAAC;UACZQ,aAAa,EAAEJ,QAAQ;UACvBK,UAAU,EAAE,IAAI;UAChBC,cAAc,EAAE;QAAK,CAAoB,CAAC;MAC9C;IACF,CAAC;IACD,MAAM,IAAI,CAACR,MAAM,CAAC4B,gBAAgB,CAAC/D,OAAO,CAAC;IAE3C,IAAI,IAAI,CAAC8C,KAAK,CAACH,cAAc,EAAE;MAC7B,IAAI,CAACV,QAAQ,CAAC;QAACU,cAAc,EAAE;MAAK,CAAoB,CAAC;IAC3D;IACA,IAAI,CAACV,QAAQ,CAAC;MAACU,cAAc,EAAE;IAAI,CAAoB,CAAC;EAC1D;EA+BAqB,kBAAkBA,CAAA,EAAG;IACnB,oBAAOhH,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAAC6G,KAAK,EAAEzG,MAAM,CAACa;IAAU,gBACnCrB,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAAC6G,KAAK,EAAEzG,MAAM,CAACkB;IAAY,gBAC9B1B,KAAA,CAAA2D,aAAA,CAACxD,gBAAgB,EAAA+G,QAAA,KACX,IAAI,CAACZ,YAAY,CAAC,OAAO,CAAC;MAC9Ba,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAAClC,QAAQ,CAAC;UAAEQ,aAAa,EAAE;YAACrB,GAAG,EAAE;UAAE,CAAC;UAAEsB,UAAU,EAAE,KAAK;UAAG0B,SAAS,EAAE;QAAK,CAAoB,CAAC;QACnG,IAAI,CAACrC,KAAK,CAACV,QAAQ,CAAC,CAAC;MACvB;IAAE,iBACFrE,KAAA,CAAA2D,aAAA,CAACtD,QAAQ;MAACgH,IAAI,EAAC,cAAc;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAO,CAAE,CACvC,CACd,CAAC,eACPvH,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAAC6G,KAAK,EAAEzG,MAAM,CAACoB;IAAW,GAC5B,CAAC,IAAI,CAACkE,KAAK,CAACJ,UAAU,gBAAG1F,KAAA,CAAA2D,aAAA,CAACxD,gBAAgB,EAAA+G,QAAA;MAACD,KAAK,EAAE,CAACzG,MAAM,CAACsB,MAAM,EAAEtB,MAAM,CAACwB,WAAW,EAAE,IAAI,CAAC+C,KAAK,CAAChB,WAAW,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC+B,KAAK,CAACZ,WAAW,GAAG;QAAEpE,eAAe,EAAE;MAAM,CAAC,GAAG,CAAC,CAAC,EACpL,IAAI,CAACiE,KAAK,CAAChB,WAAW,KAAK,OAAO,GAAG;QAAEjD,eAAe,EAAE;MAAQ,CAAC,GAAG,CAAC,CAAC,CAAE;MACxDqG,OAAO,EAAE,IAAI,CAACjB,aAAa,CAACsB,IAAI,CAAC,IAAI;IAAE,GACnC,IAAI,CAAClB,YAAY,CAAC,SAAS,CAAC,gBAChDtG,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAAC6G,KAAK,EAAE,CAACzG,MAAM,CAACsB,MAAM,EAAe,IAAI,CAACiD,KAAK,CAAChB,WAAW,KAAK,OAAO,GAAG,CAAC,CAAC,GAAGvD,MAAM,CAAC8B,WAAW,EAAE,IAAI,CAACyC,KAAK,CAAChB,WAAW,KAAK,OAAO,GAAG;QAAEjD,eAAe,EAAE;MAAQ,CAAC,GAAG,CAAC,CAAC;IAAE,CAAO,CACvK,CAAC,GAAG,IAClB,CAAC,eACPd,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAAC6G,KAAK,EAAEzG,MAAM,CAACqB;IAAa,GAC9B,IAAI,CAACiE,KAAK,CAACH,cAAc,gBAAI3F,KAAA,CAAA2D,aAAA,CAACxD,gBAAgB,EAAA+G,QAAA;MAC7CC,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAAClC,QAAQ,CAAC;UAAES,UAAU,EAAE,KAAK;UAAE0B,SAAS,EAAE;QAAK,CAAoB,CAAC;QACxE,IAAI,CAACrC,KAAK,CAACf,SAAS,CAAC,IAAI,CAAC8B,KAAK,CAACL,aAAa,CAAC;QAC9C,IAAI,CAACR,QAAQ,CAAC;UAAEQ,aAAa,EAAE;YAACrB,GAAG,EAAE;UAAE;QAAE,CAAoB,CAAC;MAChE;IAAE,GACE,IAAI,CAACkC,YAAY,CAAC,IAAI,CAAC,gBAC3BtG,KAAA,CAAA2D,aAAA,CAACtD,QAAQ;MAACgH,IAAI,EAAC,kBAAkB;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAO,CAAC,CAC1C,CAAC,gBAAKvH,KAAA,CAAA2D,aAAA,CAACxD,gBAAgB,EAAA+G,QAAA,KACnC,IAAI,CAACZ,YAAY,CAAC,QAAQ,CAAC;MAC/Ba,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAAClC,QAAQ,CAAC;UAACwC,UAAU,EAAE,IAAI,CAAC3B,KAAK,CAAC2B,UAAU,KAAK,MAAM,GAAG,OAAO,GAAG;QAAM,CAAoB,CAAC;MACrG;IAAE,iBACFzH,KAAA,CAAA2D,aAAA,CAACtD,QAAQ;MAACgH,IAAI,EAAC,gBAAgB;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAO,CAAE,CACzC,CACd,CACF,CAAC;EACT;EAEAG,kBAAkBA,CAACC,OAAY,EAAE;IAC/B,MAAMC,KAAK,GAAG,IAAI,CAACtC,aAAa,CAACsC,KAAK;IACtC,OAAO,IAAI,CAAC7C,KAAK,CAAChB,WAAW,KAAK,OAAO,gBACvC/D,KAAA,CAAA2D,aAAA,CAAC1D,eAAe;MAAC4H,MAAM,EAAE;QAACzD,GAAG,EAAG,IAAI,CAAC0B,KAAK,CAACL,aAAa,CAACrB;MAAG,CAAE;MAAC0D,UAAU,EAAEtF,UAAU,CAACuF,OAAQ;MAACd,KAAK,EAAE;QAACjG,IAAI,EAAE;MAAC;IAAE,CAAE,CAAC,gBACjHhB,KAAA,CAAA2D,aAAA,CAACiE,KAAK;MACJX,KAAK,EAAE;QAAEjG,IAAI,EAAE;MAAE,CAAE;MACnB6G,MAAM,EAAE;QACNzD,GAAG,EAAE,IAAI,CAAC0B,KAAK,CAACL,aAAa,CAACrB;MAChC,CAAE;MACF4D,UAAU,EAAE,IAAK;MACjBC,iBAAiB;MACjBC,SAAS;MACTJ,UAAU,EAAEtF,UAAU,CAACuF;IAAQ,CACzB,CAAC;EACf;EAEAI,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACrC,KAAK,CAACsB,SAAS,EAAE;MACxB,OAAO,IAAI;IACb;IACA,MAAMO,OAAO,GAAG,IAAI,CAACX,kBAAkB,CAAC,CAAC;IACzC,oBACEhH,KAAA,CAAA2D,aAAA,CAACrD,oBAAoB,QACnBgF,aAAkB,IAAK;MACvB,IAAI,CAACA,aAAa,GAAGA,aAAa;MAClC,MAAM8C,UAAU,GAAG,IAAI,CAAC9C,aAAa,CAAC8C,UAAU;MAChD,oBAAOpI,KAAA,CAAA2D,aAAA,CAACvD,IAAI;QAAC6G,KAAK,EAAEzG,MAAM,CAACC;MAAQ,GAClC,IAAI,CAACqF,KAAK,CAACJ,UAAU,GACpB,IAAI,CAACgC,kBAAkB,CAACC,OAAO,CAAC,gBAEhC3H,KAAA,CAAA2D,aAAA,CAACyE,UAAU;QACPC,GAAG,EAAC,oBAAoB;QACxBC,IAAI,EAAE,IAAI,CAACvD,KAAK,CAAChB,WAAW,KAAK,OAAO,GAAG,OAAO,GAAG,SAAU;QAC/DwE,MAAM,EAAE,IAAI,CAACzC,KAAK,CAAC2B,UAAW;QAC9Be,GAAG,EAAGA,GAAQ,IAAK;UAAE,IAAI,CAACrD,MAAM,GAAGqD,GAAG;QAAE,CAAE;QAC1CvB,KAAK,EAAE;UAACjG,IAAI,EAAE;QAAC,CAAE;QACjByH,aAAa,EAAEA,CAAA,KAAM,CAAC;MAAE,CAEhB,CAAE,EACfd,OACG,CAAC;IACP,CACsB,CAAC;EAC3B;AACF;AACA,MAAMrC,aAAa,GAAG,IAAI5C,aAAa,CAACnC,wBAAwB,CAAC;AACjE,eAAe+E,aAAa","ignoreList":[]}
|
package/styles/theme.js
CHANGED
|
@@ -77,10 +77,12 @@ export class Theme {
|
|
|
77
77
|
getAppConfig() {
|
|
78
78
|
return injector.get('APP_CONFIG');
|
|
79
79
|
}
|
|
80
|
-
enableTrace(flag) {
|
|
80
|
+
enableTrace(flag, resetCache = true) {
|
|
81
81
|
this.traceEnabled = flag;
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
if (resetCache && resetCache !== 'false') {
|
|
83
|
+
this.reset();
|
|
84
|
+
}
|
|
85
|
+
this.children.forEach(t => t.enableTrace(flag, resetCache));
|
|
84
86
|
}
|
|
85
87
|
subscribe(event, fn) {
|
|
86
88
|
return this.eventNotifer.subscribe(event, fn);
|
|
@@ -117,6 +119,9 @@ export class Theme {
|
|
|
117
119
|
}
|
|
118
120
|
});
|
|
119
121
|
}
|
|
122
|
+
if (isString(val) && val.match(/^-?\d+(\.\d+)?$/)) {
|
|
123
|
+
return parseFloat(val);
|
|
124
|
+
}
|
|
120
125
|
return val;
|
|
121
126
|
}
|
|
122
127
|
clearCache() {
|
|
@@ -257,6 +262,12 @@ export class Theme {
|
|
|
257
262
|
style['marginBottom'] = (_style$marginBottom = style['marginBottom']) !== null && _style$marginBottom !== void 0 ? _style$marginBottom : style['margin'];
|
|
258
263
|
delete style['margin'];
|
|
259
264
|
}
|
|
265
|
+
if (!isNil(style['opacity']) && typeof style['opacity'] === 'string' && style['opacity'].endsWith('%')) {
|
|
266
|
+
const percentage = parseFloat(style['opacity']);
|
|
267
|
+
if (!isNaN(percentage)) {
|
|
268
|
+
style['opacity'] = percentage / 100;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
260
271
|
if (!isNil(style['padding'])) {
|
|
261
272
|
var _style$paddingLeft, _style$paddingRight, _style$paddingTop, _style$paddingBottom;
|
|
262
273
|
style['paddingLeft'] = (_style$paddingLeft = style['paddingLeft']) !== null && _style$paddingLeft !== void 0 ? _style$paddingLeft : style['padding'];
|
|
@@ -300,6 +311,9 @@ export class Theme {
|
|
|
300
311
|
if (!isNil(style['color']) && style['color'] === 'transparent') {
|
|
301
312
|
style['color'] = 'rgba(255, 255, 255, 0)';
|
|
302
313
|
}
|
|
314
|
+
if (!isNil(style['color']) && style['color'] === 'transparent') {
|
|
315
|
+
style['color'] = 'rgba(255, 255, 255, 0)';
|
|
316
|
+
}
|
|
303
317
|
let screenWidth = Dimensions.get('window').width;
|
|
304
318
|
let screenHeight = Dimensions.get('window').height;
|
|
305
319
|
Object.keys(style).forEach((k, i) => {
|