@wavemaker/app-rn-runtime 11.15.5-rc.259 → 11.15.6-1.647697

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 (71) hide show
  1. package/components/basic/bottomsheet/bottomsheet.component.js +10 -131
  2. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  3. package/components/basic/bottomsheet/bottomsheet.styles.js +3 -0
  4. package/components/basic/bottomsheet/bottomsheet.styles.js.map +1 -1
  5. package/components/basic/button/button.component.js +4 -6
  6. package/components/basic/button/button.component.js.map +1 -1
  7. package/components/basic/progress-circle/progress-circle.component.js +1 -3
  8. package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
  9. package/components/container/container.component.js +1 -23
  10. package/components/container/container.component.js.map +1 -1
  11. package/components/container/container.props.js +0 -1
  12. package/components/container/container.props.js.map +1 -1
  13. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js +1 -25
  14. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js.map +1 -1
  15. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js +0 -1
  16. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js.map +1 -1
  17. package/components/data/form/form-field/form-field.component.js +0 -1
  18. package/components/data/form/form-field/form-field.component.js.map +1 -1
  19. package/components/data/form/form-field/form-field.props.js +0 -1
  20. package/components/data/form/form-field/form-field.props.js.map +1 -1
  21. package/components/input/baseinput/baseinput.component.js +0 -7
  22. package/components/input/baseinput/baseinput.component.js.map +1 -1
  23. package/components/input/calendar/calendar.component.js +0 -4
  24. package/components/input/calendar/calendar.component.js.map +1 -1
  25. package/components/input/calendar/views/month-view.js +1 -8
  26. package/components/input/calendar/views/month-view.js.map +1 -1
  27. package/components/input/checkboxset/checkboxset.component.js +2 -2
  28. package/components/input/checkboxset/checkboxset.component.js.map +1 -1
  29. package/components/input/checkboxset/checkboxset.props.js +0 -1
  30. package/components/input/checkboxset/checkboxset.props.js.map +1 -1
  31. package/components/input/checkboxset/checkboxset.styles.js +0 -6
  32. package/components/input/checkboxset/checkboxset.styles.js.map +1 -1
  33. package/components/input/chips/chips.component.js +1 -1
  34. package/components/input/chips/chips.component.js.map +1 -1
  35. package/components/input/chips/chips.props.js +0 -1
  36. package/components/input/chips/chips.props.js.map +1 -1
  37. package/components/input/currency/currency.component.js +0 -1
  38. package/components/input/currency/currency.component.js.map +1 -1
  39. package/components/input/number/number.component.js +0 -1
  40. package/components/input/number/number.component.js.map +1 -1
  41. package/components/input/radioset/radioset.component.js +2 -2
  42. package/components/input/radioset/radioset.component.js.map +1 -1
  43. package/components/input/radioset/radioset.props.js +0 -1
  44. package/components/input/radioset/radioset.props.js.map +1 -1
  45. package/components/input/radioset/radioset.styles.js +0 -6
  46. package/components/input/radioset/radioset.styles.js.map +1 -1
  47. package/components/input/text/text.component.js +0 -10
  48. package/components/input/text/text.component.js.map +1 -1
  49. package/components/input/text/text.props.js +0 -1
  50. package/components/input/text/text.props.js.map +1 -1
  51. package/components/input/text/text.styles.js +1 -7
  52. package/components/input/text/text.styles.js.map +1 -1
  53. package/components/input/textarea/textarea.component.js +0 -1
  54. package/components/input/textarea/textarea.component.js.map +1 -1
  55. package/core/AppConfig.js.map +1 -1
  56. package/core/components/textinput.component.js +3 -20
  57. package/core/components/textinput.component.js.map +1 -1
  58. package/core/tappable.component.js +15 -109
  59. package/core/tappable.component.js.map +1 -1
  60. package/npm-shrinkwrap.json +151 -132
  61. package/package-lock.json +151 -132
  62. package/package.json +2 -2
  63. package/runtime/navigator/drawer.navigator.js +0 -1
  64. package/runtime/navigator/drawer.navigator.js.map +1 -1
  65. package/runtime/navigator/stack.navigator.js +1 -13
  66. package/runtime/navigator/stack.navigator.js.map +1 -1
  67. package/runtime/services/device/scan-service.js +34 -12
  68. package/runtime/services/device/scan-service.js.map +1 -1
  69. package/styles/theme.js +10 -20
  70. package/styles/theme.js.map +1 -1
  71. package/styles/theme.variables.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/app-rn-runtime",
