@wavemaker-ai/app-rn-runtime 1.0.0-rc.322 → 1.0.0-rc.326
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/basic/bottomsheet/bottomsheet.component.js +156 -14
- package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
- package/components/basic/bottomsheet/bottomsheet.styles.js +0 -3
- package/components/basic/bottomsheet/bottomsheet.styles.js.map +1 -1
- package/components/basic/button/button.component.js +4 -2
- package/components/basic/button/button.component.js.map +1 -1
- package/components/basic/message/message.component.js +1 -0
- package/components/basic/message/message.component.js.map +1 -1
- package/components/basic/progress-circle/progress-circle.component.js +3 -1
- package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
- package/components/basic/search/search.styles.js +8 -3
- package/components/basic/search/search.styles.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
- package/components/chart/basechart.component.js +0 -1
- package/components/chart/basechart.component.js.map +1 -1
- package/components/chart/basechart.props.js +1 -0
- package/components/chart/basechart.props.js.map +1 -1
- package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
- package/components/chart/line-chart/line-chart.component.js.map +1 -1
- package/components/container/container.component.js +24 -1
- package/components/container/container.component.js.map +1 -1
- package/components/container/container.props.js +7 -0
- package/components/container/container.props.js.map +1 -1
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js +25 -1
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js.map +1 -1
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js +1 -0
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.component.js +5 -14
- package/components/container/tabs/tabheader/tabheader.component.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.props.js +0 -2
- package/components/container/tabs/tabheader/tabheader.props.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.styles.js +1 -43
- package/components/container/tabs/tabheader/tabheader.styles.js.map +1 -1
- package/components/container/tabs/tabs.component.js +2 -6
- package/components/container/tabs/tabs.component.js.map +1 -1
- package/components/container/tabs/tabs.props.js +0 -2
- package/components/container/tabs/tabs.props.js.map +1 -1
- package/components/container/wizard/wizardstep/wizardstep.component.js +22 -3
- package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
- package/components/container/wizard/wizardstep/wizardstep.props.js +2 -0
- package/components/container/wizard/wizardstep/wizardstep.props.js.map +1 -1
- package/components/data/form/form-field/form-field.component.js +2 -0
- package/components/data/form/form-field/form-field.component.js.map +1 -1
- package/components/data/form/form-field/form-field.props.js +2 -0
- package/components/data/form/form-field/form-field.props.js.map +1 -1
- package/components/data/form/form.component.js +4 -1
- package/components/data/form/form.component.js.map +1 -1
- package/components/data/list/list.styles.js +1 -0
- package/components/data/list/list.styles.js.map +1 -1
- package/components/dialogs/dialogcontent/dialogcontent.component.js +2 -1
- package/components/dialogs/dialogcontent/dialogcontent.component.js.map +1 -1
- package/components/input/baseinput/baseinput.component.js +28 -3
- package/components/input/baseinput/baseinput.component.js.map +1 -1
- package/components/input/baseinput/baseinput.props.js +1 -0
- package/components/input/baseinput/baseinput.props.js.map +1 -1
- package/components/input/basenumber/basenumber.component.js +18 -3
- package/components/input/basenumber/basenumber.component.js.map +1 -1
- package/components/input/basenumber/basenumber.props.js +1 -0
- package/components/input/basenumber/basenumber.props.js.map +1 -1
- package/components/input/calendar/calendar.component.js +4 -0
- package/components/input/calendar/calendar.component.js.map +1 -1
- package/components/input/calendar/views/month-view.js +8 -1
- package/components/input/calendar/views/month-view.js.map +1 -1
- package/components/input/checkboxset/checkboxset.component.js +3 -3
- package/components/input/checkboxset/checkboxset.component.js.map +1 -1
- package/components/input/checkboxset/checkboxset.props.js +1 -0
- package/components/input/checkboxset/checkboxset.props.js.map +1 -1
- package/components/input/checkboxset/checkboxset.styles.js +6 -0
- package/components/input/checkboxset/checkboxset.styles.js.map +1 -1
- package/components/input/currency/currency.component.js +1 -0
- package/components/input/currency/currency.component.js.map +1 -1
- package/components/input/currency/currency.styles.js +4 -0
- package/components/input/currency/currency.styles.js.map +1 -1
- package/components/input/number/number.component.js +1 -0
- package/components/input/number/number.component.js.map +1 -1
- package/components/input/number/number.styles.js +4 -0
- package/components/input/number/number.styles.js.map +1 -1
- package/components/input/radioset/radioset.component.js +5 -3
- package/components/input/radioset/radioset.component.js.map +1 -1
- package/components/input/radioset/radioset.props.js +1 -0
- package/components/input/radioset/radioset.props.js.map +1 -1
- package/components/input/radioset/radioset.styles.js +6 -0
- package/components/input/radioset/radioset.styles.js.map +1 -1
- package/components/input/text/text.component.js +14 -3
- package/components/input/text/text.component.js.map +1 -1
- package/components/input/text/text.props.js +1 -0
- package/components/input/text/text.props.js.map +1 -1
- package/components/input/text/text.styles.js +3 -1
- package/components/input/text/text.styles.js.map +1 -1
- package/components/input/textarea/textarea.component.js +3 -2
- package/components/input/textarea/textarea.component.js.map +1 -1
- package/components/input/textarea/textarea.styles.js +4 -0
- package/components/input/textarea/textarea.styles.js.map +1 -1
- package/components/input/toggle/toggle.component.js +4 -13
- package/components/input/toggle/toggle.component.js.map +1 -1
- package/components/input/toggle/toggle.props.js +1 -3
- package/components/input/toggle/toggle.props.js.map +1 -1
- package/components/input/toggle/toggle.styles.js +4 -12
- package/components/input/toggle/toggle.styles.js.map +1 -1
- package/components/navigation/appnavbar/appnavbar.props.js +1 -1
- package/components/navigation/appnavbar/appnavbar.props.js.map +1 -1
- package/components/page/tabbar/tabbar.component.js +3 -2
- package/components/page/tabbar/tabbar.component.js.map +1 -1
- package/core/AppConfig.js.map +1 -1
- package/core/advanced-promise-rejection-tracker.js +1 -2
- package/core/advanced-promise-rejection-tracker.js.map +1 -1
- package/core/auto-layout-host.component.js +8 -2
- package/core/auto-layout-host.component.js.map +1 -1
- package/core/components/floatinglabel.component.js +5 -2
- package/core/components/floatinglabel.component.js.map +1 -1
- package/core/components/textinput.component.js +23 -3
- package/core/components/textinput.component.js.map +1 -1
- package/core/outside-press-handler.js +65 -0
- package/core/outside-press-handler.js.map +1 -0
- package/core/tappable.component.js +109 -15
- package/core/tappable.component.js.map +1 -1
- package/core/viewport.js +13 -8
- package/core/viewport.js.map +1 -1
- package/gestures/carousel-swipe.animation.js +0 -1
- package/gestures/carousel-swipe.animation.js.map +1 -1
- package/npm-shrinkwrap.json +4166 -6251
- package/package-lock.json +4166 -6251
- package/package.json +18 -16
- package/runtime/navigator/drawer.navigator.js +1 -0
- package/runtime/navigator/drawer.navigator.js.map +1 -1
- package/runtime/navigator/stack.navigator.js +16 -1
- package/runtime/navigator/stack.navigator.js.map +1 -1
- package/runtime/services/device/scan-service.js +12 -34
- package/runtime/services/device/scan-service.js.map +1 -1
- package/styles/theme.js +7 -0
- package/styles/theme.js.map +1 -1
- package/styles/theme.variables.js.map +1 -1
- package/components-prism/basic/search/search.component.js +0 -171
- package/components-prism/basic/search/search.component.js.map +0 -1
- package/components-prism/basic/search/search.props.js +0 -13
- package/components-prism/basic/search/search.props.js.map +0 -1
- package/components-prism/basic/search/search.styles.js +0 -115
- package/components-prism/basic/search/search.styles.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wavemaker-ai/app-rn-runtime",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.326",
|
|
4
4
|
"description": "''",
|
|
5
5
|
"main": "index",
|
|
6
6
|
"module": "index",
|
|
@@ -59,8 +59,8 @@
|
|
|
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-ai/variables": "1.0.0-rc.
|
|
63
|
-
"axios": "1.
|
|
62
|
+
"@wavemaker-ai/variables": "1.0.0-rc.326",
|
|
63
|
+
"axios": "1.18.1",
|
|
64
64
|
"color": "4.2.3",
|
|
65
65
|
"colorjs.io": "^0.5.2",
|
|
66
66
|
"cross-env": "7.0.3",
|
|
@@ -71,9 +71,9 @@
|
|
|
71
71
|
"expo-linear-gradient": "15.0.7",
|
|
72
72
|
"expo-modules-core": "3.0.20",
|
|
73
73
|
"expo-video": "3.0.11",
|
|
74
|
-
"fast-xml-parser": "
|
|
74
|
+
"fast-xml-parser": "5.9.3",
|
|
75
75
|
"imask": "7.6.1",
|
|
76
|
-
"lodash-es": "4.
|
|
76
|
+
"lodash-es": "4.18.1",
|
|
77
77
|
"lottie-react-native": "7.3.4",
|
|
78
78
|
"moment": "2.30.1",
|
|
79
79
|
"react-lottie-player": "2.1.0",
|
|
@@ -100,15 +100,20 @@
|
|
|
100
100
|
"expo-secure-store": "15.0.7"
|
|
101
101
|
},
|
|
102
102
|
"overrides": {
|
|
103
|
-
"
|
|
103
|
+
"@expo/plist": "0.7.0",
|
|
104
|
+
"@xmldom/xmldom": "0.9.10",
|
|
105
|
+
"js-yaml": "4.2.0",
|
|
106
|
+
"react-native-worklets": "0.7.4",
|
|
107
|
+
"undici": "7.28.0",
|
|
108
|
+
"uuid": "11.1.1"
|
|
104
109
|
},
|
|
105
110
|
"devDependencies": {
|
|
106
|
-
"@babel/core": "7.
|
|
107
|
-
"@babel/plugin-transform-class-static-block": "7.
|
|
108
|
-
"@babel/preset-env": "7.
|
|
111
|
+
"@babel/core": "7.29.7",
|
|
112
|
+
"@babel/plugin-transform-class-static-block": "7.29.7",
|
|
113
|
+
"@babel/preset-env": "7.29.7",
|
|
109
114
|
"@commitlint/config-conventional": "19.2.2",
|
|
110
115
|
"@react-native-community/eslint-config": "3.2.0",
|
|
111
|
-
"@release-it/conventional-changelog": "
|
|
116
|
+
"@release-it/conventional-changelog": "11.0.1",
|
|
112
117
|
"@testing-library/jest-native": "5.4.3",
|
|
113
118
|
"@testing-library/react-native": "12.5.0",
|
|
114
119
|
"@types/color": "3.0.6",
|
|
@@ -120,9 +125,6 @@
|
|
|
120
125
|
"@types/react-native": "0.73.0",
|
|
121
126
|
"@types/react-test-renderer": "18.3.0",
|
|
122
127
|
"babel-jest": "29.7.0",
|
|
123
|
-
"babel-preset-env": "1.7.0",
|
|
124
|
-
"babel-preset-react": "6.24.1",
|
|
125
|
-
"babel-preset-react-native": "4.0.1",
|
|
126
128
|
"commitlint": "19.3.0",
|
|
127
129
|
"enzyme": "3.11.0",
|
|
128
130
|
"eslint": "9.2.0",
|
|
@@ -141,7 +143,7 @@
|
|
|
141
143
|
"expo-network": "8.0.7",
|
|
142
144
|
"expo-splash-screen": "31.0.10",
|
|
143
145
|
"expo-web-browser": "15.0.8",
|
|
144
|
-
"handlebars": "4.7.
|
|
146
|
+
"handlebars": "4.7.9",
|
|
145
147
|
"jest": "29.7.0",
|
|
146
148
|
"jest-expo": "52.0.2",
|
|
147
149
|
"jest-html-reporter": "3.10.2",
|
|
@@ -155,8 +157,8 @@
|
|
|
155
157
|
"react-native-gesture-handler": "2.28.0",
|
|
156
158
|
"react-native-safe-area-context": "5.6.0",
|
|
157
159
|
"react-test-renderer": "19.1.0",
|
|
158
|
-
"release-it": "
|
|
159
|
-
"tar": "
|
|
160
|
+
"release-it": "20.2.0",
|
|
161
|
+
"tar": "7.5.16",
|
|
160
162
|
"typescript": "5.1.3",
|
|
161
163
|
"victory-native": "37.3.2",
|
|
162
164
|
"yargs": "16.2.0"
|
|
@@ -23,6 +23,7 @@ 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,
|
|
26
27
|
gestureHandlerProps: {
|
|
27
28
|
enabled: !this.props.hide
|
|
28
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","overlayColor","INSTANCE","leftPanelOverlayColor","
|
|
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-ai/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,qDAAqD;AAChF,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-ai/app-rn-runtime/styles/theme.variables';
|
|
8
8
|
import ErrorBoundary from '@wavemaker-ai/app-rn-runtime/core/error-boundary.component';
|
|
9
|
+
import injector from '@wavemaker-ai/app-rn-runtime/core/injector';
|
|
9
10
|
const Stack = createStackNavigator();
|
|
10
11
|
const pages = {};
|
|
11
12
|
class Screen extends React.Component {
|
|
@@ -54,7 +55,21 @@ 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
|
+
/*
|
|
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;
|
|
57
71
|
return /*#__PURE__*/React.createElement(Stack.Navigator, {
|
|
72
|
+
detachInactiveScreens: detachInactiveScreens,
|
|
58
73
|
initialRouteName: props.landingPage
|
|
59
74
|
}, props.pages.map(p => {
|
|
60
75
|
pages[p.name] = p;
|
|
@@ -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-ai/app-rn-runtime/styles/theme.variables';\nimport ErrorBoundary from '@wavemaker-ai/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;\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;
|
|
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","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-ai/app-rn-runtime/styles/theme.variables';\nimport ErrorBoundary from '@wavemaker-ai/app-rn-runtime/core/error-boundary.component';\nimport injector from '@wavemaker-ai/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker-ai/app-rn-runtime/core/AppConfig';\n\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 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;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -56,33 +56,7 @@ const styles = StyleSheet.create({
|
|
|
56
56
|
backgroundColor: opacity
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
|
-
const
|
|
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:
|
|
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
|
|
150
|
-
|
|
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","
|
|
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-ai/app-rn-runtime/variables/device/scan/scan.operation';\nimport { DisplayManager } from '@wavemaker-ai/app-rn-runtime/core/display.manager';\nimport appDisplayManagerService from '@wavemaker-ai/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;\n"],"mappings":"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","ignoreList":[]}
|
package/styles/theme.js
CHANGED
|
@@ -420,6 +420,13 @@ export class Theme {
|
|
|
420
420
|
if (!isNil(style['borderWidth'])) {
|
|
421
421
|
const bw = style['borderWidth'];
|
|
422
422
|
if (isUniformBorderWidthValue(bw)) {
|
|
423
|
+
// Remove individual side widths so the uniform shorthand applies without conflict
|
|
424
|
+
delete style['borderTopWidth'];
|
|
425
|
+
delete style['borderRightWidth'];
|
|
426
|
+
delete style['borderBottomWidth'];
|
|
427
|
+
delete style['borderLeftWidth'];
|
|
428
|
+
delete style['borderBottomColor'];
|
|
429
|
+
delete style['borderBottomStyle'];
|
|
423
430
|
style['borderWidth'] = normalizeUniformBorderWidth(bw);
|
|
424
431
|
} else {
|
|
425
432
|
applyBoxModelProperty('borderWidth', bw);
|