@wavemaker/app-rn-runtime 11.14.1-3.6306 → 11.14.1-31.647762

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 (140) hide show
  1. package/components/advanced/carousel/carousel.component.js +1 -1
  2. package/components/advanced/carousel/carousel.component.js.map +1 -1
  3. package/components/basic/bottomsheet/bottomsheet.component.js +240 -33
  4. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  5. package/components/basic/bottomsheet/bottomsheet.styles.js +0 -3
  6. package/components/basic/bottomsheet/bottomsheet.styles.js.map +1 -1
  7. package/components/basic/label/label.component.js +11 -22
  8. package/components/basic/label/label.component.js.map +1 -1
  9. package/components/basic/label/label.props.js +1 -0
  10. package/components/basic/label/label.props.js.map +1 -1
  11. package/components/basic/progress-circle/progress-circle.component.js +3 -3
  12. package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
  13. package/components/chart/area-chart/area-chart.component.js +27 -10
  14. package/components/chart/area-chart/area-chart.component.js.map +1 -1
  15. package/components/chart/bar-chart/bar-chart.component.js +39 -7
  16. package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
  17. package/components/chart/bar-chart/bar-chart.props.js +1 -0
  18. package/components/chart/bar-chart/bar-chart.props.js.map +1 -1
  19. package/components/chart/basechart.component.js +8 -15
  20. package/components/chart/basechart.component.js.map +1 -1
  21. package/components/chart/basechart.props.js +1 -0
  22. package/components/chart/basechart.props.js.map +1 -1
  23. package/components/chart/bubble-chart/bubble-chart.component.js +23 -6
  24. package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
  25. package/components/chart/line-chart/line-chart.component.js +22 -5
  26. package/components/chart/line-chart/line-chart.component.js.map +1 -1
  27. package/components/chart/pie-chart/pie-chart.component.js +15 -4
  28. package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  29. package/components/chart/stack-chart/stack-chart.component.js +1 -1
  30. package/components/chart/stack-chart/stack-chart.component.js.map +1 -1
  31. package/components/container/accordion/accordionpane/accordionpane.component.js +6 -4
  32. package/components/container/accordion/accordionpane/accordionpane.component.js.map +1 -1
  33. package/components/container/container.component.js +207 -14
  34. package/components/container/container.component.js.map +1 -1
  35. package/components/container/container.props.js +6 -0
  36. package/components/container/container.props.js.map +1 -1
  37. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js +32 -4
  38. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js.map +1 -1
  39. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js +1 -0
  40. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js.map +1 -1
  41. package/components/container/panel/panel.component.js +1 -1
  42. package/components/container/panel/panel.component.js.map +1 -1
  43. package/components/container/tabs/tabpane/tabpane.component.js +1 -1
  44. package/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
  45. package/components/container/tabs/tabs.component.js +62 -29
  46. package/components/container/tabs/tabs.component.js.map +1 -1
  47. package/components/container/tabs/tabs.props.js +1 -0
  48. package/components/container/tabs/tabs.props.js.map +1 -1
  49. package/components/container/wizard/wizardstep/wizardstep.component.js +1 -1
  50. package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
  51. package/components/data/form/form-field/form-field.component.js +21 -1
  52. package/components/data/form/form-field/form-field.component.js.map +1 -1
  53. package/components/data/form/form-field/form-field.props.js +3 -0
  54. package/components/data/form/form-field/form-field.props.js.map +1 -1
  55. package/components/data/form/form.component.js +11 -3
  56. package/components/data/form/form.component.js.map +1 -1
  57. package/components/data/form/form.props.js +1 -0
  58. package/components/data/form/form.props.js.map +1 -1
  59. package/components/data/list/list.component.js +1 -1
  60. package/components/data/list/list.component.js.map +1 -1
  61. package/components/input/baseinput/baseinput.component.js +30 -3
  62. package/components/input/baseinput/baseinput.component.js.map +1 -1
  63. package/components/input/baseinput/baseinput.props.js +1 -0
  64. package/components/input/baseinput/baseinput.props.js.map +1 -1
  65. package/components/input/basenumber/basenumber.component.js +18 -3
  66. package/components/input/basenumber/basenumber.component.js.map +1 -1
  67. package/components/input/basenumber/basenumber.props.js +2 -0
  68. package/components/input/basenumber/basenumber.props.js.map +1 -1
  69. package/components/input/calendar/calendar.component.js +5 -1
  70. package/components/input/calendar/calendar.component.js.map +1 -1
  71. package/components/input/calendar/views/month-view.js +8 -1
  72. package/components/input/calendar/views/month-view.js.map +1 -1
  73. package/components/input/checkboxset/checkboxset.component.js +1 -1
  74. package/components/input/checkboxset/checkboxset.component.js.map +1 -1
  75. package/components/input/currency/currency.component.js +2 -0
  76. package/components/input/currency/currency.component.js.map +1 -1
  77. package/components/input/currency/currency.styles.js +10 -1
  78. package/components/input/currency/currency.styles.js.map +1 -1
  79. package/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js +6 -1
  80. package/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js.map +1 -1
  81. package/components/input/epoch/wheelpickermodal/time/time-picker-modal.component.js +6 -1
  82. package/components/input/epoch/wheelpickermodal/time/time-picker-modal.component.js.map +1 -1
  83. package/components/input/number/number.component.js +2 -0
  84. package/components/input/number/number.component.js.map +1 -1
  85. package/components/input/number/number.styles.js +4 -0
  86. package/components/input/number/number.styles.js.map +1 -1
  87. package/components/input/radioset/radioset.component.js +6 -3
  88. package/components/input/radioset/radioset.component.js.map +1 -1
  89. package/components/input/text/text.component.js +11 -0
  90. package/components/input/text/text.component.js.map +1 -1
  91. package/components/input/text/text.props.js +1 -1
  92. package/components/input/text/text.props.js.map +1 -1
  93. package/components/input/text/text.styles.js +17 -0
  94. package/components/input/text/text.styles.js.map +1 -1
  95. package/components/input/textarea/textarea.component.js +1 -0
  96. package/components/input/textarea/textarea.component.js.map +1 -1
  97. package/components/input/textarea/textarea.styles.js +4 -0
  98. package/components/input/textarea/textarea.styles.js.map +1 -1
  99. package/components/navigation/popover/popover.component.js +3 -3
  100. package/components/navigation/popover/popover.component.js.map +1 -1
  101. package/components/page/left-panel/left-panel.component.js +1 -1
  102. package/components/page/left-panel/left-panel.component.js.map +1 -1
  103. package/components/page/page-content/page-content.component.js +17 -5
  104. package/components/page/page-content/page-content.component.js.map +1 -1
  105. package/components/page/page-content/page-content.props.js +2 -0
  106. package/components/page/page-content/page-content.props.js.map +1 -1
  107. package/core/AppConfig.js.map +1 -1
  108. package/core/base.component.js +23 -0
  109. package/core/base.component.js.map +1 -1
  110. package/core/components/textinput.component.js +27 -5
  111. package/core/components/textinput.component.js.map +1 -1
  112. package/core/environment.js +25 -0
  113. package/core/environment.js.map +1 -0
  114. package/core/fixed-view.component.js +19 -2
  115. package/core/fixed-view.component.js.map +1 -1
  116. package/core/tappable.component.js +109 -15
  117. package/core/tappable.component.js.map +1 -1
  118. package/core/viewport.js +13 -8
  119. package/core/viewport.js.map +1 -1
  120. package/gestures/carousel-swipe.animation.js +1 -1
  121. package/gestures/carousel-swipe.animation.js.map +1 -1
  122. package/npm-shrinkwrap.json +4100 -2695
  123. package/package-lock.json +4100 -2695
  124. package/package.json +5 -2
  125. package/runtime/App.js +1 -0
  126. package/runtime/App.js.map +1 -1
  127. package/runtime/base-fragment.component.js +28 -5
  128. package/runtime/base-fragment.component.js.map +1 -1
  129. package/runtime/base-page.component.js +2 -1
  130. package/runtime/base-page.component.js.map +1 -1
  131. package/runtime/navigator/drawer.navigator.js +2 -0
  132. package/runtime/navigator/drawer.navigator.js.map +1 -1
  133. package/runtime/navigator/stack.navigator.js +22 -1
  134. package/runtime/navigator/stack.navigator.js.map +1 -1
  135. package/runtime/services/device/scan-service.js +12 -34
  136. package/runtime/services/device/scan-service.js.map +1 -1
  137. package/styles/theme.js +27 -2
  138. package/styles/theme.js.map +1 -1
  139. package/styles/theme.variables.js +2 -0
  140. 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","globalCacheEnabled","enablePageCache","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 const globalCacheEnabled = this.appConfig.enablePageCache !== false;\n this.cache = globalCacheEnabled && !(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":[]}
@@ -22,6 +22,8 @@ class AppDrawerNavigator extends React.Component {
22
22
  return {
23
23
  drawerType: this.props.type,
24
24
  headerShown: false,
25
+ overlayColor: ThemeVariables.INSTANCE.leftPanelOverlayColor,
26
+ swipeEnabled: !this.props.hide,
25
27
  gestureHandlerProps: {
26
28
  enabled: !this.props.hide
27
29
  },
@@ -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","INSTANCE","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 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,mBAAmB,EAAE;YAAEC,OAAO,EAAE,CAAC,IAAI,CAAClB,KAAK,CAACmB;UAAK,CAAC;UAClDC,WAAW,EAAE;YAAEC,eAAe,EAAG1B,cAAc,CAAC2B,QAAQ,CAACC,kBAAkB;YAAE,GAAGd;UAAU;QAAC,CAAC;MAChG;IAAE,gBACFjB,KAAA,CAAAU,aAAA,CAACN,MAAM,CAAC4B,MAAM;MAACC,IAAI,EAAC;IAAO,GACvBC,MAAM,IAAK,IAAI,CAAC1B,KAAK,CAAC2B,aACX,CACC,CAAC;EACrB;AACF;AAEA,eAAe9B,kBAAkB","ignoreList":[]}
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","swipeEnabled","hide","gestureHandlerProps","enabled","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 swipeEnabled: !this.props.hide,\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,YAAY,EAAE,CAAC,IAAI,CAACpB,KAAK,CAACqB,IAAI;UAC9BC,mBAAmB,EAAE;YAAEC,OAAO,EAAE,CAAC,IAAI,CAACvB,KAAK,CAACqB;UAAK,CAAC;UAClDG,WAAW,EAAE;YAAEC,eAAe,EAAG9B,cAAc,CAACuB,QAAQ,CAACQ,kBAAkB;YAAE,GAAGjB;UAAU;QAAC,CAAC;MAChG;IAAE,gBACFjB,KAAA,CAAAU,aAAA,CAACN,MAAM,CAAC+B,MAAM;MAACC,IAAI,EAAC;IAAO,GACvBC,MAAM,IAAK,IAAI,CAAC7B,KAAK,CAAC8B,aACX,CACC,CAAC;EACrB;AACF;AAEA,eAAejC,kBAAkB","ignoreList":[]}
@@ -2,10 +2,11 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
3
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
4
  import React from 'react';
5
- import { View } from 'react-native';
5
+ import { Platform, View } from 'react-native';
6
6
  import { createStackNavigator } from '@react-navigation/stack';
7
7
  import ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';
8
8
  import ErrorBoundary from '@wavemaker/app-rn-runtime/core/error-boundary.component';
9
+ import injector from '@wavemaker/app-rn-runtime/core/injector';
9
10
  const Stack = createStackNavigator();
10
11
  const pages = {};
11
12
  class Screen extends React.Component {
@@ -54,7 +55,22 @@ const getPageId = (pageName, pageParams) => {
54
55
  return `${pageName}?${pageParamsStr}`;
55
56
  };
56
57
  const AppStackNavigator = props => {
58
+ const appConfig = injector.get('APP_CONFIG');
59
+ const disablePageAnimation = (appConfig === null || appConfig === void 0 ? void 0 : appConfig.disableNavigationAnimation) || false;
60
+ const pageTransitionAnimation = (appConfig === null || appConfig === void 0 ? void 0 : appConfig.pageTransitionAnimation) || "";
61
+ /*
62
+ Setting detachInactiveScreens={false} for Android.
63
+ With Fabric + React Navigation, navigating to an existing stack screen
64
+ can cause a view reattachment conflict, throwing errors like:
65
+ - removeViewAt tried to remove a React View that was actually reused.
66
+ - addViewAt: cannot insert view [1944] into parent [666]: View already has a parent: [-1]
67
+ This breaks the touch responder system (scroll works but touch events stop).
68
+ refer : https://github.com/facebook/react-native/blob/7f1a1e6c93ec1acd34b5756656210ccea97fb4a6/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt#L363
69
+ Until fixed in future React Native versions, disabling screen detaching is the workaround.
70
+ */
71
+ const detachInactiveScreens = Platform.OS === 'android' && (appConfig === null || appConfig === void 0 ? void 0 : appConfig.detachInactiveScreens) === false ? false : true;
57
72
  return /*#__PURE__*/React.createElement(Stack.Navigator, {
73
+ detachInactiveScreens: detachInactiveScreens,
58
74
  initialRouteName: props.landingPage
59
75
  }, props.pages.map(p => {
60
76
  pages[p.name] = p;
@@ -66,6 +82,11 @@ const AppStackNavigator = props => {
66
82
  params
67
83
  }) => getPageId(p.name, params),
68
84
  options: {
85
+ ...(pageTransitionAnimation ? {
86
+ animation: pageTransitionAnimation
87
+ } : disablePageAnimation && {
88
+ animation: 'none'
89
+ }),
69
90
  headerShown: false,
70
91
  cardStyle: {
71
92
  backgroundColor: ThemeVariables.INSTANCE.pageContentBgColor
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","createStackNavigator","ThemeVariables","ErrorBoundary","Stack","pages","Screen","Component","constructor","props","_defineProperty","state","renew","page","createPage","navigation","cleanUp","push","addListener","setState","createElement","route","name","component","destroyMe","setTimeout","componentWillUnmount","forEach","fn","render","getPageId","pageName","pageParams","pageParamsStr","Object","keys","sort","map","k","join","AppStackNavigator","Navigator","initialRouteName","landingPage","p","key","getId","params","options","headerShown","cardStyle","backgroundColor","INSTANCE","pageContentBgColor"],"sources":["stack.navigator.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { createStackNavigator } from '@react-navigation/stack';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport ErrorBoundary from '@wavemaker/app-rn-runtime/core/error-boundary.component';\n\nconst Stack = createStackNavigator();\n\ninterface AppStackNavigatorProps {\n pages: any[];\n landingPage: string; \n}\n\nconst pages = {} as any;\n\nclass Screen extends React.Component {\n\n private cleanUp = [] as Function[];\n\n constructor(props: any) {\n super(props);\n this.state = {\n renew: false,\n page: this.createPage()\n };\n const navigation = (this.props as any).navigation as any;\n this.cleanUp.push(navigation.addListener('focus', () => {\n const state = (this.state as any);\n if (state.renew) {\n state.page = this.createPage();\n this.setState(() => ({\n renew: false,\n page: state.page\n }));\n }\n }));\n }\n\n private createPage() {\n const props = this.props as any;\n return (\n <ErrorBoundary>\n {React.createElement(pages[props.route.name].component, {...props, destroyMe: () => {\n setTimeout(() => {\n this.setState(() => ({renew: true, page: null}));\n }, 100);\n }})}\n </ErrorBoundary>\n );\n }\n\n componentWillUnmount() {\n this.cleanUp.forEach(fn => fn && fn());\n }\n\n render() {\n return (this.state as any).page || (<View/>);\n }\n}\n\nconst getPageId = (pageName: string, pageParams: any) => {\n const pageParamsStr = pageParams ? Object.keys(pageParams)\n .sort()\n .map((k: string) => `${k}=${pageParams[k]}`)\n .join('&') : '';\n return `${pageName}?${pageParamsStr}`;\n}\n\nconst AppStackNavigator = (props: AppStackNavigatorProps) => {\n return (<Stack.Navigator initialRouteName={props.landingPage}>\n {props.pages.map(p => {\n pages[p.name] = p;\n return (\n <Stack.Screen key={p.name}\n name={p.name}\n component={Screen}\n getId={({params}) => getPageId(p.name, params)}\n options={{\n headerShown: false,\n cardStyle: {\n backgroundColor: ThemeVariables.INSTANCE.pageContentBgColor\n }\n }}\n />);\n })}\n </Stack.Navigator>);\n};\n\nexport default AppStackNavigator;"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Platform","View","createStackNavigator","ThemeVariables","ErrorBoundary","injector","Stack","pages","Screen","Component","constructor","props","_defineProperty","state","renew","page","createPage","navigation","cleanUp","push","addListener","setState","createElement","route","name","component","destroyMe","setTimeout","componentWillUnmount","forEach","fn","render","getPageId","pageName","pageParams","pageParamsStr","Object","keys","sort","map","k","join","AppStackNavigator","appConfig","get","disablePageAnimation","disableNavigationAnimation","pageTransitionAnimation","detachInactiveScreens","OS","Navigator","initialRouteName","landingPage","p","key","getId","params","options","animation","headerShown","cardStyle","backgroundColor","INSTANCE","pageContentBgColor"],"sources":["stack.navigator.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, View } from 'react-native';\nimport { createStackNavigator } from '@react-navigation/stack';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport ErrorBoundary from '@wavemaker/app-rn-runtime/core/error-boundary.component';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\n\n\nconst Stack = createStackNavigator();\n\ninterface AppStackNavigatorProps {\n pages: any[];\n landingPage: string; \n}\n\nconst pages = {} as any;\n\nclass Screen extends React.Component {\n\n private cleanUp = [] as Function[];\n\n constructor(props: any) {\n super(props);\n this.state = {\n renew: false,\n page: this.createPage()\n };\n const navigation = (this.props as any).navigation as any;\n this.cleanUp.push(navigation.addListener('focus', () => {\n const state = (this.state as any);\n if (state.renew) {\n state.page = this.createPage();\n this.setState(() => ({\n renew: false,\n page: state.page\n }));\n }\n }));\n }\n\n private createPage() {\n const props = this.props as any;\n return (\n <ErrorBoundary>\n {React.createElement(pages[props.route.name].component, {...props, destroyMe: () => {\n setTimeout(() => {\n this.setState(() => ({renew: true, page: null}));\n }, 100);\n }})}\n </ErrorBoundary>\n );\n }\n\n componentWillUnmount() {\n this.cleanUp.forEach(fn => fn && fn());\n }\n\n render() {\n return (this.state as any).page || (<View/>);\n }\n}\n\nconst getPageId = (pageName: string, pageParams: any) => {\n const pageParamsStr = pageParams ? Object.keys(pageParams)\n .sort()\n .map((k: string) => `${k}=${pageParams[k]}`)\n .join('&') : '';\n return `${pageName}?${pageParamsStr}`;\n}\n\nconst AppStackNavigator = (props: AppStackNavigatorProps) => {\n const appConfig = injector.get<AppConfig>('APP_CONFIG');\n const disablePageAnimation = appConfig?.disableNavigationAnimation || false\n const pageTransitionAnimation = appConfig?.pageTransitionAnimation || \"\"\n /*\n Setting detachInactiveScreens={false} for Android.\n With Fabric + React Navigation, navigating to an existing stack screen\n can cause a view reattachment conflict, throwing errors like:\n - removeViewAt tried to remove a React View that was actually reused.\n - addViewAt: cannot insert view [1944] into parent [666]: View already has a parent: [-1]\n\n This breaks the touch responder system (scroll works but touch events stop).\n refer : https://github.com/facebook/react-native/blob/7f1a1e6c93ec1acd34b5756656210ccea97fb4a6/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt#L363\n Until fixed in future React Native versions, disabling screen detaching is the workaround.\n */\n const detachInactiveScreens = Platform.OS === 'android' && appConfig?.detachInactiveScreens === false ? false : true;\n\n return (<Stack.Navigator detachInactiveScreens={detachInactiveScreens} initialRouteName={props.landingPage}>\n {props.pages.map(p => {\n pages[p.name] = p;\n return (\n <Stack.Screen key={p.name}\n name={p.name}\n component={Screen}\n getId={({params}) => getPageId(p.name, params)}\n options={{\n ...(pageTransitionAnimation ? { animation: pageTransitionAnimation as any } : (disablePageAnimation && { animation: 'none' })),\n headerShown: false,\n cardStyle: {\n backgroundColor: ThemeVariables.INSTANCE.pageContentBgColor\n }\n }}\n />);\n })}\n </Stack.Navigator>);\n};\n\nexport default AppStackNavigator;"],"mappings":"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","ignoreList":[]}
@@ -56,33 +56,7 @@ const styles = StyleSheet.create({
56
56
  backgroundColor: opacity
57
57
  }
58
58
  });
59
- const BarCodeType = [{
60
- 0: 'aztec'
61
- }, {
62
- 1: 'ean13'
63
- }, {
64
- 2: 'ean8'
65
- }, {
66
- 3: 'qr'
67
- }, {
68
- 4: 'pdf417'
69
- }, {
70
- 5: 'upc_e'
71
- }, {
72
- 6: 'datamatrix'
73
- }, {
74
- 7: 'code39'
75
- }, {
76
- 8: 'code93'
77
- }, {
78
- 9: 'itf14'
79
- }, {
80
- 10: 'codabar'
81
- }, {
82
- 11: 'code128'
83
- }, {
84
- 12: 'upc_a'
85
- }];
59
+ const BARCODE_TYPES = ['aztec', 'ean13', 'ean8', 'qr', 'pdf417', 'upc_e', 'datamatrix', 'code39', 'code93', 'itf14', 'codabar', 'code128', 'upc_a'];
86
60
  export class ScanService {
87
61
  constructor(displayManager) {
88
62
  this.displayManager = displayManager;
@@ -105,14 +79,19 @@ export class ScanService {
105
79
  const format = (params === null || params === void 0 ? void 0 : params.barcodeFormat) || 'ALL';
106
80
  const barcodeFormat = Platform.OS === 'ios' ? undefined : barcodeFormatOptions[format];
107
81
  const CameraView = params === null || params === void 0 || (_params$scanPluginSer = params.scanPluginService) === null || _params$scanPluginSer === void 0 ? void 0 : _params$scanPluginSer.CameraView;
82
+ /**
83
+ * 'ALL' means any barcode in WaveMaker; the camera SDK does not accept the string 'ALL' as a barcode type.
84
+ * Omit scanner settings so the SDK scans every supported format.
85
+ */
86
+ const scannerBarcodeSettings = barcodeFormat && barcodeFormat !== 'ALL' ? {
87
+ barcodeTypes: [barcodeFormat]
88
+ } : undefined;
108
89
  return new Promise((resolve, reject) => {
109
90
  var _params$permissionSer;
110
91
  (params === null || params === void 0 || (_params$permissionSer = params.permissionService) === null || _params$permissionSer === void 0 ? void 0 : _params$permissionSer.requestPermissions) && params.permissionService.requestPermissions('camera').then(() => {
111
92
  const destroy = this.displayManager.show({
112
93
  content: /*#__PURE__*/React.createElement(CameraView, {
113
- barcodeScannerSettings: barcodeFormat ? {
114
- barcodeTypes: [BarCodeType[barcodeFormat]]
115
- } : undefined,
94
+ barcodeScannerSettings: scannerBarcodeSettings,
116
95
  onBarcodeScanned: result => {
117
96
  destroy.call(this.displayManager);
118
97
  resolve(result);
@@ -144,11 +123,10 @@ export class ScanService {
144
123
  });
145
124
  }, reject);
146
125
  }).then(response => {
147
- let format;
126
+ let format = '';
148
127
  if (response.type) {
149
- const values = Object.values(BarCodeType);
150
- const index = values.indexOf(response.type);
151
- format = index > -1 ? Object.keys(BarCodeType)[index] : '';
128
+ const index = BARCODE_TYPES.indexOf(response.type);
129
+ format = index > -1 ? String(index) : '';
152
130
  }
153
131
  return Promise.resolve({
154
132
  text: response.data,
@@ -1 +1 @@
1
- {"version":3,"names":["Ionicons","Platform","StyleSheet","TouchableOpacity","View","React","appDisplayManagerService","barcodeFormatOptions","opacity","styles","create","container","flex","flexDirection","closeWrapper","justifyContent","alignItems","paddingBottom","topWrapper","backgroundColor","centerWrapper","leftWrapper","focused","rightWrapper","bottomWrapper","BarCodeType","ScanService","constructor","displayManager","getTestProps","suffix","id","OS","accessibilityLabel","testID","accessible","scanBarcode","params","_params$scanPluginSer","format","barcodeFormat","undefined","CameraView","scanPluginService","Promise","resolve","reject","_params$permissionSer","permissionService","requestPermissions","then","destroy","show","content","createElement","barcodeScannerSettings","barcodeTypes","onBarcodeScanned","result","call","style","absoluteFillObject","_extends","onPress","name","size","color","response","type","values","Object","index","indexOf","keys","text","data","cancelled","scanService"],"sources":["scan-service.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\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 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\nconst BarCodeType: any = [\n { 0: 'aztec' },\n { 1: 'ean13' },\n { 2: 'ean8' },\n { 3: 'qr' },\n { 4: 'pdf417' },\n { 5: 'upc_e' },\n { 6: 'datamatrix' },\n { 7: 'code39' },\n { 8: 'code93' },\n { 9: 'itf14' },\n { 10: 'codabar' },\n { 11: 'code128' },\n { 12: 'upc_a' }\n];\n\n\nexport class ScanService {\n\n constructor(private displayManager: DisplayManager) {}\n\n getTestProps(suffix: string) {\n const id = \"scan\" + (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 public scanBarcode(params: ScanInput): Promise<ScanOutput> {\n const format = params?.barcodeFormat || 'ALL';\n const barcodeFormat: string | undefined = Platform.OS === 'ios' ? undefined : barcodeFormatOptions[format];\n const CameraView = params?.scanPluginService?.CameraView;\n return new Promise((resolve, reject) => {\n params?.permissionService?.requestPermissions && params.permissionService.requestPermissions('camera').then(() => {\n const destroy = this.displayManager.show({\n content: (<CameraView\n barcodeScannerSettings={barcodeFormat ? {\n barcodeTypes: [BarCodeType[barcodeFormat]],\n }: undefined}\n onBarcodeScanned={(result: any) => {\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 {... this.getTestProps('close_button')}\n onPress={() => {\n destroy.call(this.displayManager);\n }}>\n <Ionicons name='close-circle' size={48} color='white' />\n </TouchableOpacity>\n </View>\n </View>\n </CameraView>)\n });\n }, reject)\n }).then((response: any) => {\n let format;\n if (response.type) {\n const values = Object.values(BarCodeType);\n const index = values.indexOf(response.type);\n format = index > -1 ? Object.keys(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;"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Ionicons","Platform","StyleSheet","TouchableOpacity","View","React","appDisplayManagerService","barcodeFormatOptions","opacity","styles","create","container","flex","flexDirection","closeWrapper","justifyContent","alignItems","paddingBottom","topWrapper","backgroundColor","centerWrapper","leftWrapper","focused","rightWrapper","bottomWrapper","BARCODE_TYPES","ScanService","constructor","displayManager","getTestProps","suffix","id","OS","accessibilityLabel","testID","accessible","scanBarcode","params","_params$scanPluginSer","format","barcodeFormat","undefined","CameraView","scanPluginService","scannerBarcodeSettings","barcodeTypes","Promise","resolve","reject","_params$permissionSer","permissionService","requestPermissions","then","destroy","show","content","createElement","barcodeScannerSettings","onBarcodeScanned","result","call","style","absoluteFillObject","_extends","onPress","name","size","color","response","type","index","indexOf","String","text","data","cancelled","scanService"],"sources":["scan-service.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\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 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\nconst BARCODE_TYPES = [\n 'aztec',\n 'ean13',\n 'ean8',\n 'qr',\n 'pdf417',\n 'upc_e',\n 'datamatrix',\n 'code39',\n 'code93',\n 'itf14',\n 'codabar',\n 'code128',\n 'upc_a',\n] as const;\n\n\nexport class ScanService {\n\n constructor(private displayManager: DisplayManager) {}\n\n getTestProps(suffix: string) {\n const id = \"scan\" + (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 public scanBarcode(params: ScanInput): Promise<ScanOutput> {\n const format = params?.barcodeFormat || 'ALL';\n const barcodeFormat: string | undefined = Platform.OS === 'ios' ? undefined : barcodeFormatOptions[format];\n const CameraView = params?.scanPluginService?.CameraView;\n /**\n * 'ALL' means any barcode in WaveMaker; the camera SDK does not accept the string 'ALL' as a barcode type.\n * Omit scanner settings so the SDK scans every supported format.\n */\n const scannerBarcodeSettings =\n barcodeFormat && barcodeFormat !== 'ALL'\n ? { barcodeTypes: [barcodeFormat] as string[] }\n : undefined;\n return new Promise((resolve, reject) => {\n params?.permissionService?.requestPermissions && params.permissionService.requestPermissions('camera').then(() => {\n const destroy = this.displayManager.show({\n content: (<CameraView\n barcodeScannerSettings={scannerBarcodeSettings}\n onBarcodeScanned={(result: any) => {\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 {... this.getTestProps('close_button')}\n onPress={() => {\n destroy.call(this.displayManager);\n }}>\n <Ionicons name='close-circle' size={48} color='white' />\n </TouchableOpacity>\n </View>\n </View>\n </CameraView>)\n });\n }, reject)\n }).then((response: any) => {\n let format = '';\n if (response.type) {\n const index = BARCODE_TYPES.indexOf(response.type as (typeof BARCODE_TYPES)[number]);\n format = index > -1 ? String(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;"],"mappings":"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","ignoreList":[]}
package/styles/theme.js CHANGED
@@ -96,6 +96,9 @@ export class Theme {
96
96
  val = this.replaceVariables(val);
97
97
  });
98
98
  }
99
+ if (isString(val) && val.match(/^-?\d+(\.\d+)?$/)) {
100
+ return parseFloat(val);
101
+ }
99
102
  return val;
100
103
  }
101
104
  clearCache() {
@@ -106,6 +109,24 @@ export class Theme {
106
109
  this.styleGenerators.push(fn);
107
110
  fn(ThemeVariables.INSTANCE, this.addStyle.bind(this));
108
111
  }
112
+ handleMediaQueryStyles(styles) {
113
+ const mediaQueries = [];
114
+ Object.keys(styles).forEach(item => {
115
+ if (/@media/.test(item) && matchMedia(item.replace('@media ', '')).matches) {
116
+ mediaQueries.push(item);
117
+ }
118
+ });
119
+ if (mediaQueries.length === 0) {
120
+ return styles;
121
+ }
122
+ mediaQueries.forEach(mediaQueryCondition => {
123
+ const mediaQueryStyles = styles[mediaQueryCondition];
124
+ Object.keys(mediaQueryStyles).forEach(item => {
125
+ styles[item] = mediaQueryStyles[item];
126
+ });
127
+ });
128
+ return styles;
129
+ }
109
130
  checkStyleProperties(name, value) {
110
131
  if (isObject(value)) {
111
132
  Object.keys(value).map(k => this.checkStyleProperties(k, value[k]));
@@ -234,6 +255,9 @@ export class Theme {
234
255
  }
235
256
  }
236
257
  }
258
+ if (!isNil(style['color']) && style['color'] === 'transparent') {
259
+ style['color'] = 'rgba(255, 255, 255, 0)';
260
+ }
237
261
  let screenWidth = Dimensions.get('window').width;
238
262
  let screenHeight = Dimensions.get('window').height;
239
263
  Object.keys(style).forEach((k, i) => {
@@ -320,9 +344,10 @@ export class Theme {
320
344
  this.styles = {};
321
345
  this.clearCache();
322
346
  if (styles) {
347
+ const filteredStyles = this.handleMediaQueryStyles(styles);
323
348
  this.registerStyle((themeVariables, addStyle) => {
324
- Object.keys(styles).forEach(k => {
325
- addStyle(k, '', styles[k]);
349
+ Object.keys(filteredStyles).forEach(k => {
350
+ addStyle(k, '', filteredStyles[k]);
326
351
  });
327
352
  });
328
353
  } else {