3
- "version": "11.15.5-rc.259",
3
+ "version": "11.15.6-1.647697",
4
4
  "description": "''",
5
5
  "main": "index",
6
6
  "module": "index",
@@ -59,7 +59,7 @@
59
59
  "@react-navigation/drawer": "7.5.8",
60
60
  "@react-navigation/native": "7.1.18",
61
61
  "@react-navigation/stack": "7.4.8",
62
- "@wavemaker/variables": "11.15.5-rc.259",
62
+ "@wavemaker/variables": "11.15.6-1.647697",
63
63
  "axios": "1.8.3",
64
64
  "color": "4.2.3",
65
65
  "colorjs.io": "^0.5.2",
@@ -23,7 +23,6 @@ class AppDrawerNavigator extends React.Component {
23
23
  drawerType: this.props.type,
24
24
  headerShown: false,
25
25
  overlayColor: ThemeVariables.INSTANCE.leftPanelOverlayColor,
26
- swipeEnabled: !this.props.hide,
27
26
  gestureHandlerProps: {
28
27
  enabled: !this.props.hide
29
28
  },
@@ -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","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":[]}
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":[]}
@@ -2,7 +2,7 @@ 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 { Platform, View } from 'react-native';
5
+ import { 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';
@@ -57,19 +57,7 @@ const getPageId = (pageName, pageParams) => {
57
57
  const AppStackNavigator = props => {
58
58
  const appConfig = injector.get('APP_CONFIG');
59
59
  const disablePageAnimation = (appConfig === null || appConfig === void 0 ? void 0 : appConfig.disableNavigationAnimation) || false;
60
- /*
61
- Setting detachInactiveScreens={false} for Android.
62
- With Fabric + React Navigation, navigating to an existing stack screen
63
- can cause a view reattachment conflict, throwing errors like:
64
- - removeViewAt tried to remove a React View that was actually reused.
65
- - addViewAt: cannot insert view [1944] into parent [666]: View already has a parent: [-1]
66
- This breaks the touch responder system (scroll works but touch events stop).
67
- refer : https://github.com/facebook/react-native/blob/7f1a1e6c93ec1acd34b5756656210ccea97fb4a6/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt#L363
68
- Until fixed in future React Native versions, disabling screen detaching is the workaround.
69
- */
70
- const detachInactiveScreens = Platform.OS === 'android' && (appConfig === null || appConfig === void 0 ? void 0 : appConfig.detachInactiveScreens) === false ? false : true;
71
60
  return /*#__PURE__*/React.createElement(Stack.Navigator, {
72
- detachInactiveScreens: detachInactiveScreens,
73
61
  initialRouteName: props.landingPage
74
62
  }, props.pages.map(p => {
75
63
  pages[p.name] = p;
@@ -1 +1 @@
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","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 /*\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 \n name={p.name}\n component={Screen}\n getId={({params}) => getPageId(p.name, params)}\n options={{\n ...(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":[]}
1
+ {"version":3,"names":["React","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","Navigator","initialRouteName","landingPage","p","key","getId","params","options","animation","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';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\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 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 \n name={p.name}\n component={Screen}\n getId={({params}) => getPageId(p.name, params)}\n options={{\n ...(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,7 +56,33 @@ const styles = StyleSheet.create({
56
56
  backgroundColor: opacity
57
57
  }
58
58
  });
59
- const BARCODE_TYPES = ['aztec', 'ean13', 'ean8', 'qr', 'pdf417', 'upc_e', 'datamatrix', 'code39', 'code93', 'itf14', 'codabar', 'code128', 'upc_a'];
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
+ }];
60
86
  export class ScanService {
61
87
  constructor(displayManager) {
62
88
  this.displayManager = displayManager;
@@ -79,19 +105,14 @@ export class ScanService {
79
105
  const format = (params === null || params === void 0 ? void 0 : params.barcodeFormat) || 'ALL';
80
106
  const barcodeFormat = Platform.OS === 'ios' ? undefined : barcodeFormatOptions[format];
81
107
  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;
89
108
  return new Promise((resolve, reject) => {
90
109
  var _params$permissionSer;
91
110
  (params === null || params === void 0 || (_params$permissionSer = params.permissionService) === null || _params$permissionSer === void 0 ? void 0 : _params$permissionSer.requestPermissions) && params.permissionService.requestPermissions('camera').then(() => {
92
111
  const destroy = this.displayManager.show({
93
112
  content: /*#__PURE__*/React.createElement(CameraView, {
94
- barcodeScannerSettings: scannerBarcodeSettings,
113
+ barcodeScannerSettings: barcodeFormat ? {
114
+ barcodeTypes: [BarCodeType[barcodeFormat]]
115
+ } : undefined,
95
116
  onBarcodeScanned: result => {
96
117
  destroy.call(this.displayManager);
97
118
  resolve(result);
@@ -123,10 +144,11 @@ export class ScanService {
123
144
  });
124
145
  }, reject);
125
146
  }).then(response => {
126
- let format = '';
147
+ let format;
127
148
  if (response.type) {
128
- const index = BARCODE_TYPES.indexOf(response.type);
129
- format = index > -1 ? String(index) : '';
149
+ const values = Object.values(BarCodeType);
150
+ const index = values.indexOf(response.type);
151
+ format = index > -1 ? Object.keys(BarCodeType)[index] : '';
130
152
  }
131
153
  return Promise.resolve({
132
154
  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","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":[]}
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":";AAAA,SAASA,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,QAAQ,EAAEC,UAAU,EAAEC,gBAAgB,EAAEC,IAAI,QAAQ,cAAc;AAC3E,OAAOC,KAAK,MAAM,OAAO;AAGzB,OAAOC,wBAAwB,MAAM,wEAAwE;AAM7G,MAAMC,oBAA+B,GAAG;EACtC,KAAK,EAAE,KAAK;EACZ,SAAS,EAAE,SAAS;EACpB,SAAS,EAAE,QAAQ;EACnB,SAAS,EAAE,QAAQ;EACnB,UAAU,EAAE,SAAS;EACrB,aAAa,EAAE,YAAY;EAC3B,OAAO,EAAE,MAAM;EACf,QAAQ,EAAE,OAAO;EACjB,KAAK,EAAE,OAAO;EACd,SAAS,EAAE,QAAQ;EACnB,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,OAAO;EAChB,cAAc,EAAE,aAAa;EAC7B,OAAO,EAAE,OAAO;EAChB,OAAO,EAAE;AACX,CAAC;AACD,MAAMC,OAAO,GAAG,oBAAoB;AACpC,MAAMC,MAAM,GAAGP,UAAU,CAACQ,MAAM,CAAC;EAC/BC,SAAS,EAAE;IACTC,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE;EACjB,CAAC;EACDC,YAAY,EAAE;IACZF,IAAI,EAAE,CAAC;IACPG,cAAc,EAAE,UAAU;IAC1BC,UAAU,EAAE,QAAQ;IACpBC,aAAa,EAAE;EACjB,CAAC;EACDC,UAAU,EAAE;IACVN,IAAI,EAAE,CAAC;IACPO,eAAe,EAAEX;EACnB,CAAC;EACDY,aAAa,EAAE;IACbR,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE;EACjB,CAAC;EACDQ,WAAW,EAAE;IACXT,IAAI,EAAE,CAAC;IACPO,eAAe,EAAEX;EACnB,CAAC;EACDc,OAAO,EAAE;IACPV,IAAI,EAAE;EACR,CAAC;EACDW,YAAY,EAAE;IACZX,IAAI,EAAE,CAAC;IACPO,eAAe,EAAEX;EACnB,CAAC;EACDgB,aAAa,EAAE;IACbZ,IAAI,EAAE,CAAC;IACPO,eAAe,EAAEX;EACnB;AACF,CAAC,CAAC;AAEF,MAAMiB,WAAgB,GAAG,CACvB;EAAE,CAAC,EAAE;AAAQ,CAAC,EACd;EAAE,CAAC,EAAE;AAAQ,CAAC,EACd;EAAE,CAAC,EAAE;AAAO,CAAC,EACb;EAAE,CAAC,EAAE;AAAK,CAAC,EACX;EAAE,CAAC,EAAE;AAAS,CAAC,EACf;EAAE,CAAC,EAAE;AAAQ,CAAC,EACd;EAAE,CAAC,EAAE;AAAa,CAAC,EACnB;EAAE,CAAC,EAAE;AAAS,CAAC,EACf;EAAE,CAAC,EAAE;AAAS,CAAC,EACf;EAAE,CAAC,EAAE;AAAQ,CAAC,EACd;EAAE,EAAE,EAAE;AAAU,CAAC,EACjB;EAAE,EAAE,EAAE;AAAU,CAAC,EACjB;EAAE,EAAE,EAAE;AAAQ,CAAC,CAChB;AAGD,OAAO,MAAMC,WAAW,CAAC;EAEvBC,WAAWA,CAASC,cAA8B,EAAE;IAAA,KAAhCA,cAA8B,GAA9BA,cAA8B;EAAG;EAErDC,YAAYA,CAACC,MAAc,EAAE;IAC3B,MAAMC,EAAE,GAAG,MAAM,IAAID,MAAM,GAAG,GAAG,GAAGA,MAAM,GAAI,EAAE,CAAC;IACjD,IAAI7B,QAAQ,CAAC+B,EAAE,KAAK,SAAS,IAAI/B,QAAQ,CAAC+B,EAAE,KAAK,KAAK,EAAE;MACtD,OAAO;QACHC,kBAAkB,EAAEF,EAAE;QACtBG,MAAM,EAAEH;MACZ,CAAC;IACH;IACA,OAAO;MACHI,UAAU,EAAE,KAAK;MACjBD,MAAM,EAAEH;IACZ,CAAC;EACH;EAEOK,WAAWA,CAACC,MAAiB,EAAuB;IAAA,IAAAC,qBAAA;IACzD,MAAMC,MAAM,GAAG,CAAAF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEG,aAAa,KAAI,KAAK;IAC7C,MAAMA,aAAiC,GAAGvC,QAAQ,CAAC+B,EAAE,KAAK,KAAK,GAAGS,SAAS,GAAGlC,oBAAoB,CAACgC,MAAM,CAAC;IAC1G,MAAMG,UAAU,GAAGL,MAAM,aAANA,MAAM,gBAAAC,qBAAA,GAAND,MAAM,CAAEM,iBAAiB,cAAAL,qBAAA,uBAAzBA,qBAAA,CAA2BI,UAAU;IACxD,OAAO,IAAIE,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MAAA,IAAAC,qBAAA;MACtC,CAAAV,MAAM,aAANA,MAAM,gBAAAU,qBAAA,GAANV,MAAM,CAAEW,iBAAiB,cAAAD,qBAAA,uBAAzBA,qBAAA,CAA2BE,kBAAkB,KAAIZ,MAAM,CAACW,iBAAiB,CAACC,kBAAkB,CAAC,QAAQ,CAAC,CAACC,IAAI,CAAC,MAAM;QAChH,MAAMC,OAAO,GAAG,IAAI,CAACvB,cAAc,CAACwB,IAAI,CAAC;UACvCC,OAAO,eAAGhD,KAAA,CAAAiD,aAAA,CAACZ,UAAU;YACnBa,sBAAsB,EAAEf,aAAa,GAAG;cACtCgB,YAAY,EAAE,CAAC/B,WAAW,CAACe,aAAa,CAAC;YAC3C,CAAC,GAAEC,SAAU;YACbgB,gBAAgB,EAAGC,MAAW,IAAK;cACjCP,OAAO,CAACQ,IAAI,CAAC,IAAI,CAAC/B,cAAc,CAAC;cACjCiB,OAAO,CAACa,MAAM,CAAC;YACjB,CAAE;YACFE,KAAK,EAAE1D,UAAU,CAAC2D;UAAmB,gBAErCxD,KAAA,CAAAiD,aAAA,CAAClD,IAAI;YAACwD,KAAK,EAAEnD,MAAM,CAACS;UAAW,CACzB,CAAC,eACPb,KAAA,CAAAiD,aAAA,CAAClD,IAAI;YAACwD,KAAK,EAAEnD,MAAM,CAACW;UAAc,gBAChCf,KAAA,CAAAiD,aAAA,CAAClD,IAAI;YAACwD,KAAK,EAAEnD,MAAM,CAACY;UAAY,CAAC,CAAC,eAClChB,KAAA,CAAAiD,aAAA,CAAClD,IAAI;YAACwD,KAAK,EAAEnD,MAAM,CAACa;UAAQ,CAAC,CAAC,eAC9BjB,KAAA,CAAAiD,aAAA,CAAClD,IAAI;YAACwD,KAAK,EAAEnD,MAAM,CAACc;UAAa,CAAC,CAC9B,CAAC,eACPlB,KAAA,CAAAiD,aAAA,CAAClD,IAAI;YAACwD,KAAK,EAAEnD,MAAM,CAACe;UAAc,gBAEhCnB,KAAA,CAAAiD,aAAA,CAAClD,IAAI;YAACwD,KAAK,EAAEnD,MAAM,CAACK;UAAa,gBAC7BT,KAAA,CAAAiD,aAAA,CAACnD,gBAAgB,EAAA2D,QAAA,KACR,IAAI,CAACjC,YAAY,CAAC,cAAc,CAAC;YACtCkC,OAAO,EAAEA,CAAA,KAAM;cACbZ,OAAO,CAACQ,IAAI,CAAC,IAAI,CAAC/B,cAAc,CAAC;YACnC;UAAE,iBACFvB,KAAA,CAAAiD,aAAA,CAACtD,QAAQ;YAACgE,IAAI,EAAC,cAAc;YAACC,IAAI,EAAE,EAAG;YAACC,KAAK,EAAC;UAAO,CAAE,CACzC,CAChB,CACF,CACI;QACd,CAAC,CAAC;MACJ,CAAC,EAAEpB,MAAM,CAAC;IACZ,CAAC,CAAC,CAACI,IAAI,CAAEiB,QAAa,IAAK;MACzB,IAAI5B,MAAM;MACV,IAAI4B,QAAQ,CAACC,IAAI,EAAE;QACjB,MAAMC,MAAM,GAAGC,MAAM,CAACD,MAAM,CAAC5C,WAAW,CAAC;QACzC,MAAM8C,KAAK,GAAGF,MAAM,CAACG,OAAO,CAACL,QAAQ,CAACC,IAAI,CAAC;QAC3C7B,MAAM,GAAGgC,KAAK,GAAG,CAAC,CAAC,GAAGD,MAAM,CAACG,IAAI,CAAChD,WAAW,CAAC,CAAC8C,KAAK,CAAC,GAAG,EAAE;MAC5D;MACA,OAAO3B,OAAO,CAACC,OAAO,CAAC;QACrB6B,IAAI,EAAEP,QAAQ,CAACQ,IAAI;QACnBpC,MAAM,EAAGA,MAAM,IAAI4B,QAAQ,CAACC,IAAI;QAChCQ,SAAS,EAAG;MACd,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF;AACA,MAAMC,WAAW,GAAG,IAAInD,WAAW,CAACpB,wBAAwB,CAAC;AAC7D,eAAeuE,WAAW","ignoreList":[]}
package/styles/theme.js CHANGED
@@ -268,25 +268,8 @@ export class Theme {
268
268
  style['opacity'] = percentage / 100;
269
269
  }
270
270
  }
271
- const isViewportUnit = value => value.endsWith('vw') || value.endsWith('vh');
272
- const convertViewportUnitToPx = value => {
273
- if (value.endsWith('vw')) {
274
- const screenWidth = Dimensions.get('window').width;
275
- const stylePropertyValue = value.replace('vw', '');
276
- return Number(stylePropertyValue) / 100 * screenWidth;
277
- }
278
- if (value.endsWith('vh')) {
279
- const screenHeight = Dimensions.get('window').height;
280
- const stylePropertyValue = value.replace('vh', '');
281
- return Number(stylePropertyValue) / 100 * screenHeight;
282
- }
283
- return value;
284
- };
285
271
  const processStyleValue = value => {
286
272
  if (typeof value === 'string') {
287
- if (isViewportUnit(value)) {
288
- return convertViewportUnitToPx(value);
289
- }
290
273
  const num = parseFloat(value);
291
274
  return isNaN(num) ? value : num;
292
275
  }
@@ -473,10 +456,17 @@ export class Theme {
473
456
  if (!isNil(style['color']) && style['color'] === 'transparent') {
474
457
  style['color'] = 'rgba(255, 255, 255, 0)';
475
458
  }
459
+ let screenWidth = Dimensions.get('window').width;
460
+ let screenHeight = Dimensions.get('window').height;
476
461
  Object.keys(style).forEach((k, i) => {
477
- const stylePropertyValue = style[k];
478
- if (typeof stylePropertyValue === 'string' && isViewportUnit(stylePropertyValue)) {
479
- style[k] = convertViewportUnitToPx(stylePropertyValue);
462
+ let stylePropertyValue = style[k];
463
+ if (typeof stylePropertyValue === 'string' && stylePropertyValue.endsWith('vw')) {
464
+ stylePropertyValue = stylePropertyValue.replace('vw', '');
465
+ style[k] = Number(stylePropertyValue) / 100 * screenWidth;
466
+ }
467
+ if (typeof stylePropertyValue === 'string' && stylePropertyValue.endsWith('vh')) {
468
+ stylePropertyValue = stylePropertyValue.replace('vh', '');
469
+ style[k] = Number(stylePropertyValue) / 100 * screenHeight;
480
470
  }
481
471
  });
482
472
  return style;