@wavemaker/app-rn-runtime 11.9.3-1.5952 → 11.9.3-1.5978
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.
- app-rn-runtime/actions/notification-action.js +1 -1
- app-rn-runtime/actions/timer-action.js +1 -1
- app-rn-runtime/components/advanced/carousel/carousel-content/carousel-content.props.js +1 -1
- app-rn-runtime/components/advanced/carousel/carousel-template/carousel-template.props.js +1 -1
- app-rn-runtime/components/advanced/carousel/carousel.component.js +8 -7
- app-rn-runtime/components/advanced/carousel/carousel.component.js.map +1 -1
- app-rn-runtime/components/advanced/carousel/carousel.props.js +1 -1
- app-rn-runtime/components/advanced/carousel/carousel.styles.js +2 -4
- app-rn-runtime/components/advanced/carousel/carousel.styles.js.map +1 -1
- app-rn-runtime/components/advanced/login/login.component.js +2 -2
- app-rn-runtime/components/advanced/login/login.props.js +1 -1
- app-rn-runtime/components/advanced/network-info-toaster/network-info-toaster.component.js +2 -2
- app-rn-runtime/components/advanced/network-info-toaster/network-info-toaster.props.js +1 -1
- app-rn-runtime/components/advanced/webview/webview.component.js +2 -2
- app-rn-runtime/components/advanced/webview/webview.props.js +1 -1
- app-rn-runtime/components/basic/anchor/anchor.component.js +1 -1
- app-rn-runtime/components/basic/anchor/anchor.props.js +1 -1
- app-rn-runtime/components/basic/animatedview.component.js +2 -2
- app-rn-runtime/components/basic/audio/audio.component.js +1 -1
- app-rn-runtime/components/basic/audio/audio.props.js +1 -1
- app-rn-runtime/components/basic/button/button.component.js +1 -1
- app-rn-runtime/components/basic/button/button.props.js +1 -1
- app-rn-runtime/components/basic/buttongroup/buttongroup.props.js +1 -1
- app-rn-runtime/components/basic/custom/custom.props.js +1 -1
- app-rn-runtime/components/basic/icon/icon.component.js +2 -2
- app-rn-runtime/components/basic/icon/icon.props.js +1 -1
- app-rn-runtime/components/basic/label/label.component.js +2 -2
- app-rn-runtime/components/basic/label/label.props.js +1 -1
- app-rn-runtime/components/basic/lottie/lottie.component.js +1 -1
- app-rn-runtime/components/basic/lottie/lottie.props.js +1 -1
- app-rn-runtime/components/basic/message/message.component.js +2 -2
- app-rn-runtime/components/basic/message/message.props.js +1 -1
- app-rn-runtime/components/basic/modal/modal.props.js +1 -1
- app-rn-runtime/components/basic/picture/picture.component.js +2 -2
- app-rn-runtime/components/basic/picture/picture.props.js +1 -1
- app-rn-runtime/components/basic/progress-bar/progress-bar.component.js +2 -2
- app-rn-runtime/components/basic/progress-bar/progress-bar.component.js.map +1 -1
- app-rn-runtime/components/basic/progress-bar/progress-bar.props.js +1 -1
- app-rn-runtime/components/basic/progress-circle/progress-circle.component.js +2 -2
- app-rn-runtime/components/basic/progress-circle/progress-circle.props.js +1 -1
- app-rn-runtime/components/basic/search/local-data-provider.js +1 -1
- app-rn-runtime/components/basic/search/search.component.js +3 -3
- app-rn-runtime/components/basic/search/search.component.js.map +1 -1
- app-rn-runtime/components/basic/search/search.props.js +1 -1
- app-rn-runtime/components/basic/skeleton/skeleton.component.js +1 -1
- app-rn-runtime/components/basic/skeleton/skeleton.props.js +1 -1
- app-rn-runtime/components/basic/spinner/spinner.component.js +2 -2
- app-rn-runtime/components/basic/spinner/spinner.props.js +1 -1
- app-rn-runtime/components/basic/tooltip/tooltip.props.js +1 -1
- app-rn-runtime/components/basic/video/video.component.js +105 -29
- app-rn-runtime/components/basic/video/video.component.js.map +1 -1
- app-rn-runtime/components/basic/video/video.props.js +8 -1
- app-rn-runtime/components/basic/video/video.props.js.map +1 -1
- app-rn-runtime/components/chart/area-chart/area-chart.component.js +2 -2
- app-rn-runtime/components/chart/area-chart/area-chart.props.js +1 -1
- app-rn-runtime/components/chart/bar-chart/bar-chart.component.js +1 -1
- app-rn-runtime/components/chart/bar-chart/bar-chart.props.js +1 -1
- app-rn-runtime/components/chart/basechart.component.js +1 -1
- app-rn-runtime/components/chart/basechart.props.js +1 -1
- app-rn-runtime/components/chart/bubble-chart/bubble-chart.component.js +1 -1
- app-rn-runtime/components/chart/bubble-chart/bubble-chart.props.js +1 -1
- app-rn-runtime/components/chart/donut-chart/donut-chart.props.js +1 -1
- app-rn-runtime/components/chart/line-chart/line-chart.component.js +1 -1
- app-rn-runtime/components/chart/line-chart/line-chart.props.js +1 -1
- app-rn-runtime/components/chart/pie-chart/pie-chart.component.js +2 -2
- app-rn-runtime/components/chart/pie-chart/pie-chart.props.js +1 -1
- app-rn-runtime/components/chart/stack-chart/stack-chart.component.js +2 -2
- app-rn-runtime/components/chart/stack-chart/stack-chart.props.js +1 -1
- app-rn-runtime/components/container/accordion/accordion.component.js +2 -2
- app-rn-runtime/components/container/accordion/accordion.props.js +1 -1
- app-rn-runtime/components/container/accordion/accordionpane/accordionpane.component.js +1 -1
- app-rn-runtime/components/container/accordion/accordionpane/accordionpane.props.js +1 -1
- app-rn-runtime/components/container/container.component.js +2 -2
- app-rn-runtime/components/container/container.props.js +1 -1
- app-rn-runtime/components/container/layoutgrid/gridcolumn/gridcolumn.props.js +1 -1
- app-rn-runtime/components/container/layoutgrid/gridrow/gridrow.props.js +1 -1
- app-rn-runtime/components/container/layoutgrid/layoutgrid.props.js +1 -1
- app-rn-runtime/components/container/linearlayout/linearlayout.props.js +1 -1
- app-rn-runtime/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js +1 -1
- app-rn-runtime/components/container/panel/panel-content/panel-content.props.js +1 -1
- app-rn-runtime/components/container/panel/panel-footer/panel-footer.props.js +1 -1
- app-rn-runtime/components/container/panel/panel.component.js +4 -4
- app-rn-runtime/components/container/panel/panel.component.js.map +1 -1
- app-rn-runtime/components/container/panel/panel.props.js +1 -1
- app-rn-runtime/components/container/partial-host.component.js +1 -1
- app-rn-runtime/components/container/tabs/tabheader/tabheader.component.js +2 -2
- app-rn-runtime/components/container/tabs/tabheader/tabheader.props.js +1 -1
- app-rn-runtime/components/container/tabs/tabpane/tabpane.component.js +1 -1
- app-rn-runtime/components/container/tabs/tabpane/tabpane.props.js +1 -1
- app-rn-runtime/components/container/tabs/tabs.component.js +3 -3
- app-rn-runtime/components/container/tabs/tabs.component.js.map +1 -1
- app-rn-runtime/components/container/tabs/tabs.props.js +1 -1
- app-rn-runtime/components/container/tabs/tabs.styles.js.map +1 -1
- app-rn-runtime/components/container/tile/tile.component.js +1 -1
- app-rn-runtime/components/container/tile/tile.props.js +1 -1
- app-rn-runtime/components/container/wizard/wizard.component.js +2 -2
- app-rn-runtime/components/container/wizard/wizard.props.js +1 -1
- app-rn-runtime/components/container/wizard/wizardstep/wizardstep.component.js +1 -1
- app-rn-runtime/components/container/wizard/wizardstep/wizardstep.props.js +1 -1
- app-rn-runtime/components/data/card/card-content/card-content.component.js +1 -1
- app-rn-runtime/components/data/card/card-content/card-content.props.js +1 -1
- app-rn-runtime/components/data/card/card-footer/card-footer.props.js +1 -1
- app-rn-runtime/components/data/card/card.component.js +1 -1
- app-rn-runtime/components/data/card/card.props.js +1 -1
- app-rn-runtime/components/data/form/form-action/form-action.component.js +1 -1
- app-rn-runtime/components/data/form/form-action/form-action.props.js +1 -1
- app-rn-runtime/components/data/form/form-body/form-body.props.js +1 -1
- app-rn-runtime/components/data/form/form-field/form-field.component.js +2 -2
- app-rn-runtime/components/data/form/form-field/form-field.props.js +1 -1
- app-rn-runtime/components/data/form/form-footer/form-footer.props.js +1 -1
- app-rn-runtime/components/data/form/form.component.js +1 -1
- app-rn-runtime/components/data/form/form.props.js +1 -1
- app-rn-runtime/components/data/list/list-action-template/list-action-template.props.js +1 -1
- app-rn-runtime/components/data/list/list-template/list-template.props.js +1 -1
- app-rn-runtime/components/data/list/list.component.js +2 -2
- app-rn-runtime/components/data/list/list.props.js +1 -1
- app-rn-runtime/components/data/liveform/liveform.component.js +1 -1
- app-rn-runtime/components/device/barcodescanner/barcodescanner.component.js +1 -1
- app-rn-runtime/components/device/barcodescanner/barcodescanner.props.js +1 -1
- app-rn-runtime/components/device/camera/camera.component.js +1 -1
- app-rn-runtime/components/device/camera/camera.props.js +1 -1
- app-rn-runtime/components/dialogs/alertdialog/alertdialog.component.js +1 -1
- app-rn-runtime/components/dialogs/alertdialog/alertdialog.props.js +1 -1
- app-rn-runtime/components/dialogs/confirmdialog/confirmdialog.component.js +1 -1
- app-rn-runtime/components/dialogs/confirmdialog/confirmdialog.props.js +1 -1
- app-rn-runtime/components/dialogs/dialog/dialog.component.js +2 -2
- app-rn-runtime/components/dialogs/dialog/dialog.component.js.map +1 -1
- app-rn-runtime/components/dialogs/dialog/dialog.props.js +1 -1
- app-rn-runtime/components/dialogs/dialogactions/dialogactions.component.js +1 -1
- app-rn-runtime/components/dialogs/dialogactions/dialogactions.props.js +1 -1
- app-rn-runtime/components/dialogs/dialogcontent/dialogcontent.props.js +1 -1
- app-rn-runtime/components/input/basedataset/basedataset.component.js +1 -1
- app-rn-runtime/components/input/basedataset/basedataset.props.js +1 -1
- app-rn-runtime/components/input/baseinput/baseinput.component.js +1 -1
- app-rn-runtime/components/input/baseinput/baseinput.props.js +1 -1
- app-rn-runtime/components/input/basenumber/basenumber.component.js +1 -1
- app-rn-runtime/components/input/basenumber/basenumber.props.js +1 -1
- app-rn-runtime/components/input/calendar/calendar.component.js +1 -1
- app-rn-runtime/components/input/calendar/calendar.props.js +1 -1
- app-rn-runtime/components/input/calendar/calendar.styles.js.map +1 -1
- app-rn-runtime/components/input/calendar/views/month-view.js +2 -2
- app-rn-runtime/components/input/calendar/views/month-view.js.map +1 -1
- app-rn-runtime/components/input/checkbox/checkbox.component.js +2 -2
- app-rn-runtime/components/input/checkbox/checkbox.props.js +1 -1
- app-rn-runtime/components/input/checkboxset/checkboxset.component.js +2 -2
- app-rn-runtime/components/input/checkboxset/checkboxset.props.js +1 -1
- app-rn-runtime/components/input/chips/chips.component.js +21 -25
- app-rn-runtime/components/input/chips/chips.component.js.map +1 -1
- app-rn-runtime/components/input/chips/chips.props.js +1 -1
- app-rn-runtime/components/input/composite/composite.props.js +1 -1
- app-rn-runtime/components/input/currency/currency.component.js +2 -2
- app-rn-runtime/components/input/currency/currency.props.js +1 -1
- app-rn-runtime/components/input/epoch/base-datetime.component.js +2 -2
- app-rn-runtime/components/input/epoch/date-picker.component.js +2 -2
- app-rn-runtime/components/input/epoch/date-picker.component.js.map +1 -1
- app-rn-runtime/components/input/epoch/datetime/datetime.props.js +1 -1
- app-rn-runtime/components/input/epoch/time/time.props.js +1 -1
- app-rn-runtime/components/input/epoch/wheel-date-picker.component.js +1 -1
- app-rn-runtime/components/input/epoch/wheel-time-picker.component.js +1 -1
- app-rn-runtime/components/input/epoch/wheelpicker/wheelpicker.component.js +1 -1
- app-rn-runtime/components/input/epoch/wheelpicker/wheelpicker.props.js +1 -1
- app-rn-runtime/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js +1 -1
- app-rn-runtime/components/input/epoch/wheelpickermodal/date/date-picker-modal.props.js +1 -1
- app-rn-runtime/components/input/epoch/wheelpickermodal/time/time-picker-modal.component.js +1 -1
- app-rn-runtime/components/input/epoch/wheelpickermodal/time/time-picker-modal.props.js +1 -1
- app-rn-runtime/components/input/fileupload/fileupload.component.js +1 -1
- app-rn-runtime/components/input/fileupload/fileupload.props.js +1 -1
- app-rn-runtime/components/input/number/number.component.js +2 -2
- app-rn-runtime/components/input/number/number.props.js +1 -1
- app-rn-runtime/components/input/radioset/radioset.component.js +2 -2
- app-rn-runtime/components/input/radioset/radioset.props.js +1 -1
- app-rn-runtime/components/input/rating/rating.component.js +1 -1
- app-rn-runtime/components/input/rating/rating.props.js +1 -1
- app-rn-runtime/components/input/select/select.component.js +3 -3
- app-rn-runtime/components/input/select/select.component.js.map +1 -1
- app-rn-runtime/components/input/select/select.props.js +1 -1
- app-rn-runtime/components/input/slider/slider.component.js +2 -2
- app-rn-runtime/components/input/slider/slider.props.js +1 -1
- app-rn-runtime/components/input/switch/switch.component.js +1 -1
- app-rn-runtime/components/input/switch/switch.props.js +1 -1
- app-rn-runtime/components/input/text/text.component.js +1 -1
- app-rn-runtime/components/input/text/text.props.js +1 -1
- app-rn-runtime/components/input/textarea/textarea.component.js +1 -1
- app-rn-runtime/components/input/textarea/textarea.props.js +1 -1
- app-rn-runtime/components/input/toggle/toggle.component.js +2 -2
- app-rn-runtime/components/input/toggle/toggle.props.js +1 -1
- app-rn-runtime/components/navigation/appnavbar/appnavbar.component.js +2 -2
- app-rn-runtime/components/navigation/appnavbar/appnavbar.props.js +1 -1
- app-rn-runtime/components/navigation/basenav/basenav.component.js +1 -1
- app-rn-runtime/components/navigation/basenav/basenav.props.js +1 -1
- app-rn-runtime/components/navigation/menu/menu.component.js +1 -1
- app-rn-runtime/components/navigation/menu/menu.props.js +1 -1
- app-rn-runtime/components/navigation/navbar/navbar.props.js +1 -1
- app-rn-runtime/components/navigation/navitem/navitem.component.js +2 -2
- app-rn-runtime/components/navigation/navitem/navitem.props.js +1 -1
- app-rn-runtime/components/navigation/popover/popover.component.js +2 -2
- app-rn-runtime/components/navigation/popover/popover.props.js +1 -1
- app-rn-runtime/components/page/left-panel/left-panel.component.js +1 -1
- app-rn-runtime/components/page/left-panel/left-panel.props.js +1 -1
- app-rn-runtime/components/page/page-content/page-content.props.js +1 -1
- app-rn-runtime/components/page/page.component.js +2 -2
- app-rn-runtime/components/page/partial-container/partial-container.props.js +1 -1
- app-rn-runtime/components/page/tabbar/tabbar.component.js +3 -3
- app-rn-runtime/components/page/tabbar/tabbar.component.js.map +1 -1
- app-rn-runtime/components/page/tabbar/tabbar.props.js +1 -1
- app-rn-runtime/core/AppConfig.js.map +1 -1
- app-rn-runtime/core/base.component.js +2 -2
- app-rn-runtime/core/components/textinput.component.js +1 -1
- app-rn-runtime/core/constant.service.js +1 -1
- app-rn-runtime/core/event-notifier.js +1 -1
- app-rn-runtime/core/fixed-view.component.js +1 -1
- app-rn-runtime/core/imageSizeEstimator.js +1 -1
- app-rn-runtime/core/key.extractor.js +1 -1
- app-rn-runtime/core/logger.js +1 -1
- app-rn-runtime/core/network.service.js +1 -1
- app-rn-runtime/core/props.provider.js +1 -1
- app-rn-runtime/core/scroll-view.component.js +2 -2
- app-rn-runtime/core/storage.service.js +1 -1
- app-rn-runtime/core/tappable.component.js +2 -2
- app-rn-runtime/core/viewport.js +1 -1
- app-rn-runtime/core/wm-component-tree.js +1 -1
- app-rn-runtime/gestures/swipe.animation.js +1 -1
- app-rn-runtime/package.json +45 -46
- app-rn-runtime/runtime/App.js +3 -3
- app-rn-runtime/runtime/App.js.map +1 -1
- app-rn-runtime/runtime/base-fragment.component.js +1 -1
- app-rn-runtime/runtime/base-page.component.js +2 -2
- app-rn-runtime/runtime/base-page.component.js.map +1 -1
- app-rn-runtime/runtime/base-partial.component.js +1 -1
- app-rn-runtime/runtime/base-prefab.component.js +1 -1
- app-rn-runtime/runtime/memo.component.js +1 -1
- app-rn-runtime/runtime/navigator/stack.navigator.js +1 -1
- app-rn-runtime/runtime/services/app-display-manager.service.js +1 -1
- app-rn-runtime/runtime/services/app-i18n.service.js +1 -1
- app-rn-runtime/runtime/services/app-modal.service.js +1 -1
- app-rn-runtime/runtime/services/app-security.service.js +1 -1
- app-rn-runtime/runtime/services/app-spinner.service.js +1 -1
- app-rn-runtime/runtime/services/app-toast.service.js +1 -1
- app-rn-runtime/runtime/services/device/camera-service.js +10 -10
- app-rn-runtime/runtime/services/device/camera-service.js.map +1 -1
- app-rn-runtime/runtime/services/device/permissions.js +2 -2
- app-rn-runtime/runtime/services/device/permissions.js.map +1 -1
- app-rn-runtime/runtime/services/device/scan-service.js +35 -9
- app-rn-runtime/runtime/services/device/scan-service.js.map +1 -1
- app-rn-runtime/runtime/services/webprocess.service.js +1 -1
- app-rn-runtime/runtime/watcher.js +1 -1
- app-rn-runtime/styles/background.component.js +2 -2
- app-rn-runtime/styles/background.component.js.map +1 -1
- app-rn-runtime/styles/style-props.js +1 -1
- app-rn-runtime/styles/theme.js +42 -2
- app-rn-runtime/styles/theme.js.map +1 -1
- app-rn-runtime/styles/theme.variables.js +1 -1
- app-rn-runtime/variables/base-variable.js +1 -1
- app-rn-runtime/variables/device/device/network-info.operation.js +1 -1
- app-rn-runtime/variables/live-variable.js +1 -1
- app-rn-runtime/variables/model-variable.js +1 -1
- app-rn-runtime/variables/service-variable.js +1 -1
- app-rn-runtime/variables/utils/inflight-queue.js +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","ImageBackground","Platform","TouchableOpacity","View","Ionicons","ResizeMode","Video","Camera","CameraType","FileSystem","permissionManager","appDisplayManagerService","styles","preview","top","left","right","flexGrow","backgroundColor","actionBtn","flex","padding","paddingHorizontal","alignSelf","margin","actionBar","flexDirection","justifyContent","position","bottom","leftWrapper","alignItems","midWrapper","rightWrapper","circle","display","outerCircle","borderWidth","height","width","borderRadius","borderColor","innerCircle","CameraService","constructor","displayManager","_defineProperty","back","captureVideo","options","Promise","resolve","reject","requestPermissions","then","destroy","show","content","createElement","CameraView","testID","type","captureType","onSuccess","o","call","videoPath","uri","onCancel","captureImage","params","catch","base64","imagePath","CameraViewProps","CameraViewState","Component","props","camera","recordAsync","response","readAsStringAsync","encoding","setState","cameraContent","isCaptured","state","showActionBtns","recording","stopRecording","toggleCapture","takePicture","startRecord","stopRecord","getTestProps","suffix","id","OS","accessibilityLabel","accessible","quality","skipProcessing","onPictureSaved","takePictureAsync","getActionsTemplate","style","_extends","onPress","closeView","name","size","color","bind","cameraType","getPreviewTemplate","actions","source","resizeMode","CONTAIN","shouldPlay","useNativeControls","isLooping","render","ref","onCameraReady","cameraService"],"sources":["camera-service.tsx"],"sourcesContent":["import React from \"react\";\nimport { ImageBackground, Platform, TouchableOpacity, View, ViewStyle } from \"react-native\";\nimport { Ionicons } from \"@expo/vector-icons\";\nimport { ResizeMode, Video } from \"expo-av\";\nimport { Camera, CameraType } from \"expo-camera\";\nimport * as FileSystem from \"expo-file-system\";\nimport * as Application from 'expo-application';\n\nimport { DisplayManager } from \"@wavemaker/app-rn-runtime/core/display.manager\";\nimport { CaptureVideoOutput } from \"@wavemaker/app-rn-runtime/variables/device/camera/capture-video.operation\";\nimport { CaptureImageOutput } from \"@wavemaker/app-rn-runtime/variables/device/camera/capture-image.operation\";\nimport permissionManager from '@wavemaker/app-rn-runtime/runtime/services/device/permissions';\nimport { CameraInput } from \"@wavemaker/app-rn-runtime/core/device/camera-service\";\nimport { Input } from \"@wavemaker/app-rn-runtime/variables/device/operation.provider\";\nimport appDisplayManagerService from \"@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service\";\nconst styles = {\n preview: {\n top: 0,\n left: 0,\n right: 0,\n flexGrow: 1,\n backgroundColor: 'black'\n },\n actionBtn: {\n flex: 0,\n padding: 15,\n paddingHorizontal: 20,\n alignSelf: 'center',\n margin: 20,\n } as ViewStyle,\n actionBar: {\n flex: 0,\n flexDirection: 'row',\n justifyContent: 'center',\n backgroundColor: 'rgba(0,0,0,0.6)',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n padding: 20\n } as ViewStyle,\n leftWrapper: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'flex-start',\n } as ViewStyle,\n midWrapper: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n } as ViewStyle,\n rightWrapper: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'flex-end',\n } as ViewStyle,\n circle: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n } as ViewStyle,\n outerCircle: {\n borderWidth: 3,\n height: 50,\n width: 50,\n borderRadius: 25,\n borderColor: 'white'\n },\n innerCircle: {\n borderRadius:2,\n height: 20,\n width:20,\n backgroundColor: 'red'\n }\n};\n\nexport interface CameraVideoInput extends Input {}\n\nexport class CameraService {\n private type= CameraType.back;\n\n constructor(private displayManager: DisplayManager) {\n }\n\n public captureVideo(options?: CameraVideoInput): Promise<CaptureVideoOutput> {\n return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('video').then(() => {\n const destroy = this.displayManager.show({\n content: (<CameraView testID={\"camera_view\"} type={this.type} captureType={'video'} onSuccess={(o) => {\n destroy.call(this.displayManager);\n /*o.content().catch(() => {}).then(base64 => {\n resolve({videoPath: o.uri, content: base64 || ''});\n });*/\n resolve({videoPath: o.uri, content: ''});\n }}\n onCancel={() => {\n destroy.call(this.displayManager);\n }}\n ></CameraView>)\n });\n }, reject);\n });\n }\n\n public captureImage(params: CameraInput): Promise<CaptureImageOutput> {\n return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('image').then(() => {\n const destroy = this.displayManager.show({\n content: (<CameraView testID={\"camera_view\"} type={this.type} captureType={'image'} onSuccess={(o) => {\n destroy.call(this.displayManager);\n o.content().catch(() => {}).then(base64 => {\n resolve({imagePath: o.uri, content: base64 || ''});\n });\n }} onCancel={() => {destroy.call(this.displayManager);}}\n ></CameraView>)\n });\n }, reject);\n });\n }\n}\n\ninterface CameraOutput {\n uri: string;\n content: () => Promise<string>;\n}\n\nclass CameraViewProps {\n testID: string = 'camera_view';\n type: 'front' | 'back' = 'back' as CameraType;\n captureType: 'image' | 'video' = 'image';\n onSuccess: (o: CameraOutput) => any = () => {};\n onCancel: () => any = () => {};\n}\n\nclass CameraViewState {\n recording: boolean = false;\n showActionBtns: boolean = false;\n cameraType: CameraType = CameraType.back;\n isCaptured: boolean = false;\n closeView: boolean = false;\n cameraContent: CameraOutput = {} as CameraOutput;\n}\n\nexport class CameraView extends React.Component<CameraViewProps, CameraViewState> {\n private camera: Camera = {} as Camera;\n\n constructor(props: CameraViewProps) {\n super(props);\n this.state = new CameraViewState();\n }\n\n toggleCapture() {\n if (this.props.captureType === 'image') {\n this.takePicture();\n } else {\n if (!this.state.recording) {\n this.startRecord();\n } else {\n this.stopRecord();\n this.setState({showActionBtns: true} as CameraViewState);\n }\n }\n }\n\n getTestProps(suffix: string) {\n const id = this.props.testID + (suffix ? '_' + suffix : '');\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\n };\n }\n\n async takePicture() {\n const options = {\n quality: 0.5,\n base64: false,\n skipProcessing: true,\n onPictureSaved: (response: any) => {\n response.content = async () => {\n return await FileSystem.readAsStringAsync(response.uri, { encoding: 'base64' });\n };\n this.setState({ \n cameraContent: response,\n isCaptured: true,\n showActionBtns: true } as CameraViewState);\n }\n }\n await this.camera.takePictureAsync(options);\n\n if (this.state.showActionBtns) {\n this.setState({showActionBtns: false} as CameraViewState);\n }\n this.setState({showActionBtns: true} as CameraViewState);\n }\n\n // start recording\n startRecord = async () => {\n this.camera.recordAsync().then((response: any) => {\n response.content = async () => {\n return await FileSystem.readAsStringAsync(response.uri, { encoding: 'base64' });\n };\n this.setState({ cameraContent: response, isCaptured: true } as CameraViewState);\n });\n if (this.state.showActionBtns) {\n this.setState({showActionBtns: false} as CameraViewState);\n }\n\n this.setState({recording: true} as CameraViewState);\n };\n\n // stop recording\n stopRecord = async () => {\n this.camera.stopRecording();\n this.setState({recording: false} as CameraViewState);\n this.setState({showActionBtns: true} as CameraViewState);\n };\n\n getActionsTemplate() {\n return <View style={styles.actionBar}>\n <View style={styles.leftWrapper}>\n <TouchableOpacity\n {...this.getTestProps('close')}\n onPress={() => {\n this.setState({ cameraContent: {uri: ''}, isCaptured: false, closeView: true } as CameraViewState);\n this.props.onCancel();\n }}>\n <Ionicons name='close-circle' size={32} color='white' />\n </TouchableOpacity>\n </View>\n <View style={styles.midWrapper}>\n {!this.state.isCaptured ? <TouchableOpacity style={[styles.circle, styles.outerCircle, this.props.captureType === 'video' && !this.state.recording ? { backgroundColor: \"red\" } : {},\n this.props.captureType === 'image' ? { backgroundColor: \"white\" } : {}]}\n onPress={this.toggleCapture.bind(this)}\n {...this.getTestProps('capture')}>\n <View style={[styles.circle as ViewStyle, this.props.captureType === 'image' ? {} : styles.innerCircle, this.props.captureType === 'image' ? { backgroundColor: \"white\" } : {}]}></View>\n </TouchableOpacity> : null}\n </View>\n <View style={styles.rightWrapper}>\n {this.state.showActionBtns ? (<TouchableOpacity\n onPress={() => {\n this.setState({ isCaptured: false, closeView: true } as CameraViewState);\n this.props.onSuccess(this.state.cameraContent);\n this.setState({ cameraContent: {uri: ''} } as CameraViewState);\n }}\n {...this.getTestProps('ok')}>\n <Ionicons name='checkmark-circle' size={32} color='white'/>\n </TouchableOpacity>) : (<TouchableOpacity\n {...this.getTestProps('toggle')}\n onPress={() => {\n this.setState({cameraType: this.state.cameraType === 'back' ? 'front' : 'back'} as CameraViewState);\n }}>\n <Ionicons name='camera-reverse' size={32} color='white' />\n </TouchableOpacity>)}\n </View>\n </View>\n }\n\n getPreviewTemplate(actions: any) {\n return this.props.captureType === 'image' ?\n <ImageBackground source={{uri : this.state.cameraContent.uri}} resizeMode={ResizeMode.CONTAIN} style={{flex: 1}} />\n : <Video\n style={{ flex: 1 }}\n source={{\n uri: this.state.cameraContent.uri,\n }}\n shouldPlay={true}\n useNativeControls\n isLooping\n resizeMode={ResizeMode.CONTAIN}\n ></Video>\n }\n\n render() {\n if (this.state.closeView) {\n return null;\n }\n const actions = this.getActionsTemplate();\n return (\n <View style={styles.preview}>\n {this.state.isCaptured ? (\n this.getPreviewTemplate(actions)\n ) : (\n <Camera type={CameraType[this.state.cameraType]} ref={(ref: Camera) => { this.camera = ref; }}\n style={{flex: 1}}\n onCameraReady={() => {}}>\n\n </Camera>)}\n {actions}\n </View>)\n }\n}\nconst cameraService = new CameraService(appDisplayManagerService);\nexport default cameraService;\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,EAAEC,QAAQ,EAAEC,gBAAgB,EAAEC,IAAI,QAAmB,cAAc;AAC3F,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,UAAU,EAAEC,KAAK,QAAQ,SAAS;AAC3C,SAASC,MAAM,EAAEC,UAAU,QAAQ,aAAa;AAChD,OAAO,KAAKC,UAAU,MAAM,kBAAkB;AAM9C,OAAOC,iBAAiB,MAAM,+DAA+D;AAG7F,OAAOC,wBAAwB,MAAM,wEAAwE;AAC7G,MAAMC,MAAM,GAAG;EACbC,OAAO,EAAE;IACPC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,QAAQ,EAAE,CAAC;IACXC,eAAe,EAAE;EACnB,CAAC;EACDC,SAAS,EAAE;IACTC,IAAI,EAAE,CAAC;IACPC,OAAO,EAAE,EAAE;IACXC,iBAAiB,EAAE,EAAE;IACrBC,SAAS,EAAE,QAAQ;IACnBC,MAAM,EAAE;EACV,CAAc;EACdC,SAAS,EAAE;IACTL,IAAI,EAAE,CAAC;IACPM,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,QAAQ;IACxBT,eAAe,EAAE,iBAAiB;IAClCU,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,CAAC;IACTd,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRK,OAAO,EAAE;EACX,CAAc;EACdS,WAAW,EAAE;IACXV,IAAI,EAAE,CAAC;IACPO,cAAc,EAAE,QAAQ;IACxBI,UAAU,EAAE;EACd,CAAc;EACdC,UAAU,EAAE;IACVZ,IAAI,EAAE,CAAC;IACPO,cAAc,EAAE,QAAQ;IACxBI,UAAU,EAAE;EACd,CAAc;EACdE,YAAY,EAAE;IACZb,IAAI,EAAE,CAAC;IACPO,cAAc,EAAE,QAAQ;IACxBI,UAAU,EAAE;EACd,CAAc;EACdG,MAAM,EAAE;IACNC,OAAO,EAAE,MAAM;IACfR,cAAc,EAAE,QAAQ;IACxBI,UAAU,EAAE;EACd,CAAc;EACdK,WAAW,EAAE;IACXC,WAAW,EAAE,CAAC;IACdC,MAAM,EAAE,EAAE;IACVC,KAAK,EAAE,EAAE;IACTC,YAAY,EAAE,EAAE;IAChBC,WAAW,EAAE;EACf,CAAC;EACDC,WAAW,EAAE;IACXF,YAAY,EAAC,CAAC;IACdF,MAAM,EAAE,EAAE;IACVC,KAAK,EAAC,EAAE;IACRrB,eAAe,EAAE;EACnB;AACF,CAAC;AAID,OAAO,MAAMyB,aAAa,CAAC;EAGzBC,WAAWA,CAASC,cAA8B,EAAE;IAAA,KAAhCA,cAA8B,GAA9BA,cAA8B;IAAAC,eAAA,eAFpCtC,UAAU,CAACuC,IAAI;EAG7B;EAEOC,YAAYA,CAACC,OAA0B,EAA+B;IAC3E,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC1C,iBAAiB,CAAC2C,kBAAkB,CAAC,OAAO,CAAC,CAACC,IAAI,CAAC,MAAM;QACvD,MAAMC,OAAO,GAAG,IAAI,CAACV,cAAc,CAACW,IAAI,CAAC;UACvCC,OAAO,eAAG1D,KAAA,CAAA2D,aAAA,CAACC,UAAU;YAACC,MAAM,EAAE,aAAc;YAACC,IAAI,EAAE,IAAI,CAACA,IAAK;YAACC,WAAW,EAAE,OAAQ;YAACC,SAAS,EAAGC,CAAC,IAAK;cACpGT,OAAO,CAACU,IAAI,CAAC,IAAI,CAACpB,cAAc,CAAC;cACjC;AACZ;AACA;cACYM,OAAO,CAAC;gBAACe,SAAS,EAAEF,CAAC,CAACG,GAAG;gBAAEV,OAAO,EAAE;cAAE,CAAC,CAAC;YAC1C,CAAE;YACFW,QAAQ,EAAEA,CAAA,KAAM;cACdb,OAAO,CAACU,IAAI,CAAC,IAAI,CAACpB,cAAc,CAAC;YACnC;UAAE,CACW;QACf,CAAC,CAAC;MACJ,CAAC,EAAEO,MAAM,CAAC;IACZ,CAAC,CAAC;EACJ;EAEOiB,YAAYA,CAACC,MAAmB,EAA+B;IACpE,OAAO,IAAIpB,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;MACtC1C,iBAAiB,CAAC2C,kBAAkB,CAAC,OAAO,CAAC,CAACC,IAAI,CAAC,MAAM;QACvD,MAAMC,OAAO,GAAG,IAAI,CAACV,cAAc,CAACW,IAAI,CAAC;UACvCC,OAAO,eAAG1D,KAAA,CAAA2D,aAAA,CAACC,UAAU;YAACC,MAAM,EAAE,aAAc;YAACC,IAAI,EAAE,IAAI,CAACA,IAAK;YAACC,WAAW,EAAE,OAAQ;YAACC,SAAS,EAAGC,CAAC,IAAK;cACpGT,OAAO,CAACU,IAAI,CAAC,IAAI,CAACpB,cAAc,CAAC;cACjCmB,CAAC,CAACP,OAAO,CAAC,CAAC,CAACc,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAACjB,IAAI,CAACkB,MAAM,IAAI;gBACzCrB,OAAO,CAAC;kBAACsB,SAAS,EAAET,CAAC,CAACG,GAAG;kBAAEV,OAAO,EAAEe,MAAM,IAAI;gBAAE,CAAC,CAAC;cACpD,CAAC,CAAC;YACJ,CAAE;YAACJ,QAAQ,EAAEA,CAAA,KAAM;cAACb,OAAO,CAACU,IAAI,CAAC,IAAI,CAACpB,cAAc,CAAC;YAAC;UAAE,CAC3C;QACf,CAAC,CAAC;MACJ,CAAC,EAAEO,MAAM,CAAC;IACZ,CAAC,CAAC;EACJ;AACF;AAOA,MAAMsB,eAAe,CAAC;EAAA9B,YAAA;IAAAE,eAAA,iBACH,aAAa;IAAAA,eAAA,eACL,MAAM;IAAAA,eAAA,sBACE,OAAO;IAAAA,eAAA,oBACF,MAAM,CAAC,CAAC;IAAAA,eAAA,mBACxB,MAAM,CAAC,CAAC;EAAA;AAChC;AAEA,MAAM6B,eAAe,CAAC;EAAA/B,YAAA;IAAAE,eAAA,oBACG,KAAK;IAAAA,eAAA,yBACA,KAAK;IAAAA,eAAA,qBACNtC,UAAU,CAACuC,IAAI;IAAAD,eAAA,qBAClB,KAAK;IAAAA,eAAA,oBACN,KAAK;IAAAA,eAAA,wBACI,CAAC,CAAC;EAAA;AACpC;AAEA,OAAO,MAAMa,UAAU,SAAS5D,KAAK,CAAC6E,SAAS,CAAmC;EAGhFhC,WAAWA,CAACiC,KAAsB,EAAE;IAClC,KAAK,CAACA,KAAK,CAAC;IAAC/B,eAAA,iBAHU,CAAC,CAAC;IAyD3B;IAAAA,eAAA,sBACc,YAAY;MACxB,IAAI,CAACgC,MAAM,CAACC,WAAW,CAAC,CAAC,CAACzB,IAAI,CAAE0B,QAAa,IAAK;QAChDA,QAAQ,CAACvB,OAAO,GAAG,YAAY;UAC7B,OAAO,MAAMhD,UAAU,CAACwE,iBAAiB,CAACD,QAAQ,CAACb,GAAG,EAAE;YAAEe,QAAQ,EAAE;UAAS,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAACC,QAAQ,CAAC;UAAEC,aAAa,EAAEJ,QAAQ;UAAEK,UAAU,EAAE;QAAK,CAAoB,CAAC;MACjF,CAAC,CAAC;MACF,IAAI,IAAI,CAACC,KAAK,CAACC,cAAc,EAAE;QAC7B,IAAI,CAACJ,QAAQ,CAAC;UAACI,cAAc,EAAE;QAAK,CAAoB,CAAC;MAC3D;MAEA,IAAI,CAACJ,QAAQ,CAAC;QAACK,SAAS,EAAE;MAAI,CAAoB,CAAC;IACrD,CAAC;IAED;IAAA1C,eAAA,qBACa,YAAY;MACvB,IAAI,CAACgC,MAAM,CAACW,aAAa,CAAC,CAAC;MAC3B,IAAI,CAACN,QAAQ,CAAC;QAACK,SAAS,EAAE;MAAK,CAAoB,CAAC;MACpD,IAAI,CAACL,QAAQ,CAAC;QAACI,cAAc,EAAE;MAAI,CAAoB,CAAC;IAC1D,CAAC;IAzEC,IAAI,CAACD,KAAK,GAAG,IAAIX,eAAe,CAAC,CAAC;EACpC;EAEAe,aAAaA,CAAA,EAAG;IACd,IAAI,IAAI,CAACb,KAAK,CAACf,WAAW,KAAK,OAAO,EAAE;MACtC,IAAI,CAAC6B,WAAW,CAAC,CAAC;IACpB,CAAC,MAAM;MACL,IAAI,CAAC,IAAI,CAACL,KAAK,CAACE,SAAS,EAAE;QACzB,IAAI,CAACI,WAAW,CAAC,CAAC;MACpB,CAAC,MAAM;QACL,IAAI,CAACC,UAAU,CAAC,CAAC;QACjB,IAAI,CAACV,QAAQ,CAAC;UAACI,cAAc,EAAE;QAAI,CAAoB,CAAC;MAC1D;IACF;EACF;EAEAO,YAAYA,CAACC,MAAc,EAAE;IAC3B,MAAMC,EAAE,GAAG,IAAI,CAACnB,KAAK,CAACjB,MAAM,IAAImC,MAAM,GAAG,GAAG,GAAGA,MAAM,GAAI,EAAE,CAAC;IAC5D,IAAI9F,QAAQ,CAACgG,EAAE,KAAK,SAAS,IAAIhG,QAAQ,CAACgG,EAAE,KAAK,KAAK,EAAE;MACtD,OAAO;QACHC,kBAAkB,EAAEF,EAAE;QACtBpC,MAAM,EAAEoC;MACZ,CAAC;IACH;IACA,OAAO;MACHG,UAAU,EAAE,KAAK;MACjBvC,MAAM,EAAEoC;IACZ,CAAC;EACH;EAEA,MAAML,WAAWA,CAAA,EAAG;IAClB,MAAM1C,OAAO,GAAG;MACdmD,OAAO,EAAE,GAAG;MACZ5B,MAAM,EAAE,KAAK;MACb6B,cAAc,EAAE,IAAI;MACpBC,cAAc,EAAGtB,QAAa,IAAK;QACjCA,QAAQ,CAACvB,OAAO,GAAG,YAAY;UAC7B,OAAO,MAAMhD,UAAU,CAACwE,iBAAiB,CAACD,QAAQ,CAACb,GAAG,EAAE;YAAEe,QAAQ,EAAE;UAAS,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAACC,QAAQ,CAAC;UACZC,aAAa,EAAEJ,QAAQ;UACvBK,UAAU,EAAE,IAAI;UAChBE,cAAc,EAAE;QAAK,CAAoB,CAAC;MAC9C;IACF,CAAC;IACD,MAAM,IAAI,CAACT,MAAM,CAACyB,gBAAgB,CAACtD,OAAO,CAAC;IAE3C,IAAI,IAAI,CAACqC,KAAK,CAACC,cAAc,EAAE;MAC7B,IAAI,CAACJ,QAAQ,CAAC;QAACI,cAAc,EAAE;MAAK,CAAoB,CAAC;IAC3D;IACA,IAAI,CAACJ,QAAQ,CAAC;MAACI,cAAc,EAAE;IAAI,CAAoB,CAAC;EAC1D;EAwBAiB,kBAAkBA,CAAA,EAAG;IACnB,oBAAOzG,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAACsG,KAAK,EAAE7F,MAAM,CAACa;IAAU,gBACnC1B,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAACsG,KAAK,EAAE7F,MAAM,CAACkB;IAAY,gBAC9B/B,KAAA,CAAA2D,aAAA,CAACxD,gBAAgB,EAAAwG,QAAA,KACX,IAAI,CAACZ,YAAY,CAAC,OAAO,CAAC;MAC9Ba,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACxB,QAAQ,CAAC;UAAEC,aAAa,EAAE;YAACjB,GAAG,EAAE;UAAE,CAAC;UAAEkB,UAAU,EAAE,KAAK;UAAGuB,SAAS,EAAE;QAAK,CAAoB,CAAC;QACnG,IAAI,CAAC/B,KAAK,CAACT,QAAQ,CAAC,CAAC;MACvB;IAAE,iBACFrE,KAAA,CAAA2D,aAAA,CAACtD,QAAQ;MAACyG,IAAI,EAAC,cAAc;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAO,CAAE,CACvC,CACd,CAAC,eACPhH,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAACsG,KAAK,EAAE7F,MAAM,CAACoB;IAAW,GAC5B,CAAC,IAAI,CAACsD,KAAK,CAACD,UAAU,gBAAGtF,KAAA,CAAA2D,aAAA,CAACxD,gBAAgB,EAAAwG,QAAA;MAACD,KAAK,EAAE,CAAC7F,MAAM,CAACsB,MAAM,EAAEtB,MAAM,CAACwB,WAAW,EAAE,IAAI,CAACyC,KAAK,CAACf,WAAW,KAAK,OAAO,IAAI,CAAC,IAAI,CAACwB,KAAK,CAACE,SAAS,GAAG;QAAEtE,eAAe,EAAE;MAAM,CAAC,GAAG,CAAC,CAAC,EAClL,IAAI,CAAC2D,KAAK,CAACf,WAAW,KAAK,OAAO,GAAG;QAAE5C,eAAe,EAAE;MAAQ,CAAC,GAAG,CAAC,CAAC,CAAE;MACxDyF,OAAO,EAAE,IAAI,CAACjB,aAAa,CAACsB,IAAI,CAAC,IAAI;IAAE,GACnC,IAAI,CAAClB,YAAY,CAAC,SAAS,CAAC,gBAChD/F,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAACsG,KAAK,EAAE,CAAC7F,MAAM,CAACsB,MAAM,EAAe,IAAI,CAAC2C,KAAK,CAACf,WAAW,KAAK,OAAO,GAAG,CAAC,CAAC,GAAGlD,MAAM,CAAC8B,WAAW,EAAE,IAAI,CAACmC,KAAK,CAACf,WAAW,KAAK,OAAO,GAAG;QAAE5C,eAAe,EAAE;MAAQ,CAAC,GAAG,CAAC,CAAC;IAAE,CAAO,CACvK,CAAC,GAAG,IAClB,CAAC,eACPnB,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAACsG,KAAK,EAAE7F,MAAM,CAACqB;IAAa,GAC9B,IAAI,CAACqD,KAAK,CAACC,cAAc,gBAAIxF,KAAA,CAAA2D,aAAA,CAACxD,gBAAgB,EAAAwG,QAAA;MAC7CC,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACxB,QAAQ,CAAC;UAAEE,UAAU,EAAE,KAAK;UAAEuB,SAAS,EAAE;QAAK,CAAoB,CAAC;QACxE,IAAI,CAAC/B,KAAK,CAACd,SAAS,CAAC,IAAI,CAACuB,KAAK,CAACF,aAAa,CAAC;QAC9C,IAAI,CAACD,QAAQ,CAAC;UAAEC,aAAa,EAAE;YAACjB,GAAG,EAAE;UAAE;QAAE,CAAoB,CAAC;MAChE;IAAE,GACE,IAAI,CAAC2B,YAAY,CAAC,IAAI,CAAC,gBAC3B/F,KAAA,CAAA2D,aAAA,CAACtD,QAAQ;MAACyG,IAAI,EAAC,kBAAkB;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAO,CAAC,CAC1C,CAAC,gBAAKhH,KAAA,CAAA2D,aAAA,CAACxD,gBAAgB,EAAAwG,QAAA,KACnC,IAAI,CAACZ,YAAY,CAAC,QAAQ,CAAC;MAC/Ba,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAACxB,QAAQ,CAAC;UAAC8B,UAAU,EAAE,IAAI,CAAC3B,KAAK,CAAC2B,UAAU,KAAK,MAAM,GAAG,OAAO,GAAG;QAAM,CAAoB,CAAC;MACrG;IAAE,iBACFlH,KAAA,CAAA2D,aAAA,CAACtD,QAAQ;MAACyG,IAAI,EAAC,gBAAgB;MAACC,IAAI,EAAE,EAAG;MAACC,KAAK,EAAC;IAAO,CAAE,CACzC,CACd,CACF,CAAC;EACT;EAEAG,kBAAkBA,CAACC,OAAY,EAAE;IAC/B,OAAO,IAAI,CAACtC,KAAK,CAACf,WAAW,KAAK,OAAO,gBACvC/D,KAAA,CAAA2D,aAAA,CAAC1D,eAAe;MAACoH,MAAM,EAAE;QAACjD,GAAG,EAAG,IAAI,CAACmB,KAAK,CAACF,aAAa,CAACjB;MAAG,CAAE;MAACkD,UAAU,EAAEhH,UAAU,CAACiH,OAAQ;MAACb,KAAK,EAAE;QAACrF,IAAI,EAAE;MAAC;IAAE,CAAE,CAAC,gBACjHrB,KAAA,CAAA2D,aAAA,CAACpD,KAAK;MACJmG,KAAK,EAAE;QAAErF,IAAI,EAAE;MAAE,CAAE;MACnBgG,MAAM,EAAE;QACNjD,GAAG,EAAE,IAAI,CAACmB,KAAK,CAACF,aAAa,CAACjB;MAChC,CAAE;MACFoD,UAAU,EAAE,IAAK;MACjBC,iBAAiB;MACjBC,SAAS;MACTJ,UAAU,EAAEhH,UAAU,CAACiH;IAAQ,CACzB,CAAC;EACf;EAEAI,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACpC,KAAK,CAACsB,SAAS,EAAE;MACxB,OAAO,IAAI;IACb;IACA,MAAMO,OAAO,GAAG,IAAI,CAACX,kBAAkB,CAAC,CAAC;IACzC,oBACEzG,KAAA,CAAA2D,aAAA,CAACvD,IAAI;MAACsG,KAAK,EAAE7F,MAAM,CAACC;IAAQ,GACzB,IAAI,CAACyE,KAAK,CAACD,UAAU,GACpB,IAAI,CAAC6B,kBAAkB,CAACC,OAAO,CAAC,gBAEhCpH,KAAA,CAAA2D,aAAA,CAACnD,MAAM;MAACsD,IAAI,EAAErD,UAAU,CAAC,IAAI,CAAC8E,KAAK,CAAC2B,UAAU,CAAE;MAACU,GAAG,EAAGA,GAAW,IAAK;QAAE,IAAI,CAAC7C,MAAM,GAAG6C,GAAG;MAAE,CAAE;MAC1FlB,KAAK,EAAE;QAACrF,IAAI,EAAE;MAAC,CAAE;MACjBwG,aAAa,EAAEA,CAAA,KAAM,CAAC;IAAE,CAEpB,CAAE,EACXT,OACG,CAAC;EACX;AACF;AACA,MAAMU,aAAa,GAAG,IAAIlF,aAAa,CAAChC,wBAAwB,CAAC;AACjE,eAAekH,aAAa","ignoreList":[]}
|
1
|
+
{"version":3,"names":["React","ImageBackground","Platform","TouchableOpacity","View","Ionicons","ResizeMode","Video","CameraView","FileSystem","permissionManager","appDisplayManagerService","styles","preview","top","left","right","flexGrow","backgroundColor","actionBtn","flex","padding","paddingHorizontal","alignSelf","margin","actionBar","flexDirection","justifyContent","position","bottom","leftWrapper","alignItems","midWrapper","rightWrapper","circle","display","outerCircle","borderWidth","height","width","borderRadius","borderColor","innerCircle","CameraService","constructor","displayManager","_defineProperty","captureVideo","options","Promise","resolve","reject","requestPermissions","then","destroy","show","content","createElement","Camera","testID","type","captureType","onSuccess","o","call","videoPath","uri","onCancel","captureImage","params","catch","base64","imagePath","CameraViewProps","CameraViewState","Component","props","camera","recordAsync","response","readAsStringAsync","encoding","setState","cameraContent","isCaptured","state","showActionBtns","recording","stopRecording","toggleCapture","takePicture","startRecord","stopRecord","getTestProps","suffix","id","OS","accessibilityLabel","accessible","quality","skipProcessing","onPictureSaved","takePictureAsync","getActionsTemplate","style","_extends","onPress","closeView","name","size","color","bind","cameraType","getPreviewTemplate","actions","source","resizeMode","CONTAIN","shouldPlay","useNativeControls","isLooping","render","facing","ref","onCameraReady","cameraService"],"sources":["camera-service.tsx"],"sourcesContent":["import React from \"react\";\nimport { ImageBackground, Platform, TouchableOpacity, View, ViewStyle } from \"react-native\";\nimport { Ionicons } from \"@expo/vector-icons\";\nimport { ResizeMode, Video } from \"expo-av\";\nimport { CameraView, CameraType } from \"expo-camera\";\nimport * as FileSystem from \"expo-file-system\";\nimport * as Application from 'expo-application';\n\nimport { DisplayManager } from \"@wavemaker/app-rn-runtime/core/display.manager\";\nimport { CaptureVideoOutput } from \"@wavemaker/app-rn-runtime/variables/device/camera/capture-video.operation\";\nimport { CaptureImageOutput } from \"@wavemaker/app-rn-runtime/variables/device/camera/capture-image.operation\";\nimport permissionManager from '@wavemaker/app-rn-runtime/runtime/services/device/permissions';\nimport { CameraInput } from \"@wavemaker/app-rn-runtime/core/device/camera-service\";\nimport { Input } from \"@wavemaker/app-rn-runtime/variables/device/operation.provider\";\nimport appDisplayManagerService from \"@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service\";\nconst styles = {\n preview: {\n top: 0,\n left: 0,\n right: 0,\n flexGrow: 1,\n backgroundColor: 'black'\n },\n actionBtn: {\n flex: 0,\n padding: 15,\n paddingHorizontal: 20,\n alignSelf: 'center',\n margin: 20,\n } as ViewStyle,\n actionBar: {\n flex: 0,\n flexDirection: 'row',\n justifyContent: 'center',\n backgroundColor: 'rgba(0,0,0,0.6)',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n padding: 20\n } as ViewStyle,\n leftWrapper: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'flex-start',\n } as ViewStyle,\n midWrapper: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n } as ViewStyle,\n rightWrapper: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'flex-end',\n } as ViewStyle,\n circle: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n } as ViewStyle,\n outerCircle: {\n borderWidth: 3,\n height: 50,\n width: 50,\n borderRadius: 25,\n borderColor: 'white'\n },\n innerCircle: {\n borderRadius:2,\n height: 20,\n width:20,\n backgroundColor: 'red'\n }\n};\n\nexport interface CameraVideoInput extends Input {}\n\nexport class CameraService {\n private type: CameraType = \"back\";\n\n constructor(private displayManager: DisplayManager) {\n }\n\n public captureVideo(options?: CameraVideoInput): Promise<CaptureVideoOutput> {\n return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('video').then(() => {\n const destroy = this.displayManager.show({\n content: (<Camera testID={\"camera_view\"} type={this.type} captureType={'video'} onSuccess={(o) => {\n destroy.call(this.displayManager);\n /*o.content().catch(() => {}).then(base64 => {\n resolve({videoPath: o.uri, content: base64 || ''});\n });*/\n resolve({videoPath: o.uri, content: ''});\n }}\n onCancel={() => {\n destroy.call(this.displayManager);\n }}\n ></Camera>)\n });\n }, reject);\n });\n }\n\n public captureImage(params: CameraInput): Promise<CaptureImageOutput> {\n return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('image').then(() => {\n const destroy = this.displayManager.show({\n content: (<Camera testID={\"camera_view\"} type={this.type} captureType={'image'} onSuccess={(o) => {\n destroy.call(this.displayManager);\n o.content().catch(() => {}).then(base64 => {\n resolve({imagePath: o.uri, content: base64 || ''});\n });\n }} onCancel={() => {destroy.call(this.displayManager);}}\n ></Camera>)\n });\n }, reject);\n });\n }\n}\n\ninterface CameraOutput {\n uri: string;\n content: () => Promise<string>;\n}\n\nclass CameraViewProps {\n testID: string = 'camera_view';\n type: 'front' | 'back' = 'back' as CameraType;\n captureType: 'image' | 'video' = 'image';\n onSuccess: (o: CameraOutput) => any = () => {};\n onCancel: () => any = () => {};\n}\n\nclass CameraViewState {\n recording: boolean = false;\n showActionBtns: boolean = false;\n cameraType: CameraType = 'back';\n isCaptured: boolean = false;\n closeView: boolean = false;\n cameraContent: CameraOutput = {} as CameraOutput;\n}\n\nexport class Camera extends React.Component<CameraViewProps, CameraViewState> {\n private camera: any = {};\n\n constructor(props: CameraViewProps) {\n super(props);\n this.state = new CameraViewState();\n }\n\n toggleCapture() {\n if (this.props.captureType === 'image') {\n this.takePicture();\n } else {\n if (!this.state.recording) {\n this.startRecord();\n } else {\n this.stopRecord();\n this.setState({showActionBtns: true} as CameraViewState);\n }\n }\n }\n\n getTestProps(suffix: string) {\n const id = this.props.testID + (suffix ? '_' + suffix : '');\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\n };\n }\n\n async takePicture() {\n const options = {\n quality: 0.5,\n base64: false,\n skipProcessing: true,\n onPictureSaved: (response: any) => {\n response.content = async () => {\n return await FileSystem.readAsStringAsync(response.uri, { encoding: 'base64' });\n };\n this.setState({ \n cameraContent: response,\n isCaptured: true,\n showActionBtns: true } as CameraViewState);\n }\n }\n await this.camera.takePictureAsync(options);\n\n if (this.state.showActionBtns) {\n this.setState({showActionBtns: false} as CameraViewState);\n }\n this.setState({showActionBtns: true} as CameraViewState);\n }\n\n // start recording\n startRecord = async () => {\n this.camera.recordAsync().then((response: any) => {\n response.content = async () => {\n return await FileSystem.readAsStringAsync(response.uri, { encoding: 'base64' });\n };\n this.setState({ cameraContent: response, isCaptured: true } as CameraViewState);\n });\n if (this.state.showActionBtns) {\n this.setState({showActionBtns: false} as CameraViewState);\n }\n\n this.setState({recording: true} as CameraViewState);\n };\n\n // stop recording\n stopRecord = async () => {\n this.camera.stopRecording();\n this.setState({recording: false} as CameraViewState);\n this.setState({showActionBtns: true} as CameraViewState);\n };\n\n getActionsTemplate() {\n return <View style={styles.actionBar}>\n <View style={styles.leftWrapper}>\n <TouchableOpacity\n {...this.getTestProps('close')}\n onPress={() => {\n this.setState({ cameraContent: {uri: ''}, isCaptured: false, closeView: true } as CameraViewState);\n this.props.onCancel();\n }}>\n <Ionicons name='close-circle' size={32} color='white' />\n </TouchableOpacity>\n </View>\n <View style={styles.midWrapper}>\n {!this.state.isCaptured ? <TouchableOpacity style={[styles.circle, styles.outerCircle, this.props.captureType === 'video' && !this.state.recording ? { backgroundColor: \"red\" } : {},\n this.props.captureType === 'image' ? { backgroundColor: \"white\" } : {}]}\n onPress={this.toggleCapture.bind(this)}\n {...this.getTestProps('capture')}>\n <View style={[styles.circle as ViewStyle, this.props.captureType === 'image' ? {} : styles.innerCircle, this.props.captureType === 'image' ? { backgroundColor: \"white\" } : {}]}></View>\n </TouchableOpacity> : null}\n </View>\n <View style={styles.rightWrapper}>\n {this.state.showActionBtns ? (<TouchableOpacity\n onPress={() => {\n this.setState({ isCaptured: false, closeView: true } as CameraViewState);\n this.props.onSuccess(this.state.cameraContent);\n this.setState({ cameraContent: {uri: ''} } as CameraViewState);\n }}\n {...this.getTestProps('ok')}>\n <Ionicons name='checkmark-circle' size={32} color='white'/>\n </TouchableOpacity>) : (<TouchableOpacity\n {...this.getTestProps('toggle')}\n onPress={() => {\n this.setState({cameraType: this.state.cameraType === 'back' ? 'front' : 'back'} as CameraViewState);\n }}>\n <Ionicons name='camera-reverse' size={32} color='white' />\n </TouchableOpacity>)}\n </View>\n </View>\n }\n\n getPreviewTemplate(actions: any) {\n return this.props.captureType === 'image' ?\n <ImageBackground source={{uri : this.state.cameraContent.uri}} resizeMode={ResizeMode.CONTAIN} style={{flex: 1}} />\n : <Video\n style={{ flex: 1 }}\n source={{\n uri: this.state.cameraContent.uri,\n }}\n shouldPlay={true}\n useNativeControls\n isLooping\n resizeMode={ResizeMode.CONTAIN}\n ></Video>\n }\n\n render() {\n if (this.state.closeView) {\n return null;\n }\n const actions = this.getActionsTemplate();\n return (\n <View style={styles.preview}>\n {this.state.isCaptured ? (\n this.getPreviewTemplate(actions)\n ) : (\n <CameraView facing={this.state.cameraType} ref={(ref) => { this.camera = ref; }}\n style={{flex: 1}}\n onCameraReady={() => {}}>\n\n </CameraView>)}\n {actions}\n </View>)\n }\n}\nconst cameraService = new CameraService(appDisplayManagerService);\nexport default cameraService;"],"mappings":"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","ignoreList":[]}
|
@@ -16,9 +16,9 @@ export default {
|
|
16
16
|
// requestPermissionsAsync is deprecated and requestForegroundPermissionsAsync is available only in sdk 41+
|
17
17
|
query = Location.requestForegroundPermissionsAsync();
|
18
18
|
} else if (type === 'video') {
|
19
|
-
query = Promise.all([Camera.requestCameraPermissionsAsync(), Camera.requestMicrophonePermissionsAsync()]);
|
19
|
+
query = Promise.all([Camera.Camera.requestCameraPermissionsAsync(), Camera.Camera.requestMicrophonePermissionsAsync()]);
|
20
20
|
} else if (type === 'image' || type === 'camera') {
|
21
|
-
query = Camera.requestCameraPermissionsAsync();
|
21
|
+
query = Camera.Camera.requestCameraPermissionsAsync();
|
22
22
|
} else if (type === 'contacts') {
|
23
23
|
query = Contacts.requestPermissionsAsync();
|
24
24
|
} else if (type === 'calendar') {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Location","Contacts","Calendar","Camera","Platform","rejectionMsgMap","Map","set","requestPermissions","type","query","requestForegroundPermissionsAsync","Promise","all","requestCameraPermissionsAsync","requestMicrophonePermissionsAsync","requestPermissionsAsync","OS","requestCalendarPermissionsAsync","requestRemindersPermissionsAsync","reject","then","response","Array","isArray","isRejected","find","o","status","get","resolve","error","console","log"],"sources":["permissions.ts"],"sourcesContent":["import * as Location from 'expo-location';\nimport * as Contacts from 'expo-contacts';\nimport * as Calendar from 'expo-calendar';\nimport * as Camera from 'expo-camera';\nimport { Platform } from 'react-native';\n\nconst rejectionMsgMap = new Map<string, string>();\n\nrejectionMsgMap.set('camera', 'camera permission is required to capture image');\nrejectionMsgMap.set('video', 'camera and audio permissions are required to capture video');\nrejectionMsgMap.set('location', 'enable geolocation permission to access the location');\nrejectionMsgMap.set('contacts', 'enable contacts permission to access the contacts');\nrejectionMsgMap.set('calendar', 'enable calendar permission to access the calendar events');\n\ninterface objectMap {\n [key: string]: Array<string>\n}\n\nexport default {\n requestPermissions: (type: string) => {\n let query;\n if (type === 'location') {\n // requestPermissionsAsync is deprecated and requestForegroundPermissionsAsync is available only in sdk 41+\n query = Location.requestForegroundPermissionsAsync();\n } else if (type === 'video') {\n query = Promise.all([Camera.requestCameraPermissionsAsync(), Camera.requestMicrophonePermissionsAsync()]);\n } else if (type === 'image' || type === 'camera') {\n query = Camera.requestCameraPermissionsAsync();\n } else if (type === 'contacts') {\n query = Contacts.requestPermissionsAsync();\n } else if (type === 'calendar') {\n if (Platform.OS === 'ios') {\n query = Promise.all([Calendar.requestCalendarPermissionsAsync(), Calendar.requestRemindersPermissionsAsync()]);\n } else {\n query = Calendar.requestCalendarPermissionsAsync();\n }\n }\n if (!query) {\n return Promise.reject('no supported permission type.');\n }\n return query.then((response: any) => {\n if (Array.isArray(response)) {\n const isRejected = response.find(o => o.status !== 'granted');\n if (isRejected) {\n return Promise.reject(rejectionMsgMap.get(type));\n }\n } else if (response && response.status !== 'granted') {\n return Promise.reject(rejectionMsgMap.get(type));\n }\n return Promise.resolve();\n }, (error: any) => {\n console.log('permission is not enabled ', error);\n return Promise.reject();\n });\n }\n}
|
1
|
+
{"version":3,"names":["Location","Contacts","Calendar","Camera","Platform","rejectionMsgMap","Map","set","requestPermissions","type","query","requestForegroundPermissionsAsync","Promise","all","requestCameraPermissionsAsync","requestMicrophonePermissionsAsync","requestPermissionsAsync","OS","requestCalendarPermissionsAsync","requestRemindersPermissionsAsync","reject","then","response","Array","isArray","isRejected","find","o","status","get","resolve","error","console","log"],"sources":["permissions.ts"],"sourcesContent":["import * as Location from 'expo-location';\nimport * as Contacts from 'expo-contacts';\nimport * as Calendar from 'expo-calendar';\nimport * as Camera from 'expo-camera';\nimport { Platform } from 'react-native';\n\nconst rejectionMsgMap = new Map<string, string>();\n\nrejectionMsgMap.set('camera', 'camera permission is required to capture image');\nrejectionMsgMap.set('video', 'camera and audio permissions are required to capture video');\nrejectionMsgMap.set('location', 'enable geolocation permission to access the location');\nrejectionMsgMap.set('contacts', 'enable contacts permission to access the contacts');\nrejectionMsgMap.set('calendar', 'enable calendar permission to access the calendar events');\n\ninterface objectMap {\n [key: string]: Array<string>\n}\n\nexport default {\n requestPermissions: (type: string) => {\n let query;\n if (type === 'location') {\n // requestPermissionsAsync is deprecated and requestForegroundPermissionsAsync is available only in sdk 41+\n query = Location.requestForegroundPermissionsAsync();\n } else if (type === 'video') {\n query = Promise.all([Camera.Camera.requestCameraPermissionsAsync(), Camera.Camera.requestMicrophonePermissionsAsync()]);\n } else if (type === 'image' || type === 'camera') {\n query = Camera.Camera.requestCameraPermissionsAsync();\n } else if (type === 'contacts') {\n query = Contacts.requestPermissionsAsync();\n } else if (type === 'calendar') {\n if (Platform.OS === 'ios') {\n query = Promise.all([Calendar.requestCalendarPermissionsAsync(), Calendar.requestRemindersPermissionsAsync()]);\n } else {\n query = Calendar.requestCalendarPermissionsAsync();\n }\n }\n if (!query) {\n return Promise.reject('no supported permission type.');\n }\n return (query as any).then((response: any) => {\n if (Array.isArray(response)) {\n const isRejected = response.find(o => o.status !== 'granted');\n if (isRejected) {\n return Promise.reject(rejectionMsgMap.get(type));\n }\n } else if (response && response.status !== 'granted') {\n return Promise.reject(rejectionMsgMap.get(type));\n }\n return Promise.resolve();\n }, (error: any) => {\n console.log('permission is not enabled ', error);\n return Promise.reject();\n });\n }\n}"],"mappings":"AAAA,OAAO,KAAKA,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAKC,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAKC,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAKC,MAAM,MAAM,aAAa;AACrC,SAASC,QAAQ,QAAQ,cAAc;AAEvC,MAAMC,eAAe,GAAG,IAAIC,GAAG,CAAiB,CAAC;AAEjDD,eAAe,CAACE,GAAG,CAAC,QAAQ,EAAE,gDAAgD,CAAC;AAC/EF,eAAe,CAACE,GAAG,CAAC,OAAO,EAAE,4DAA4D,CAAC;AAC1FF,eAAe,CAACE,GAAG,CAAC,UAAU,EAAE,sDAAsD,CAAC;AACvFF,eAAe,CAACE,GAAG,CAAC,UAAU,EAAE,mDAAmD,CAAC;AACpFF,eAAe,CAACE,GAAG,CAAC,UAAU,EAAE,0DAA0D,CAAC;AAM3F,eAAe;EACbC,kBAAkB,EAAGC,IAAY,IAAK;IACpC,IAAIC,KAAK;IACT,IAAID,IAAI,KAAK,UAAU,EAAE;MACvB;MACAC,KAAK,GAAGV,QAAQ,CAACW,iCAAiC,CAAC,CAAC;IACtD,CAAC,MAAM,IAAIF,IAAI,KAAK,OAAO,EAAE;MAC3BC,KAAK,GAAGE,OAAO,CAACC,GAAG,CAAC,CAACV,MAAM,CAACA,MAAM,CAACW,6BAA6B,CAAC,CAAC,EAAEX,MAAM,CAACA,MAAM,CAACY,iCAAiC,CAAC,CAAC,CAAC,CAAC;IACzH,CAAC,MAAM,IAAIN,IAAI,KAAK,OAAO,IAAIA,IAAI,KAAK,QAAQ,EAAE;MAChDC,KAAK,GAAGP,MAAM,CAACA,MAAM,CAACW,6BAA6B,CAAC,CAAC;IACvD,CAAC,MAAM,IAAIL,IAAI,KAAK,UAAU,EAAE;MAC9BC,KAAK,GAAGT,QAAQ,CAACe,uBAAuB,CAAC,CAAC;IAC5C,CAAC,MAAM,IAAIP,IAAI,KAAK,UAAU,EAAE;MAC9B,IAAIL,QAAQ,CAACa,EAAE,KAAK,KAAK,EAAE;QACzBP,KAAK,GAAGE,OAAO,CAACC,GAAG,CAAC,CAACX,QAAQ,CAACgB,+BAA+B,CAAC,CAAC,EAAEhB,QAAQ,CAACiB,gCAAgC,CAAC,CAAC,CAAC,CAAC;MAChH,CAAC,MAAM;QACLT,KAAK,GAAGR,QAAQ,CAACgB,+BAA+B,CAAC,CAAC;MACpD;IACF;IACA,IAAI,CAACR,KAAK,EAAE;MACV,OAAOE,OAAO,CAACQ,MAAM,CAAC,+BAA+B,CAAC;IACxD;IACA,OAAQV,KAAK,CAASW,IAAI,CAAEC,QAAa,IAAK;MAC5C,IAAIC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE;QAC3B,MAAMG,UAAU,GAAGH,QAAQ,CAACI,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,MAAM,KAAK,SAAS,CAAC;QAC7D,IAAIH,UAAU,EAAE;UACd,OAAOb,OAAO,CAACQ,MAAM,CAACf,eAAe,CAACwB,GAAG,CAACpB,IAAI,CAAC,CAAC;QAClD;MACF,CAAC,MAAM,IAAIa,QAAQ,IAAIA,QAAQ,CAACM,MAAM,KAAK,SAAS,EAAE;QACpD,OAAOhB,OAAO,CAACQ,MAAM,CAACf,eAAe,CAACwB,GAAG,CAACpB,IAAI,CAAC,CAAC;MAClD;MACA,OAAOG,OAAO,CAACkB,OAAO,CAAC,CAAC;IAC1B,CAAC,EAAGC,KAAU,IAAK;MACjBC,OAAO,CAACC,GAAG,CAAC,4BAA4B,EAAEF,KAAK,CAAC;MAChD,OAAOnB,OAAO,CAACQ,MAAM,CAAC,CAAC;IACzB,CAAC,CAAC;EACJ;AACF,CAAC","ignoreList":[]}
|
@@ -1,7 +1,6 @@
|
|
1
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
2
|
-
import {
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
2
|
+
import { CameraView } from 'expo-camera';
|
3
3
|
import { Ionicons } from '@expo/vector-icons';
|
4
|
-
import { BarCodeScanner } from 'expo-barcode-scanner';
|
5
4
|
import { Platform, StyleSheet, TouchableOpacity, View } from 'react-native';
|
6
5
|
import React from 'react';
|
7
6
|
import permissionManager from '@wavemaker/app-rn-runtime/runtime/services/device/permissions';
|
@@ -59,6 +58,33 @@ const styles = StyleSheet.create({
|
|
59
58
|
backgroundColor: opacity
|
60
59
|
}
|
61
60
|
});
|
61
|
+
const BarCodeType = [{
|
62
|
+
0: 'aztec'
|
63
|
+
}, {
|
64
|
+
1: 'ean13'
|
65
|
+
}, {
|
66
|
+
2: 'ean8'
|
67
|
+
}, {
|
68
|
+
3: 'qr'
|
69
|
+
}, {
|
70
|
+
4: 'pdf417'
|
71
|
+
}, {
|
72
|
+
5: 'upc_e'
|
73
|
+
}, {
|
74
|
+
6: 'datamatrix'
|
75
|
+
}, {
|
76
|
+
7: 'code39'
|
77
|
+
}, {
|
78
|
+
8: 'code93'
|
79
|
+
}, {
|
80
|
+
9: 'itf14'
|
81
|
+
}, {
|
82
|
+
10: 'codabar'
|
83
|
+
}, {
|
84
|
+
11: 'code128'
|
85
|
+
}, {
|
86
|
+
12: 'upc_a'
|
87
|
+
}];
|
62
88
|
export class ScanService {
|
63
89
|
constructor(displayManager) {
|
64
90
|
this.displayManager = displayManager;
|
@@ -82,11 +108,11 @@ export class ScanService {
|
|
82
108
|
return new Promise((resolve, reject) => {
|
83
109
|
permissionManager.requestPermissions('camera').then(() => {
|
84
110
|
const destroy = this.displayManager.show({
|
85
|
-
content: /*#__PURE__*/React.createElement(
|
86
|
-
|
87
|
-
|
111
|
+
content: /*#__PURE__*/React.createElement(CameraView, {
|
112
|
+
barcodeScannerSettings: barcodeFormat ? {
|
113
|
+
barcodeTypes: [BarCodeType[barcodeFormat]]
|
88
114
|
} : undefined,
|
89
|
-
|
115
|
+
onBarcodeScanned: result => {
|
90
116
|
destroy.call(this.displayManager);
|
91
117
|
resolve(result);
|
92
118
|
},
|
@@ -119,9 +145,9 @@ export class ScanService {
|
|
119
145
|
}).then(response => {
|
120
146
|
let format;
|
121
147
|
if (response.type) {
|
122
|
-
const values = Object.values(
|
148
|
+
const values = Object.values(BarCodeType);
|
123
149
|
const index = values.indexOf(response.type);
|
124
|
-
format = index > -1 ? Object.keys(
|
150
|
+
format = index > -1 ? Object.keys(BarCodeType)[index] : '';
|
125
151
|
}
|
126
152
|
return Promise.resolve({
|
127
153
|
text: response.data,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["
|
1
|
+
{"version":3,"names":["CameraView","Ionicons","Platform","StyleSheet","TouchableOpacity","View","React","permissionManager","appDisplayManagerService","barcodeFormatOptions","opacity","styles","create","container","flex","flexDirection","closeWrapper","justifyContent","alignItems","paddingBottom","topWrapper","backgroundColor","centerWrapper","leftWrapper","focused","rightWrapper","bottomWrapper","BarCodeType","ScanService","constructor","displayManager","getTestProps","suffix","id","OS","accessibilityLabel","testID","accessible","scanBarcode","params","format","barcodeFormat","undefined","Promise","resolve","reject","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 { CameraView } from 'expo-camera';\nimport { Ionicons } from '@expo/vector-icons';\nimport * as Application from 'expo-application';\nimport { Platform, StyleSheet, TouchableOpacity, View } from 'react-native';\nimport React from 'react';\nimport { ScanInput, ScanOutput } from '@wavemaker/app-rn-runtime/variables/device/scan/scan.operation';\nimport { DisplayManager } from '@wavemaker/app-rn-runtime/core/display.manager';\nimport permissionManager from '@wavemaker/app-rn-runtime/runtime/services/device/permissions';\nimport appDisplayManagerService from '@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service';\n\ninterface objectMap {\n [key: string]: string\n}\n\nconst barcodeFormatOptions: objectMap = {\n 'ALL': 'ALL',\n 'CODABAR': 'codabar',\n 'CODE_39': 'code39',\n 'CODE_93': 'code93',\n 'CODE_128': 'code128',\n 'DATA_MATRIX': 'datamatrix',\n 'EAN_8': 'ean8',\n 'EAN_13': 'ean13',\n 'ITF': 'itf14',\n 'PDF_417': 'pdf417',\n 'QR_CODE': 'qr',\n 'RSS14': 'rss14',\n 'RSS_EXPANDED': 'rssexpanded',\n 'UPC_E': 'upc_e',\n 'UPC_A': 'upc_a'\n};\nconst opacity = 'rgba(0, 0, 0, 0.6)';\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column'\n },\n closeWrapper: {\n flex: 1,\n justifyContent: 'flex-end',\n alignItems: 'center',\n paddingBottom: 32\n },\n topWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n centerWrapper: {\n flex: 2,\n flexDirection: 'row'\n },\n leftWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n focused: {\n flex: 10\n },\n rightWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n bottomWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n});\n\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 return new Promise((resolve, reject) => {\n permissionManager.requestPermissions('camera').then(() => {\n const destroy = this.displayManager.show({\n content: (<CameraView\n barcodeScannerSettings={barcodeFormat ? {\n barcodeTypes: [BarCodeType[barcodeFormat]],\n }: undefined}\n onBarcodeScanned={(result) => {\n destroy.call(this.displayManager);\n resolve(result);\n }}\n style={StyleSheet.absoluteFillObject}\n >\n <View style={styles.topWrapper}>\n </View>\n <View style={styles.centerWrapper}>\n <View style={styles.leftWrapper}/>\n <View style={styles.focused}/>\n <View style={styles.rightWrapper}/>\n </View>\n <View style={styles.bottomWrapper}>\n \n <View style={styles.closeWrapper}>\n <TouchableOpacity\n {... 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,4 +1,4 @@
|
|
1
|
-
function _defineProperty(
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
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 axios from "axios";
|
@@ -1,5 +1,5 @@
|
|
1
1
|
var _Watcher;
|
2
|
-
function _defineProperty(
|
2
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
3
3
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
4
4
|
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); }
|
5
5
|
import { isArray, clone } from 'lodash';
|
@@ -1,4 +1,4 @@
|
|
1
|
-
function _defineProperty(
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
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 * as React from 'react';
|
@@ -237,7 +237,7 @@ export class BackgroundComponent extends React.Component {
|
|
237
237
|
}
|
238
238
|
if ((_source = source) !== null && _source !== void 0 && _source.startsWith('url')) {
|
239
239
|
var _this$props$image2;
|
240
|
-
source = (_this$props$image2 = this.props.image) === null || _this$props$image2 === void 0
|
240
|
+
source = (_this$props$image2 = this.props.image) === null || _this$props$image2 === void 0 || (_this$props$image2 = _this$props$image2.matchAll(IMAGE_URL_REGEX)) === null || _this$props$image2 === void 0 || (_this$props$image2 = _this$props$image2.next()) === null || _this$props$image2 === void 0 || (_this$props$image2 = _this$props$image2.value) === null || _this$props$image2 === void 0 ? void 0 : _this$props$image2[1];
|
241
241
|
}
|
242
242
|
if (this.loadAsset) {
|
243
243
|
source = this.loadAsset(source);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","LinearGradient","ExpoLinearGradient","Image","StyleSheet","View","isEmpty","isNil","isNumber","imageSizeEstimator","AssetConsumer","isFullPathUrl","IMAGE_URL_REGEX","LINEAT_GRADIENT_REGEX","DIMENSION_REGEX","BACKGROUND_POSITION_REGEX","BACKGROUND_SIZE_REGEX","ASSET_CACHE","Component","constructor","props","state","parse","val","value","splits","split","map","v","trim","angle","locations","endsWith","parseInt","shift","delta","Math","round","tan","PI","abs","end","x","y","start","colors","s","_s$matchAll$next","p","matchAll","next","push","replace","componentDidUpdate","prevProps","prevState","snapshot","setState","render","_this$props$size","_this$props$style","createElement","style","borderWidth","overflow","absoluteFill","middle","flexDirection","justifyContent","alignItems","testID","size","width","position","borderRadius","children","BackgroundComponent","_defineProperty","imageSrc","image","undefined","caluculateSize","height","resolveAssetSource","naturalImageWidth","naturalImageHeight","getSize","uri","getDimension","dim","getPosition","result","top","bottom","left","right","getPositionAndSize","_this$props$size2","_this$getGradient","resizeMode","getGradient","length","repeat","renderLinearGradient","data","psresult","Fragment","setImage","componentDidMount","setTimeout","_this$props$image","_source","source","startsWith","_this$props$image2","loadAsset","_this$props$image3","renderImage","_psresult$position","_psresult$position2","loadImage","minWidth","minHeight","_gradientData$value","gradientData"],"sources":["background.component.tsx"],"sourcesContent":["import * as React from 'react';\nimport { LinearGradient as ExpoLinearGradient, LinearGradientPoint } from 'expo-linear-gradient';\nimport { Image, StyleSheet, View, ViewStyle } from 'react-native';\nimport { isEmpty, isNil, isNumber, isString } from 'lodash-es';\nimport imageSizeEstimator from '@wavemaker/app-rn-runtime/core/imageSizeEstimator';\nimport { AssetConsumer } from '@wavemaker/app-rn-runtime/core/asset.provider';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport interface LinearGradientProps {\n value: string;\n children: any;\n style?: ViewStyle;\n size?: ViewStyle;\n position?: ViewStyle;\n middle?: boolean;\n}\n\nexport interface LinearGradientState {\n colors: string[];\n locations: number[];\n start: LinearGradientPoint;\n end: LinearGradientPoint;\n}\n\nconst IMAGE_URL_REGEX = /url\\(['|\"]?(.+)['|\"]?\\)$/gi;\nconst LINEAT_GRADIENT_REGEX = /linear-gradient\\((.+)\\)$/gi;\nconst DIMENSION_REGEX = /([0-9%]+)[a-z]*/g;\nconst BACKGROUND_POSITION_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\nconst BACKGROUND_SIZE_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\n\nconst ASSET_CACHE = {} as any;\n\nexport class LinearGradient extends React.Component<LinearGradientProps, LinearGradientState> {\n\n constructor(props: LinearGradientProps) {\n super(props);\n this.state = this.parse();\n }\n\n parse(val = this.props.value) {\n let state = {} as LinearGradientState;\n const splits = val.split(',').map(v => v.trim());\n let angle = 0;\n const locations: LinearGradientPoint[] = [];\n if (splits[0].endsWith('deg')) {\n angle = (parseInt(splits[0].split('deg')[0]))%360;\n angle = angle < 0 ? (360 + angle) : angle;\n splits.shift();\n }\n angle += 90;\n const delta = Math.round(Math.tan((angle * Math.PI) / 180) * 100)/100;\n if (Math.abs(delta) > 1) {\n state = {\n end: {\n x: -0.5 / delta + 0.5,\n y: 0\n },\n start: {\n x: 0.5 / delta + 0.5,\n y: 1\n }\n } as LinearGradientState;\n } else {\n state = {\n start: {\n x: 0,\n y: -0.5 * delta + 0.5\n },\n end: {\n x: 1,\n y: 0.5 * delta + 0.5\n }\n } as LinearGradientState;\n }\n if (angle >= 270 && angle <= 450) {\n state = {\n start : state.end,\n end: state.start\n } as LinearGradientState;\n }\n state.colors = [];\n state.locations = [];\n splits.map(s => {\n const p = s.matchAll(/\\s*([0-9]+)%/g).next()?.value;\n if (p) {\n state.locations.push(parseInt(p[1]) / 100);\n state.colors.push(s.replace(p[0], ''));\n } else {\n state.locations.push(null as any);\n state.colors.push(s);\n }\n });\n return state;\n }\n\n componentDidUpdate(prevProps: Readonly<LinearGradientProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (prevProps.value !== this.props.value) {\n this.setState(this.parse());\n }\n }\n \n\n public render() {\n return (\n <View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, this.props.middle ? {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center'\n } : null]}>\n <ExpoLinearGradient testID=\"wm-expo-linear-gradient\"\n colors={this.state.colors}\n locations={this.state.locations}\n start={this.state.start}\n end={this.state.end}\n style={[\n this.props.size?.width ? this.props.size : StyleSheet.absoluteFill,\n this.props.position,\n {position: 'absolute', borderRadius: this.props.style?.borderRadius}\n ]}\n />\n </View>\n {this.props.children}\n </View>\n );\n }\n}\n\nexport interface BackgroundProps {\n image?: string;\n position?: string;\n children?: any;\n resizeMode?: string;\n repeat?: string;\n style?: ViewStyle;\n size: string;\n}\n\nexport interface BackgroundState {\n imageSrc: any;\n naturalImageWidth: number,\n naturalImageHeight: number\n}\n\nexport class BackgroundComponent extends React.Component<BackgroundProps, BackgroundState> {\n\n private loadAsset: (path: string) => number | string = null as any;\n\n constructor(props: BackgroundProps) {\n super(props);\n this.state = {\n imageSrc : this.props.image ? ASSET_CACHE[this.props.image] : undefined\n } as BackgroundState;\n }\n\n public caluculateSize(imageSrc: any) {\n if (isNumber(imageSrc)) {\n const {width, height} = Image.resolveAssetSource(imageSrc);\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n } else if (!isNil(imageSrc)) {\n imageSizeEstimator.getSize(imageSrc.uri, (width: number, height: number) => {\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n });\n }\n }\n\n getDimension(dim: string) {\n if (dim) {\n const value = dim.matchAll(DIMENSION_REGEX).next().value;\n if (value[1]) {\n return value[1].endsWith('%') ? value[1] : parseInt(value[1]);\n }\n }\n return null;\n }\n\n public getPosition() {\n const result = {} as ViewStyle;\n if (!this.props.position) {\n return result;\n }\n const position = this.props.position.split(' ').map(s => s.trim());\n if (position[0] === 'center') {\n result.alignItems = 'center';\n } else if (position[0] === 'top') {\n result.top = 0;\n } else if (position[0] === 'bottom') {\n result.bottom = 0;\n } else {\n result.top = this.getDimension(position[0]);\n }\n if (position[1] === 'center') {\n result.justifyContent = 'center';\n } else if (position[1] === 'left') {\n result.left = 0;\n } else if (position[1] === 'bottom') {\n result.right = 0;\n } else {\n result.left = this.getDimension(position[1]);\n }\n return result;\n }\n\n public getPositionAndSize() {\n const result: {\n resizeMode? : string,\n position?: ViewStyle,\n size?: ViewStyle\n } = {} as any;\n if (this.props.resizeMode) {\n result.resizeMode = this.props.resizeMode;\n return result;\n } else if (this.props.position === 'center') {\n result.resizeMode = 'center';\n result.position = {\n justifyContent: 'center',\n alignItems: 'center'\n };\n } else if (this.props.size === 'contain' || this.props.size === 'cover') {\n result.resizeMode = this.props.size;\n return result;\n }\n const size = this.props.size?.matchAll(BACKGROUND_SIZE_REGEX).next().value;\n result.size = {};\n if (size) {\n result.size.width = size[1].endsWith('%') ? size[1] : parseInt(size[1]);\n result.size.height = size[2].endsWith('%') ? size[2] : parseInt(size[2]);\n }\n if (!result.resizeMode && this.props.position) {\n result.position = this.getPosition();\n }\n if (!this.getGradient()?.value?.length) {\n if (this.props.repeat === 'no-repeat') {\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-x') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || '100%'; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-y') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || '100%'; \n } else {\n result.resizeMode = 'repeat';\n }\n }\n return result;\n }\n\n public renderLinearGradient(data: string) {\n const psresult = this.getPositionAndSize();\n return (\n <LinearGradient\n value={data || ''}\n style={this.props.style}\n size={psresult.size}\n position={psresult.position}\n middle={psresult.resizeMode === 'center'}> \n <></> \n </LinearGradient>\n );\n }\n\n componentDidUpdate(prevProps: Readonly<BackgroundProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (this.props.image && prevProps.image !== this.props.image) {\n this.setImage();\n }\n }\n\n componentDidMount(): void {\n setTimeout(() => this.setImage(), 100);\n }\n\n setImage() {\n let source = this.props.image?.trim() as any;\n if (!source) {\n return;\n }\n if (source?.startsWith('url')) {\n source = this.props.image?.matchAll(IMAGE_URL_REGEX).next().value[1];\n }\n if (this.loadAsset) {\n source = this.loadAsset(source);\n }\n if (isFullPathUrl(source)) {\n source = {\n uri: source\n };\n }\n this.caluculateSize(source);\n this.setState({\n imageSrc: source\n } as BackgroundState);\n if (this.props.image) {\n ASSET_CACHE[this.props.image] = source;\n }\n }\n\n public getGradient() {\n return this.props.image?.trim().matchAll(LINEAT_GRADIENT_REGEX).next();\n }\n\n public renderImage() {\n const psresult = this.getPositionAndSize();\n return (\n <AssetConsumer>\n {(loadAsset) => {\n const loadImage = this.loadAsset !== loadAsset;\n this.loadAsset = loadAsset;\n if (loadImage) {\n setTimeout(() => this.setImage(), 10);\n }\n return (<View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, {\n flexDirection: 'row',\n justifyContent: psresult.position?.justifyContent,\n alignItems: psresult.position?.alignItems\n }]}>\n <View style={[\n { position: 'absolute', overflow: 'hidden' },\n psresult.position,\n isEmpty(psresult.size) ? StyleSheet.absoluteFill : psresult.size\n ]}>\n <Image\n source={this.state.imageSrc}\n resizeMode={psresult.resizeMode as any || 'cover'}\n style={[\n { \n width: '100%',\n height: '100%'\n }, \n !isEmpty(psresult.size)\n || (psresult.resizeMode === 'cover'\n || psresult.resizeMode === 'contain') ? null : {\n minWidth: this.state.naturalImageWidth,\n minHeight: this.state.naturalImageHeight\n }\n ]}/> \n </View>\n </View>\n </View>);\n }}\n </AssetConsumer>\n );\n }\n\n public render() {\n const gradientData = this.getGradient();\n if (gradientData?.value?.length) {\n return this.renderLinearGradient(gradientData.value[1]);\n } else if (this.props.image && this.state.imageSrc) {\n return this.renderImage();\n }\n return null;\n }\n}\n\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["React","LinearGradient","ExpoLinearGradient","Image","StyleSheet","View","isEmpty","isNil","isNumber","imageSizeEstimator","AssetConsumer","isFullPathUrl","IMAGE_URL_REGEX","LINEAT_GRADIENT_REGEX","DIMENSION_REGEX","BACKGROUND_POSITION_REGEX","BACKGROUND_SIZE_REGEX","ASSET_CACHE","Component","constructor","props","state","parse","val","value","splits","split","map","v","trim","angle","locations","endsWith","parseInt","shift","delta","Math","round","tan","PI","abs","end","x","y","start","colors","s","_s$matchAll$next","p","matchAll","next","push","replace","componentDidUpdate","prevProps","prevState","snapshot","setState","render","_this$props$size","_this$props$style","createElement","style","borderWidth","overflow","absoluteFill","middle","flexDirection","justifyContent","alignItems","testID","size","width","position","borderRadius","children","BackgroundComponent","_defineProperty","imageSrc","image","undefined","caluculateSize","height","resolveAssetSource","naturalImageWidth","naturalImageHeight","getSize","uri","getDimension","dim","getPosition","result","top","bottom","left","right","getPositionAndSize","_this$props$size2","_this$getGradient","resizeMode","getGradient","length","repeat","renderLinearGradient","data","psresult","Fragment","setImage","componentDidMount","setTimeout","_this$props$image","_source","source","startsWith","_this$props$image2","loadAsset","_this$props$image3","renderImage","_psresult$position","_psresult$position2","loadImage","minWidth","minHeight","_gradientData$value","gradientData"],"sources":["background.component.tsx"],"sourcesContent":["import * as React from 'react';\nimport { LinearGradient as ExpoLinearGradient, LinearGradientPoint } from 'expo-linear-gradient';\nimport { DimensionValue, Image, StyleSheet, View, ViewStyle } from 'react-native';\nimport { isEmpty, isNil, isNumber, isString } from 'lodash-es';\nimport imageSizeEstimator from '@wavemaker/app-rn-runtime/core/imageSizeEstimator';\nimport { AssetConsumer } from '@wavemaker/app-rn-runtime/core/asset.provider';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport interface LinearGradientProps {\n value: string;\n children: any;\n style?: ViewStyle;\n size?: ViewStyle;\n position?: ViewStyle;\n middle?: boolean;\n}\n\nexport interface LinearGradientState {\n colors: string[];\n locations: number[];\n start: LinearGradientPoint;\n end: LinearGradientPoint;\n}\n\nconst IMAGE_URL_REGEX = /url\\(['|\"]?(.+)['|\"]?\\)$/gi;\nconst LINEAT_GRADIENT_REGEX = /linear-gradient\\((.+)\\)$/gi;\nconst DIMENSION_REGEX = /([0-9%]+)[a-z]*/g;\nconst BACKGROUND_POSITION_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\nconst BACKGROUND_SIZE_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\n\nconst ASSET_CACHE = {} as any;\n\nexport class LinearGradient extends React.Component<LinearGradientProps, LinearGradientState> {\n\n constructor(props: LinearGradientProps) {\n super(props);\n this.state = this.parse();\n }\n\n parse(val = this.props.value) {\n let state = {} as LinearGradientState;\n const splits = val.split(',').map(v => v.trim());\n let angle = 0;\n const locations: LinearGradientPoint[] = [];\n if (splits[0].endsWith('deg')) {\n angle = (parseInt(splits[0].split('deg')[0]))%360;\n angle = angle < 0 ? (360 + angle) : angle;\n splits.shift();\n }\n angle += 90;\n const delta = Math.round(Math.tan((angle * Math.PI) / 180) * 100)/100;\n if (Math.abs(delta) > 1) {\n state = {\n end: {\n x: -0.5 / delta + 0.5,\n y: 0\n },\n start: {\n x: 0.5 / delta + 0.5,\n y: 1\n }\n } as LinearGradientState;\n } else {\n state = {\n start: {\n x: 0,\n y: -0.5 * delta + 0.5\n },\n end: {\n x: 1,\n y: 0.5 * delta + 0.5\n }\n } as LinearGradientState;\n }\n if (angle >= 270 && angle <= 450) {\n state = {\n start : state.end,\n end: state.start\n } as LinearGradientState;\n }\n state.colors = [];\n state.locations = [];\n splits.map(s => {\n const p = s.matchAll(/\\s*([0-9]+)%/g).next()?.value;\n if (p) {\n state.locations.push(parseInt(p[1]) / 100);\n state.colors.push(s.replace(p[0], ''));\n } else {\n state.locations.push(null as any);\n state.colors.push(s);\n }\n });\n return state;\n }\n\n componentDidUpdate(prevProps: Readonly<LinearGradientProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (prevProps.value !== this.props.value) {\n this.setState(this.parse());\n }\n }\n \n\n public render() {\n return (\n <View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, this.props.middle ? {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center'\n } : null]}>\n <ExpoLinearGradient testID=\"wm-expo-linear-gradient\"\n colors={this.state.colors as any}\n locations={this.state.locations as any}\n start={this.state.start}\n end={this.state.end}\n style={[\n this.props.size?.width ? this.props.size : StyleSheet.absoluteFill,\n this.props.position,\n {position: 'absolute', borderRadius: this.props.style?.borderRadius}\n ]}\n />\n </View>\n {this.props.children}\n </View>\n );\n }\n}\n\nexport interface BackgroundProps {\n image?: string;\n position?: string;\n children?: any;\n resizeMode?: string;\n repeat?: string;\n style?: ViewStyle;\n size: string;\n}\n\nexport interface BackgroundState {\n imageSrc: any;\n naturalImageWidth: number,\n naturalImageHeight: number\n}\n\nexport class BackgroundComponent extends React.Component<BackgroundProps, BackgroundState> {\n\n private loadAsset: (path: string) => number | string = null as any;\n\n constructor(props: BackgroundProps) {\n super(props);\n this.state = {\n imageSrc : this.props.image ? ASSET_CACHE[this.props.image] : undefined\n } as BackgroundState;\n }\n\n public caluculateSize(imageSrc: any) {\n if (isNumber(imageSrc)) {\n const {width, height} = Image.resolveAssetSource(imageSrc);\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n } else if (!isNil(imageSrc)) {\n imageSizeEstimator.getSize(imageSrc.uri, (width: number, height: number) => {\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n });\n }\n }\n\n getDimension(dim: string) {\n if (dim) {\n const value = dim.matchAll(DIMENSION_REGEX).next().value!;\n if (value[1]) {\n return value[1].endsWith('%') ? value[1] : parseInt(value[1]);\n }\n }\n return null;\n }\n\n public getPosition() {\n const result = {} as ViewStyle;\n if (!this.props.position) {\n return result;\n }\n const position = this.props.position.split(' ').map(s => s.trim());\n if (position[0] === 'center') {\n result.alignItems = 'center';\n } else if (position[0] === 'top') {\n result.top = 0;\n } else if (position[0] === 'bottom') {\n result.bottom = 0;\n } else {\n result.top = this.getDimension(position[0]) as DimensionValue;\n }\n if (position[1] === 'center') {\n result.justifyContent = 'center';\n } else if (position[1] === 'left') {\n result.left = 0;\n } else if (position[1] === 'bottom') {\n result.right = 0;\n } else {\n result.left = this.getDimension(position[1]) as DimensionValue;\n }\n return result;\n }\n\n public getPositionAndSize() {\n const result: {\n resizeMode? : string,\n position?: ViewStyle,\n size?: ViewStyle\n } = {} as any;\n if (this.props.resizeMode) {\n result.resizeMode = this.props.resizeMode;\n return result;\n } else if (this.props.position === 'center') {\n result.resizeMode = 'center';\n result.position = {\n justifyContent: 'center',\n alignItems: 'center'\n };\n } else if (this.props.size === 'contain' || this.props.size === 'cover') {\n result.resizeMode = this.props.size;\n return result;\n }\n const size = this.props.size?.matchAll(BACKGROUND_SIZE_REGEX).next().value;\n result.size = {};\n if (size) {\n result.size.width = (size[1].endsWith('%') ? size[1] : parseInt(size[1])) as DimensionValue;\n result.size.height = (size[2].endsWith('%') ? size[2] : parseInt(size[2])) as DimensionValue\n }\n if (!result.resizeMode && this.props.position) {\n result.position = this.getPosition();\n }\n if (!this.getGradient()?.value?.length) {\n if (this.props.repeat === 'no-repeat') {\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-x') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || '100%'; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-y') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || '100%'; \n } else {\n result.resizeMode = 'repeat';\n }\n }\n return result;\n }\n\n public renderLinearGradient(data: string) {\n const psresult = this.getPositionAndSize();\n return (\n <LinearGradient\n value={data || ''}\n style={this.props.style}\n size={psresult.size}\n position={psresult.position}\n middle={psresult.resizeMode === 'center'}> \n <></> \n </LinearGradient>\n );\n }\n\n componentDidUpdate(prevProps: Readonly<BackgroundProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (this.props.image && prevProps.image !== this.props.image) {\n this.setImage();\n }\n }\n\n componentDidMount(): void {\n setTimeout(() => this.setImage(), 100);\n }\n\n setImage() {\n let source = this.props.image?.trim() as any;\n if (!source) {\n return;\n }\n if (source?.startsWith('url')) {\n source = this.props.image?.matchAll(IMAGE_URL_REGEX)?.next()?.value?.[1];\n }\n if (this.loadAsset) {\n source = this.loadAsset(source);\n }\n if (isFullPathUrl(source)) {\n source = {\n uri: source\n };\n }\n this.caluculateSize(source);\n this.setState({\n imageSrc: source\n } as BackgroundState);\n if (this.props.image) {\n ASSET_CACHE[this.props.image] = source;\n }\n }\n\n public getGradient() {\n return this.props.image?.trim().matchAll(LINEAT_GRADIENT_REGEX).next();\n }\n\n public renderImage() {\n const psresult = this.getPositionAndSize();\n return (\n <AssetConsumer>\n {(loadAsset) => {\n const loadImage = this.loadAsset !== loadAsset;\n this.loadAsset = loadAsset;\n if (loadImage) {\n setTimeout(() => this.setImage(), 10);\n }\n return (<View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, {\n flexDirection: 'row',\n justifyContent: psresult.position?.justifyContent,\n alignItems: psresult.position?.alignItems\n }]}>\n <View style={[\n { position: 'absolute', overflow: 'hidden' },\n psresult.position,\n isEmpty(psresult.size) ? StyleSheet.absoluteFill : psresult.size\n ]}>\n <Image\n source={this.state.imageSrc}\n resizeMode={psresult.resizeMode as any || 'cover'}\n style={[\n { \n width: '100%',\n height: '100%'\n }, \n !isEmpty(psresult.size)\n || (psresult.resizeMode === 'cover'\n || psresult.resizeMode === 'contain') ? null : {\n minWidth: this.state.naturalImageWidth,\n minHeight: this.state.naturalImageHeight\n }\n ]}/> \n </View>\n </View>\n </View>);\n }}\n </AssetConsumer>\n );\n }\n\n public render() {\n const gradientData = this.getGradient();\n if (gradientData?.value?.length) {\n return this.renderLinearGradient(gradientData.value[1]);\n } else if (this.props.image && this.state.imageSrc) {\n return this.renderImage();\n }\n return null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
function _defineProperty(
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
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
|
export class StyleProps {
|
app-rn-runtime/styles/theme.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
var _Theme;
|
2
|
-
function _defineProperty(
|
2
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
3
3
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
4
4
|
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); }
|
5
5
|
import { cloneDeep, isNil, forEach, flatten, isArray, isEmpty, isObject, isString, get, reverse } from 'lodash';
|
@@ -12,6 +12,7 @@ import ViewPort, { EVENTS as ViewPortEvents } from '@wavemaker/app-rn-runtime/co
|
|
12
12
|
import MediaQueryList from './MediaQueryList';
|
13
13
|
import ThemeVariables from './theme.variables';
|
14
14
|
import { getErrorMessage, getStyleReference, isValidStyleProp } from './style-prop.validator';
|
15
|
+
import injector from '@wavemaker/app-rn-runtime/core/injector';
|
15
16
|
export const DEFAULT_CLASS = 'DEFAULT_CLASS';
|
16
17
|
if (typeof window !== "undefined") {
|
17
18
|
// @ts-ignore: does not properly extend MediaQueryList
|
@@ -34,6 +35,7 @@ export let ThemeEvent = /*#__PURE__*/function (ThemeEvent) {
|
|
34
35
|
;
|
35
36
|
export class Theme {
|
36
37
|
constructor(parent, name) {
|
38
|
+
var _this$getAppConfig;
|
37
39
|
this.parent = parent;
|
38
40
|
this.name = name;
|
39
41
|
_defineProperty(this, "eventNotifer", new EventNotifier());
|
@@ -41,13 +43,18 @@ export class Theme {
|
|
41
43
|
_defineProperty(this, "styles", {});
|
42
44
|
_defineProperty(this, "cache", {});
|
43
45
|
_defineProperty(this, "traceEnabled", false);
|
46
|
+
_defineProperty(this, "revertLayoutFixes", void 0);
|
44
47
|
_defineProperty(this, "styleGenerators", []);
|
48
|
+
this.revertLayoutFixes = ((_this$getAppConfig = this.getAppConfig()) === null || _this$getAppConfig === void 0 ? void 0 : _this$getAppConfig.revertLayoutFixes) || false;
|
45
49
|
if (parent) {
|
46
50
|
this.traceEnabled = parent.traceEnabled;
|
47
51
|
} else {
|
48
52
|
this.traceEnabled = isWebPreviewMode();
|
49
53
|
}
|
50
54
|
}
|
55
|
+
getAppConfig() {
|
56
|
+
return injector.get('APP_CONFIG');
|
57
|
+
}
|
51
58
|
enableTrace(flag) {
|
52
59
|
this.traceEnabled = flag;
|
53
60
|
this.reset();
|
@@ -170,6 +177,38 @@ export class Theme {
|
|
170
177
|
style['paddingBottom'] = style['paddingBottom'] || style['padding'];
|
171
178
|
delete style['padding'];
|
172
179
|
}
|
180
|
+
if (this.revertLayoutFixes && !isNil(style['flexDirection']) && style['flexDirection'] === 'row-reverse') {
|
181
|
+
if (!isNil(style['paddingLeft']) || !isNil(style['paddingRight'])) {
|
182
|
+
if (!isNil(style['paddingLeft']) && !isNil(style['paddingRight'])) {
|
183
|
+
[style['paddingLeft'], style['paddingRight']] = [style['paddingRight'], style['paddingLeft']];
|
184
|
+
} else {
|
185
|
+
const [paddingLeft, paddingRight] = [style['paddingLeft'], style['paddingRight']];
|
186
|
+
if (paddingLeft !== undefined) {
|
187
|
+
style['paddingRight'] = paddingLeft;
|
188
|
+
delete style['paddingLeft'];
|
189
|
+
}
|
190
|
+
if (paddingRight !== undefined) {
|
191
|
+
style['paddingLeft'] = paddingRight;
|
192
|
+
delete style['paddingRight'];
|
193
|
+
}
|
194
|
+
}
|
195
|
+
}
|
196
|
+
if (!isNil(style['marginLeft']) || !isNil(style['marginRight'])) {
|
197
|
+
if (!isNil(style['marginLeft']) && !isNil(style['marginRight'])) {
|
198
|
+
[style['marginLeft'], style['marginRight']] = [style['marginRight'], style['marginLeft']];
|
199
|
+
} else {
|
200
|
+
const [marginLeft, marginRight] = [style['marginLeft'], style['marginRight']];
|
201
|
+
if (marginLeft !== undefined) {
|
202
|
+
style['marginRight'] = marginLeft;
|
203
|
+
delete style['marginLeft'];
|
204
|
+
}
|
205
|
+
if (marginRight !== undefined) {
|
206
|
+
style['marginLeft'] = marginRight;
|
207
|
+
delete style['marginRight'];
|
208
|
+
}
|
209
|
+
}
|
210
|
+
}
|
211
|
+
}
|
173
212
|
let screenWidth = Dimensions.get('window').width;
|
174
213
|
let screenHeight = Dimensions.get('window').height;
|
175
214
|
Object.keys(style).forEach((k, i) => {
|
@@ -347,7 +386,8 @@ Theme.BASE.registerStyle((themeVariables, addStyle) => {
|
|
347
386
|
height: 0,
|
348
387
|
transform: [{
|
349
388
|
scale: 0
|
350
|
-
}]
|
389
|
+
}],
|
390
|
+
overflow: 'hidden'
|
351
391
|
}
|
352
392
|
});
|
353
393
|
addStyle('bg-danger', '', {
|