@wavemaker/app-rn-runtime 11.12.0-rc.219 → 11.12.0-rc.6240

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/components/basic/audio/audio.component.js +47 -52
  2. package/components/basic/audio/audio.component.js.map +1 -1
  3. package/components/basic/video/video.component.js +64 -89
  4. package/components/basic/video/video.component.js.map +1 -1
  5. package/components/device/barcodescanner/barcodescanner.component.js +18 -26
  6. package/components/device/barcodescanner/barcodescanner.component.js.map +1 -1
  7. package/components/device/camera/camera.component.js +19 -28
  8. package/components/device/camera/camera.component.js.map +1 -1
  9. package/components/input/fileupload/fileupload.component.js +13 -17
  10. package/components/input/fileupload/fileupload.component.js.map +1 -1
  11. package/components/page/page-content/page-content.component.js +18 -2
  12. package/components/page/page-content/page-content.component.js.map +1 -1
  13. package/components/page/tabbar/tabbar.component.js +4 -3
  14. package/components/page/tabbar/tabbar.component.js.map +1 -1
  15. package/core/base.component.js +2 -1
  16. package/core/base.component.js.map +1 -1
  17. package/core/device/calendar-service.js +1 -7
  18. package/core/device/calendar-service.js.map +1 -1
  19. package/core/device/camera-service.js +0 -6
  20. package/core/device/camera-service.js.map +1 -1
  21. package/core/device/contacts-service.js +1 -7
  22. package/core/device/contacts-service.js.map +1 -1
  23. package/core/device/location-service.js +1 -7
  24. package/core/device/location-service.js.map +1 -1
  25. package/core/device/scan-service.js +0 -6
  26. package/core/device/scan-service.js.map +1 -1
  27. package/core/utils.js +6 -0
  28. package/core/utils.js.map +1 -1
  29. package/npm-shrinkwrap.json +52 -48
  30. package/package-lock.json +52 -48
  31. package/package.json +2 -2
  32. package/runtime/services/device/calendar-service.js +5 -9
  33. package/runtime/services/device/calendar-service.js.map +1 -1
  34. package/runtime/services/device/camera-service.js +22 -39
  35. package/runtime/services/device/camera-service.js.map +1 -1
  36. package/runtime/services/device/contacts-service.js +5 -6
  37. package/runtime/services/device/contacts-service.js.map +1 -1
  38. package/runtime/services/device/location-service.js +4 -4
  39. package/runtime/services/device/location-service.js.map +1 -1
  40. package/runtime/services/device/permissions.js +39 -34
  41. package/runtime/services/device/permissions.js.map +1 -1
  42. package/runtime/services/device/scan-service.js +3 -4
  43. package/runtime/services/device/scan-service.js.map +1 -1
  44. package/variables/device/calendar/create-event.operation.js +1 -12
  45. package/variables/device/calendar/create-event.operation.js.map +1 -1
  46. package/variables/device/calendar/delete-event.operation.js +1 -12
  47. package/variables/device/calendar/delete-event.operation.js.map +1 -1
  48. package/variables/device/calendar/get-events.operation.js +1 -12
  49. package/variables/device/calendar/get-events.operation.js.map +1 -1
  50. package/variables/device/camera/capture-image.operation.js +1 -8
  51. package/variables/device/camera/capture-image.operation.js.map +1 -1
  52. package/variables/device/camera/capture-video.operation.js +1 -7
  53. package/variables/device/camera/capture-video.operation.js.map +1 -1
  54. package/variables/device/contacts/get-contacts.operation.js +1 -12
  55. package/variables/device/contacts/get-contacts.operation.js.map +1 -1
  56. package/variables/device/device/current-geo-position.operation.js +1 -12
  57. package/variables/device/device/current-geo-position.operation.js.map +1 -1
  58. package/variables/device/file/upload-file.operation.js +3 -17
  59. package/variables/device/file/upload-file.operation.js.map +1 -1
  60. package/variables/device/scan/scan.operation.js +1 -12
  61. package/variables/device/scan/scan.operation.js.map +1 -1
  62. package/core/device/av-service.js +0 -8
  63. package/core/device/av-service.js.map +0 -1
  64. package/core/device/fileupload-service.js +0 -8
  65. package/core/device/fileupload-service.js.map +0 -1
  66. package/runtime/services/device/permission-service.js +0 -5
  67. package/runtime/services/device/permission-service.js.map +0 -1
@@ -5,13 +5,13 @@ import React from 'react';
5
5
  import { Platform, Text, View } from 'react-native';
6
6
  import Slider from '@react-native-community/slider';
7
7
  import { isString } from 'lodash-es';
8
+ import { Audio } from 'expo-av';
8
9
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
9
10
  import WmAudioProps from './audio.props';
10
11
  import { DEFAULT_CLASS } from './audio.styles';
11
12
  import WmIcon from '../icon/icon.component';
12
13
  import { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';
13
14
  import { createSkeleton } from '../skeleton/skeleton.component';
14
- import { AudioConsumer } from '@wavemaker/app-rn-runtime/core/device/av-service';
15
15
  export class WmAudioState extends BaseComponentState {
16
16
  constructor(...args) {
17
17
  super(...args);
@@ -24,11 +24,9 @@ export default class WmAudio extends BaseComponent {
24
24
  constructor(props) {
25
25
  super(props, DEFAULT_CLASS, new WmAudioProps(), new WmAudioState());
26
26
  _defineProperty(this, "loading", false);
27
- // private sound: Sound = null as any;
28
27
  _defineProperty(this, "sound", null);
29
28
  _defineProperty(this, "timer", void 0);
30
29
  _defineProperty(this, "offsetTime", 0);
31
- _defineProperty(this, "audioService", null);
32
30
  }
33
31
  onPropertyChange(name, $new, $old) {
34
32
  super.onPropertyChange(name, $new, $old);
@@ -127,7 +125,7 @@ export default class WmAudio extends BaseComponent {
127
125
  } else {
128
126
  this.loading = true;
129
127
  const source = this.getSource();
130
- source && this.audioService.createAudio(source, {
128
+ source && Audio.Sound.createAsync(source, {
131
129
  isMuted: this.state.props.muted
132
130
  }).then(res => {
133
131
  this.sound = res.sound;
@@ -204,54 +202,51 @@ export default class WmAudio extends BaseComponent {
204
202
  });
205
203
  }
206
204
  renderWidget(props) {
207
- return props.controls ? /*#__PURE__*/React.createElement(AudioConsumer, null, audioService => {
208
- this.audioService = audioService;
209
- return /*#__PURE__*/React.createElement(View, {
210
- style: this.styles.root,
211
- onLayout: event => this.handleLayout(event)
212
- }, this._background, !this.state.playing ? /*#__PURE__*/React.createElement(WmIcon, {
213
- id: this.getTestId('play'),
214
- name: props.name + "_play",
215
- styles: this.styles.playIcon,
216
- iconclass: "wi wi-play-arrow fa-2x",
217
- onTap: () => this.play()
218
- }) : /*#__PURE__*/React.createElement(WmIcon, {
219
- name: props.name + "_pause",
220
- id: this.getTestId('pause'),
221
- iconclass: "wi wi-pause fa-2x",
222
- styles: this.styles.pauseIcon,
223
- onTap: () => this.pause()
224
- }), this._showSkeleton ? this.renderTextSkeleton() : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {
225
- style: this.styles.text
226
- }, `${this.formatTime(this.state.currentTime)} / ${this.formatTime(this.state.totalTime)}`), /*#__PURE__*/React.createElement(Slider, {
227
- testID: this.getTestId('slider'),
228
- step: 1,
229
- style: {
230
- flex: 1
231
- },
232
- value: this.state.currentTime,
233
- disabled: isWebPreviewMode(),
234
- onValueChange: this.onSeekChange.bind(this),
235
- minimumValue: 0,
236
- inverted: this.isRTL && (Platform.OS == "android" || Platform.OS == "web"),
237
- maximumValue: this.state.totalTime || 1,
238
- thumbTintColor: this.styles.slider.thumb.backgroundColor,
239
- minimumTrackTintColor: this.styles.slider.minimumTrack.backgroundColor,
240
- maximumTrackTintColor: this.styles.slider.maximumTrack.backgroundColor
241
- })), !props.muted ? /*#__PURE__*/React.createElement(WmIcon, {
242
- name: props.name + "_mute",
243
- id: this.getTestId('mute'),
244
- iconclass: "wi wi-volume-up fa-2x",
245
- styles: this.styles.muteIcon,
246
- onTap: () => this.mute()
247
- }) : /*#__PURE__*/React.createElement(WmIcon, {
248
- name: props.name + "_unmute",
249
- id: this.getTestId('unmute'),
250
- iconclass: "wi wi-volume-off fa-2x",
251
- styles: this.styles.unmuteIcon,
252
- onTap: () => this.unmute()
253
- }));
254
- }) : null;
205
+ return props.controls ? /*#__PURE__*/React.createElement(View, {
206
+ style: this.styles.root,
207
+ onLayout: event => this.handleLayout(event)
208
+ }, this._background, !this.state.playing ? /*#__PURE__*/React.createElement(WmIcon, {
209
+ id: this.getTestId('play'),
210
+ name: props.name + "_play",
211
+ styles: this.styles.playIcon,
212
+ iconclass: "wi wi-play-arrow fa-2x",
213
+ onTap: () => this.play()
214
+ }) : /*#__PURE__*/React.createElement(WmIcon, {
215
+ name: props.name + "_pause",
216
+ id: this.getTestId('pause'),
217
+ iconclass: "wi wi-pause fa-2x",
218
+ styles: this.styles.pauseIcon,
219
+ onTap: () => this.pause()
220
+ }), this._showSkeleton ? this.renderTextSkeleton() : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Text, {
221
+ style: this.styles.text
222
+ }, `${this.formatTime(this.state.currentTime)} / ${this.formatTime(this.state.totalTime)}`), /*#__PURE__*/React.createElement(Slider, {
223
+ testID: this.getTestId('slider'),
224
+ step: 1,
225
+ style: {
226
+ flex: 1
227
+ },
228
+ value: this.state.currentTime,
229
+ disabled: isWebPreviewMode(),
230
+ onValueChange: this.onSeekChange.bind(this),
231
+ minimumValue: 0,
232
+ inverted: this.isRTL && (Platform.OS == "android" || Platform.OS == "web"),
233
+ maximumValue: this.state.totalTime || 1,
234
+ thumbTintColor: this.styles.slider.thumb.backgroundColor,
235
+ minimumTrackTintColor: this.styles.slider.minimumTrack.backgroundColor,
236
+ maximumTrackTintColor: this.styles.slider.maximumTrack.backgroundColor
237
+ })), !props.muted ? /*#__PURE__*/React.createElement(WmIcon, {
238
+ name: props.name + "_mute",
239
+ id: this.getTestId('mute'),
240
+ iconclass: "wi wi-volume-up fa-2x",
241
+ styles: this.styles.muteIcon,
242
+ onTap: () => this.mute()
243
+ }) : /*#__PURE__*/React.createElement(WmIcon, {
244
+ name: props.name + "_unmute",
245
+ id: this.getTestId('unmute'),
246
+ iconclass: "wi wi-volume-off fa-2x",
247
+ styles: this.styles.unmuteIcon,
248
+ onTap: () => this.unmute()
249
+ })) : null;
255
250
  }
256
251
  }
257
252
  //# sourceMappingURL=audio.component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","Text","View","Slider","isString","BaseComponent","BaseComponentState","WmAudioProps","DEFAULT_CLASS","WmIcon","isWebPreviewMode","createSkeleton","AudioConsumer","WmAudioState","constructor","args","_defineProperty","WmAudio","props","onPropertyChange","name","$new","$old","initialized","Promise","resolve","then","_this$sound","sound","unloadAsync","onSeekChange","state","playing","autoplay","play","getSource","source","loadAsset","mp3format","uri","addPadding","str","maxLen","pad","length","formatTime","v","t","mins","Math","floor","seconds","round","setTimer","cancelTimer","timer","setInterval","currentTime","totalTime","loop","replay","stop","setState","max","offsetTime","clearInterval","_this$sound2","pause","updateState","replayAsync","loading","playAsync","audioService","createAudio","isMuted","muted","res","getStatusAsync","status","catch","_this$sound3","pauseAsync","mute","setStatusAsync","unmute","time","_this$sound4","setPositionAsync","componentDidMount","setTimeout","componentWillUnmount","renderTextSkeleton","theme","styles","text","textSkeleton","root","renderWidget","controls","createElement","style","onLayout","event","handleLayout","_background","id","getTestId","playIcon","iconclass","onTap","pauseIcon","_showSkeleton","Fragment","testID","step","flex","value","disabled","onValueChange","bind","minimumValue","inverted","isRTL","OS","maximumValue","thumbTintColor","slider","thumb","backgroundColor","minimumTrackTintColor","minimumTrack","maximumTrackTintColor","maximumTrack","muteIcon","unmuteIcon"],"sources":["audio.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Platform, Text, View } from 'react-native';\nimport Slider from '@react-native-community/slider';\nimport { isString } from 'lodash-es';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmAudioProps from './audio.props';\nimport { DEFAULT_CLASS, WmAudioStyles } from './audio.styles';\nimport WmIcon from '../icon/icon.component';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { createSkeleton } from '../skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../skeleton/skeleton.styles';\nimport { AudioConsumer, AudioService } from '@wavemaker/app-rn-runtime/core/device/av-service';\n\nexport class WmAudioState extends BaseComponentState<WmAudioProps> {\n playing = false;\n currentTime = 0;\n totalTime = 0;\n}\n\nexport default class WmAudio extends BaseComponent<WmAudioProps, WmAudioState, WmAudioStyles> {\n private loading = false;\n // private sound: Sound = null as any;\n private sound: any = null as any;\n private timer: any;\n private offsetTime = 0;\n private audioService: AudioService = null as any;\n\n constructor(props: WmAudioProps) {\n super(props, DEFAULT_CLASS, new WmAudioProps(), new WmAudioState());\n }\n\n onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case 'mp3format': {\n if (this.initialized) {\n Promise.resolve()\n .then(() => this.sound?.unloadAsync())\n .then(() => {\n this.sound = null as any;\n this.onSeekChange(0);\n if (this.state.playing \n || this.state.props.autoplay) {\n this.play();\n }\n });\n }\n }\n break;\n case 'autoplay':\n if (this.initialized && $new) {\n this.play();\n }\n }\n }\n\n getSource() {\n const source = this.loadAsset \n && this.state.props.mp3format\n && this.loadAsset(this.state.props.mp3format as string);\n if (isString(source)) {\n return {\n uri: source\n };\n }\n return source;\n }\n\n addPadding(str: string, maxLen: number, pad = '0'): string {\n if (str.length < maxLen) {\n return this.addPadding(pad + str, maxLen, pad);\n }\n return str;\n }\n\n formatTime(v: number) {\n const t = v/60;\n const mins = Math.floor(t);\n const seconds = Math.round((t - mins) * 60);\n return this.addPadding(mins+ '', 2) + ':' + this.addPadding(seconds+ '', 2);\n }\n\n setTimer() {\n this.cancelTimer();\n this.timer = setInterval(() => {\n if (this.state.currentTime >= this.state.totalTime) {\n if (this.state.props.loop) {\n this.replay();\n } else {\n this.stop();\n }\n return;\n }\n this.setState({\n currentTime: Math.max(this.offsetTime + this.state.currentTime + 1, 0)\n } as WmAudioState);\n this.offsetTime = 0;\n }, 1000);\n }\n\n cancelTimer() {\n clearInterval(this.timer);\n }\n\n stop() {\n this.pause();\n this.sound?.unloadAsync();\n this.sound = null as any;\n this.cancelTimer();\n this.offsetTime = 0;\n this.updateState({\n currentTime: 0\n } as WmAudioState);\n }\n\n replay() {\n this.updateState({\n currentTime: 0\n } as WmAudioState, () => {\n this.sound.replayAsync();\n });\n }\n\n play() {\n if (isWebPreviewMode() \n || this.loading\n || (this.state.playing && this.sound)) {\n return;\n }\n if (this.sound) {\n this.sound.playAsync();\n this.setTimer();\n this.updateState({\n playing: true\n } as WmAudioState);\n } else {\n this.loading = true;\n const source = this.getSource();\n source && this.audioService.createAudio(source, {\n isMuted: this.state.props.muted\n })\n .then((res: any) => {\n this.sound = res.sound;\n this.sound.playAsync();\n this.sound.getStatusAsync().then((status: any) => {\n this.updateState({\n currentTime: 0,\n totalTime: Math.round(status['durationMillis']/1000)\n } as WmAudioState, () => this.setTimer());\n });\n this.updateState({\n playing: true\n } as WmAudioState);\n }).catch(() => {}).then(() => {\n this.loading = false;\n });\n }\n }\n\n pause() {\n this.cancelTimer();\n this.sound?.pauseAsync().then(() => {\n this.updateState({\n playing: false\n } as WmAudioState);\n })\n }\n\n mute() {\n this.sound.setStatusAsync({\n isMuted: true\n }).then(() => {\n this.updateState({\n props: {\n muted: true\n }\n } as WmAudioState);\n });\n }\n\n unmute() {\n this.sound.setStatusAsync({\n isMuted: false\n }).then(() => {\n this.updateState({\n props: {\n muted: false\n }\n } as WmAudioState);\n });\n }\n\n onSeekChange(time: number) {\n if (time !== this.state.currentTime) {\n this.offsetTime = time - this.state.currentTime;\n this.sound?.setPositionAsync(time * 1000);\n }\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n //without settimeout, app is crashing with errors\n setTimeout(() => {\n if (this.state.props.autoplay) {\n this.play();\n }\n }, 1000);\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.stop();\n }\n\n public renderTextSkeleton(): React.ReactNode {\n return (\n createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.text,\n ...this.styles.textSkeleton.root\n })\n )\n } \n renderWidget(props: WmAudioProps) {\n return props.controls ? (\n <AudioConsumer>\n {(audioService: any) => {\n this.audioService = audioService;\n return <View \n style={this.styles.root}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this._background}\n {!this.state.playing ? (<WmIcon \n id={this.getTestId('play')}\n name={props.name + \"_play\"}\n styles={this.styles.playIcon}\n iconclass=\"wi wi-play-arrow fa-2x\"\n onTap={() => this.play()}></WmIcon>) : (\n <WmIcon name={props.name + \"_pause\"}\n id={this.getTestId('pause')}\n iconclass=\"wi wi-pause fa-2x\"\n styles={this.styles.pauseIcon}\n onTap={() => this.pause()}></WmIcon>)}\n {\n this._showSkeleton ? this.renderTextSkeleton() : \n <>\n <Text style={this.styles.text}>\n {`${this.formatTime(this.state.currentTime)} / ${this.formatTime(this.state.totalTime)}`}\n </Text>\n <Slider\n testID={this.getTestId('slider')}\n step={1}\n style={{flex: 1}}\n value={this.state.currentTime}\n disabled={isWebPreviewMode()}\n onValueChange={this.onSeekChange.bind(this)}\n minimumValue={0}\n inverted={this.isRTL && (Platform.OS==\"android\" || Platform.OS==\"web\")}\n maximumValue={this.state.totalTime || 1}\n thumbTintColor={this.styles.slider.thumb.backgroundColor as string}\n minimumTrackTintColor={this.styles.slider.minimumTrack.backgroundColor as string}\n maximumTrackTintColor={this.styles.slider.maximumTrack.backgroundColor as string}\n />\n </>\n }\n {!props.muted ? (<WmIcon name={props.name + \"_mute\"}\n id={this.getTestId('mute')}\n iconclass=\"wi wi-volume-up fa-2x\"\n styles={this.styles.muteIcon}\n onTap={() => this.mute()}></WmIcon>) :\n (<WmIcon name={props.name + \"_unmute\"}\n id={this.getTestId('unmute')}\n iconclass=\"wi wi-volume-off fa-2x\"\n styles={this.styles.unmuteIcon}\n onTap={() => this.unmute()}></WmIcon>)}\n </View>\n }}\n </AudioConsumer>) : null; \n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Platform","Text","View","Slider","isString","Audio","BaseComponent","BaseComponentState","WmAudioProps","DEFAULT_CLASS","WmIcon","isWebPreviewMode","createSkeleton","WmAudioState","constructor","args","_defineProperty","WmAudio","props","onPropertyChange","name","$new","$old","initialized","Promise","resolve","then","_this$sound","sound","unloadAsync","onSeekChange","state","playing","autoplay","play","getSource","source","loadAsset","mp3format","uri","addPadding","str","maxLen","pad","length","formatTime","v","t","mins","Math","floor","seconds","round","setTimer","cancelTimer","timer","setInterval","currentTime","totalTime","loop","replay","stop","setState","max","offsetTime","clearInterval","_this$sound2","pause","updateState","replayAsync","loading","playAsync","Sound","createAsync","isMuted","muted","res","getStatusAsync","status","catch","_this$sound3","pauseAsync","mute","setStatusAsync","unmute","time","_this$sound4","setPositionAsync","componentDidMount","setTimeout","componentWillUnmount","renderTextSkeleton","theme","styles","text","textSkeleton","root","renderWidget","controls","createElement","style","onLayout","event","handleLayout","_background","id","getTestId","playIcon","iconclass","onTap","pauseIcon","_showSkeleton","Fragment","testID","step","flex","value","disabled","onValueChange","bind","minimumValue","inverted","isRTL","OS","maximumValue","thumbTintColor","slider","thumb","backgroundColor","minimumTrackTintColor","minimumTrack","maximumTrackTintColor","maximumTrack","muteIcon","unmuteIcon"],"sources":["audio.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Platform, Text, View } from 'react-native';\nimport Slider from '@react-native-community/slider';\nimport { isString } from 'lodash-es';\nimport { Audio } from 'expo-av';\nimport { Sound } from 'expo-av/build/Audio';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmAudioProps from './audio.props';\nimport { DEFAULT_CLASS, WmAudioStyles } from './audio.styles';\nimport WmIcon from '../icon/icon.component';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { createSkeleton } from '../skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../skeleton/skeleton.styles';\n\nexport class WmAudioState extends BaseComponentState<WmAudioProps> {\n playing = false;\n currentTime = 0;\n totalTime = 0;\n}\n\nexport default class WmAudio extends BaseComponent<WmAudioProps, WmAudioState, WmAudioStyles> {\n\n private loading = false;\n private sound: Sound = null as any;\n private timer: any;\n private offsetTime = 0;\n\n constructor(props: WmAudioProps) {\n super(props, DEFAULT_CLASS, new WmAudioProps(), new WmAudioState());\n }\n\n onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case 'mp3format': {\n if (this.initialized) {\n Promise.resolve()\n .then(() => this.sound?.unloadAsync())\n .then(() => {\n this.sound = null as any;\n this.onSeekChange(0);\n if (this.state.playing \n || this.state.props.autoplay) {\n this.play();\n }\n });\n }\n }\n break;\n case 'autoplay':\n if (this.initialized && $new) {\n this.play();\n }\n }\n }\n\n getSource() {\n const source = this.loadAsset \n && this.state.props.mp3format\n && this.loadAsset(this.state.props.mp3format as string);\n if (isString(source)) {\n return {\n uri: source\n };\n }\n return source;\n }\n\n addPadding(str: string, maxLen: number, pad = '0'): string {\n if (str.length < maxLen) {\n return this.addPadding(pad + str, maxLen, pad);\n }\n return str;\n }\n\n formatTime(v: number) {\n const t = v/60;\n const mins = Math.floor(t);\n const seconds = Math.round((t - mins) * 60);\n return this.addPadding(mins+ '', 2) + ':' + this.addPadding(seconds+ '', 2);\n }\n\n setTimer() {\n this.cancelTimer();\n this.timer = setInterval(() => {\n if (this.state.currentTime >= this.state.totalTime) {\n if (this.state.props.loop) {\n this.replay();\n } else {\n this.stop();\n }\n return;\n }\n this.setState({\n currentTime: Math.max(this.offsetTime + this.state.currentTime + 1, 0)\n } as WmAudioState);\n this.offsetTime = 0;\n }, 1000);\n }\n\n cancelTimer() {\n clearInterval(this.timer);\n }\n\n stop() {\n this.pause();\n this.sound?.unloadAsync();\n this.sound = null as any;\n this.cancelTimer();\n this.offsetTime = 0;\n this.updateState({\n currentTime: 0\n } as WmAudioState);\n }\n\n replay() {\n this.updateState({\n currentTime: 0\n } as WmAudioState, () => {\n this.sound.replayAsync();\n });\n }\n\n play() {\n if (isWebPreviewMode() \n || this.loading\n || (this.state.playing && this.sound)) {\n return;\n }\n if (this.sound) {\n this.sound.playAsync();\n this.setTimer();\n this.updateState({\n playing: true\n } as WmAudioState);\n } else {\n this.loading = true;\n const source = this.getSource();\n source && Audio.Sound.createAsync(source, {\n isMuted: this.state.props.muted\n })\n .then((res) => {\n this.sound = res.sound;\n this.sound.playAsync();\n this.sound.getStatusAsync().then((status: any) => {\n this.updateState({\n currentTime: 0,\n totalTime: Math.round(status['durationMillis']/1000)\n } as WmAudioState, () => this.setTimer());\n });\n this.updateState({\n playing: true\n } as WmAudioState);\n }).catch(() => {}).then(() => {\n this.loading = false;\n });\n }\n }\n\n pause() {\n this.cancelTimer();\n this.sound?.pauseAsync().then(() => {\n this.updateState({\n playing: false\n } as WmAudioState);\n })\n }\n\n mute() {\n this.sound.setStatusAsync({\n isMuted: true\n }).then(() => {\n this.updateState({\n props: {\n muted: true\n }\n } as WmAudioState);\n });\n }\n\n unmute() {\n this.sound.setStatusAsync({\n isMuted: false\n }).then(() => {\n this.updateState({\n props: {\n muted: false\n }\n } as WmAudioState);\n });\n }\n\n onSeekChange(time: number) {\n if (time !== this.state.currentTime) {\n this.offsetTime = time - this.state.currentTime;\n this.sound?.setPositionAsync(time * 1000);\n }\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n //without settimeout, app is crashing with errors\n setTimeout(() => {\n if (this.state.props.autoplay) {\n this.play();\n }\n }, 1000);\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.stop();\n }\n\n public renderTextSkeleton(): React.ReactNode {\n return (\n createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.text,\n ...this.styles.textSkeleton.root\n })\n )\n } \n renderWidget(props: WmAudioProps) {\n return props.controls ? (\n <View style={this.styles.root}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this._background}\n {!this.state.playing ? (<WmIcon \n id={this.getTestId('play')}\n name={props.name + \"_play\"}\n styles={this.styles.playIcon}\n iconclass=\"wi wi-play-arrow fa-2x\"\n onTap={() => this.play()}></WmIcon>) : (\n <WmIcon name={props.name + \"_pause\"}\n id={this.getTestId('pause')}\n iconclass=\"wi wi-pause fa-2x\"\n styles={this.styles.pauseIcon}\n onTap={() => this.pause()}></WmIcon>)}\n {\n this._showSkeleton ? this.renderTextSkeleton() : \n <>\n <Text style={this.styles.text}>\n {`${this.formatTime(this.state.currentTime)} / ${this.formatTime(this.state.totalTime)}`}\n </Text>\n <Slider\n testID={this.getTestId('slider')}\n step={1}\n style={{flex: 1}}\n value={this.state.currentTime}\n disabled={isWebPreviewMode()}\n onValueChange={this.onSeekChange.bind(this)}\n minimumValue={0}\n inverted={this.isRTL && (Platform.OS==\"android\" || Platform.OS==\"web\")}\n maximumValue={this.state.totalTime || 1}\n thumbTintColor={this.styles.slider.thumb.backgroundColor as string}\n minimumTrackTintColor={this.styles.slider.minimumTrack.backgroundColor as string}\n maximumTrackTintColor={this.styles.slider.maximumTrack.backgroundColor as string}\n />\n </>\n }\n {!props.muted ? (<WmIcon name={props.name + \"_mute\"}\n id={this.getTestId('mute')}\n iconclass=\"wi wi-volume-up fa-2x\"\n styles={this.styles.muteIcon}\n onTap={() => this.mute()}></WmIcon>) :\n (<WmIcon name={props.name + \"_unmute\"}\n id={this.getTestId('unmute')}\n iconclass=\"wi wi-volume-off fa-2x\"\n styles={this.styles.unmuteIcon}\n onTap={() => this.unmute()}></WmIcon>)}\n </View>) : null; \n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,13 +4,13 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
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 React from 'react';
6
6
  import { View, Image, TouchableWithoutFeedback, Platform, Text } from 'react-native';
7
+ import { VideoView, createVideoPlayer } from 'expo-video';
7
8
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
8
9
  import WmVideoProps from './video.props';
9
10
  import { DEFAULT_CLASS } from './video.styles';
10
11
  import { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';
11
12
  import { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';
12
13
  import { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';
13
- import { VideoConsumer } from '@wavemaker/app-rn-runtime/core/device/av-service';
14
14
  import { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';
15
15
  export class WmVideoState extends BaseComponentState {
16
16
  constructor(...args) {
@@ -24,8 +24,6 @@ export default class WmVideo extends BaseComponent {
24
24
  constructor(props) {
25
25
  super(props, DEFAULT_CLASS, new WmVideoProps(), new WmVideoState());
26
26
  _defineProperty(this, "player", void 0);
27
- _defineProperty(this, "videoService", null);
28
- _defineProperty(this, "isPlayerInitialized", false);
29
27
  }
30
28
  getSource(path) {
31
29
  if (!path) {
@@ -81,7 +79,7 @@ export default class WmVideo extends BaseComponent {
81
79
  }
82
80
  playerReadyStatusChange(statusObj) {
83
81
  const videoReady = statusObj.status === 'readyToPlay';
84
- if (this.state.props.autoplay && videoReady && this.player) {
82
+ if (this.state.props.autoplay && videoReady) {
85
83
  this.player.play();
86
84
  }
87
85
  this.updateState({
@@ -89,9 +87,6 @@ export default class WmVideo extends BaseComponent {
89
87
  });
90
88
  }
91
89
  initializeProps() {
92
- if (!this.player) {
93
- return;
94
- }
95
90
  const {
96
91
  loop,
97
92
  muted,
@@ -103,40 +98,28 @@ export default class WmVideo extends BaseComponent {
103
98
  }
104
99
  componentDidMount() {
105
100
  super.componentDidMount();
106
- }
107
- initializePlayer(videoService) {
108
- if (this.isPlayerInitialized || !videoService) {
109
- return; // Player already initialized or videoService not available
110
- }
111
101
  const {
112
102
  mp4format,
113
- webmformat
103
+ webmformat,
104
+ autoplay
114
105
  } = this.state.props;
115
106
  const videoSource = this.getSource(mp4format || webmformat);
116
- this.player = videoService.createVideoPlayer(videoSource);
107
+ this.player = createVideoPlayer(videoSource);
117
108
  this.player.addListener('playingChange', this.playingStatusChange.bind(this));
118
109
  this.player.addListener('statusChange', this.playerReadyStatusChange.bind(this));
119
110
  this.initializeProps();
120
- this.isPlayerInitialized = true;
121
111
  }
122
112
  onPlayIconTap() {
123
113
  this.updateState({
124
114
  videoPosterDismissed: true
125
115
  });
126
- if (this.player) {
127
- this.player.play();
128
- }
116
+ this.player.play();
129
117
  }
130
118
  componentWillUnmount() {
131
119
  super.componentWillUnmount();
132
- if (this.player) {
133
- this.player.removeListener('playingChange', this.playingStatusChange);
134
- this.player.removeListener('statusChange', this.playerReadyStatusChange);
135
- this.player.release();
136
- }
137
- this.player = null;
138
- this.videoService = null;
139
- this.isPlayerInitialized = false;
120
+ this.player.removeListener('playingChange', this.playingStatusChange);
121
+ this.player.removeListener('statusChange', this.playerReadyStatusChange);
122
+ this.player.release();
140
123
  }
141
124
 
142
125
  //TASK: Overlay on video widged should be removed once upgraded to expo 53.
@@ -155,70 +138,62 @@ export default class WmVideo extends BaseComponent {
155
138
  } = this.state;
156
139
  const isPlaying = playStarted || this.state.props.autoplay;
157
140
  const showOverlay = !showdefaultvideoposter && !this.state.videoPosterDismissed;
158
- return /*#__PURE__*/React.createElement(VideoConsumer, null, videoService => {
159
- // Only set videoService and initialize player once
160
- if (videoService && !this.videoService) {
161
- this.videoService = videoService;
162
- this.initializePlayer(videoService);
141
+ return /*#__PURE__*/React.createElement(View, {
142
+ style: this.styles.root,
143
+ onLayout: event => this.handleLayout(event)
144
+ }, this._background, /*#__PURE__*/React.createElement(VideoView, _extends({}, getAccessibilityProps(AccessibilityWidgetType.VIDEO, props), {
145
+ style: {
146
+ width: '100%',
147
+ height: '100%',
148
+ flex: 1
149
+ },
150
+ player: this.player,
151
+ nativeControls: props.controls,
152
+ contentFit: 'contain',
153
+ testID: this.getTestId('video'),
154
+ allowsPictureInPicture: allowsPictureInPicture,
155
+ onFullscreenEnter: onFullscreenEnter,
156
+ onFullscreenExit: onFullscreenExit,
157
+ requiresLinearPlayback: requiresLinearPlayback
158
+ })), Platform.OS === 'android' && !(props.controls && showOverlay) && /*#__PURE__*/React.createElement(Tappable, {
159
+ onTap: () => {},
160
+ styles: {
161
+ zIndex: 10,
162
+ position: "absolute",
163
+ width: '100%',
164
+ height: '100%',
165
+ flex: 1
163
166
  }
164
- const VideoView = videoService === null || videoService === void 0 ? void 0 : videoService.VideoView;
165
- return /*#__PURE__*/React.createElement(View, {
166
- style: this.styles.root,
167
- onLayout: event => this.handleLayout(event)
168
- }, this._background, /*#__PURE__*/React.createElement(VideoView, _extends({}, getAccessibilityProps(AccessibilityWidgetType.VIDEO, props), {
169
- style: {
170
- width: '100%',
171
- height: '100%',
172
- flex: 1
173
- },
174
- player: this.player,
175
- nativeControls: props.controls || showOverlay,
176
- contentFit: 'contain',
177
- testID: this.getTestId('video'),
178
- allowsPictureInPicture: allowsPictureInPicture,
179
- onFullscreenEnter: onFullscreenEnter,
180
- onFullscreenExit: onFullscreenExit,
181
- requiresLinearPlayback: requiresLinearPlayback
182
- })), Platform.OS === 'android' && !(props.controls && showOverlay) && /*#__PURE__*/React.createElement(Tappable, {
183
- onTap: () => {},
184
- styles: {
185
- zIndex: 10,
186
- position: "absolute",
187
- width: '100%',
188
- height: '100%',
189
- flex: 1
190
- }
191
- }, /*#__PURE__*/React.createElement(View, {
192
- testID: this.getTestId('video_overlay'),
193
- style: {
194
- backgroundColor: 'transparent',
195
- width: '100%',
196
- height: '100%',
197
- flex: 1
198
- }
199
- })), !isPlaying && videoposter && showdefaultvideoposter ? this.renderVideoPoster(props) : /*#__PURE__*/React.createElement(React.Fragment, null), !isPlaying && !showdefaultvideoposter && !this.state.videoPosterDismissed ? /*#__PURE__*/React.createElement(View, {
200
- style: this.styles.playIconContainer
201
- }, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
202
- style: {
203
- width: 80,
204
- height: 80
205
- },
206
- onPress: this.onPlayIconTap.bind(this)
207
- }, Platform.OS === 'android' ? /*#__PURE__*/React.createElement(Image, _extends({}, this.getTestProps('video_play_button'), {
208
- style: {
209
- width: 80,
210
- height: 80
211
- },
212
- resizeMode: 'contain',
213
- source: this.getSource('resources/images/imagelists/play.png')
214
- })) : /*#__PURE__*/React.createElement(Text, {
215
- style: {
216
- fontSize: 80,
217
- fontWeight: 'bold',
218
- color: 'white'
219
- }
220
- }, "\u25B6"))) : /*#__PURE__*/React.createElement(React.Fragment, null));
221
- });
167
+ }, /*#__PURE__*/React.createElement(View, {
168
+ testID: this.getTestId('video_overlay'),
169
+ style: {
170
+ backgroundColor: 'transparent',
171
+ width: '100%',
172
+ height: '100%',
173
+ flex: 1
174
+ }
175
+ })), !isPlaying && videoposter && showdefaultvideoposter ? this.renderVideoPoster(props) : /*#__PURE__*/React.createElement(React.Fragment, null), !isPlaying && !showdefaultvideoposter && !this.state.videoPosterDismissed ? /*#__PURE__*/React.createElement(View, {
176
+ style: this.styles.playIconContainer
177
+ }, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
178
+ style: {
179
+ width: 80,
180
+ height: 80
181
+ },
182
+ onPress: this.onPlayIconTap.bind(this)
183
+ }, Platform.OS === 'android' ? /*#__PURE__*/React.createElement(Image, _extends({}, this.getTestProps('video_play_button'), {
184
+ style: {
185
+ width: 80,
186
+ height: 80
187
+ },
188
+ resizeMode: 'contain',
189
+ source: this.getSource('resources/images/imagelists/play.png')
190
+ })) : /*#__PURE__*/React.createElement(Text, {
191
+ style: {
192
+ fontSize: 80,
193
+ fontWeight: 'bold',
194
+ color: 'white'
195
+ }
196
+ }, "\u25B6"))) : /*#__PURE__*/React.createElement(React.Fragment, null));
222
197
  }
223
198
  }
224
199
  //# sourceMappingURL=video.component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Image","TouchableWithoutFeedback","Platform","Text","BaseComponent","BaseComponentState","WmVideoProps","DEFAULT_CLASS","AccessibilityWidgetType","getAccessibilityProps","isFullPathUrl","createSkeleton","VideoConsumer","Tappable","WmVideoState","constructor","args","_defineProperty","WmVideo","props","getSource","path","resource","loadAsset","uri","renderVideoPoster","accessibilityImageProps","accessibilitylabel","hint","accessibilityrole","createElement","onPress","_this$player","player","play","_extends","getTestProps","style","position","top","bottom","left","right","width","height","resizeMode","source","videoposter","PICTURE","renderSkeleton","theme","styles","skeleton","root","playingStatusChange","isPlaying","state","playStarted","updateState","autoplay","playerReadyStatusChange","statusObj","videoReady","status","isVideoReady","initializeProps","loop","muted","showNowPlayingNotification","componentDidMount","initializePlayer","videoService","isPlayerInitialized","mp4format","webmformat","videoSource","createVideoPlayer","addListener","bind","onPlayIconTap","videoPosterDismissed","componentWillUnmount","removeListener","release","renderWidget","allowsPictureInPicture","onFullscreenEnter","onFullscreenExit","requiresLinearPlayback","showdefaultvideoposter","showOverlay","VideoView","onLayout","event","handleLayout","_background","VIDEO","flex","nativeControls","controls","contentFit","testID","getTestId","OS","onTap","zIndex","backgroundColor","Fragment","playIconContainer","fontSize","fontWeight","color"],"sources":["video.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Image, TouchableWithoutFeedback, Platform, Text } from 'react-native';\nimport {\n BaseComponent,\n BaseComponentState,\n} from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmVideoProps from './video.props';\nimport { DEFAULT_CLASS, WmVideoStyles } from './video.styles';\nimport {\n AccessibilityWidgetType,\n getAccessibilityProps,\n} from '@wavemaker/app-rn-runtime/core/accessibility';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { VideoConsumer } from '@wavemaker/app-rn-runtime/core/device/av-service';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\n\nexport class WmVideoState extends BaseComponentState<WmVideoProps> {\n isVideoReady: boolean = false;\n playStarted: boolean = false;\n videoPosterDismissed: boolean = false;\n}\n\nexport default class WmVideo extends BaseComponent<\n WmVideoProps,\n WmVideoState,\n WmVideoStyles\n> {\n private player: any;\n private videoService: any = null as any;\n private isPlayerInitialized: boolean = false;\n\n constructor(props: WmVideoProps) {\n super(props, DEFAULT_CLASS, new WmVideoProps(), new WmVideoState());\n }\n\n getSource(path: string) {\n if (!path) {\n return null;\n }\n const resource = this.loadAsset && this.loadAsset(path);\n if (isFullPathUrl(resource as string)) {\n return {\n uri: resource as string,\n };\n }\n return resource || {\n uri: ''\n };\n }\n\n renderVideoPoster(props: WmVideoProps) {\n const accessibilityImageProps = {...props, \n accessibilitylabel : `${props.accessibilitylabel}_poster`,\n hint: `${props.hint}_poster`,\n accessibilityrole: 'image'\n }\n return (\n <TouchableWithoutFeedback onPress={() => this.player?.play()}>\n <Image\n {...this.getTestProps('video_poster')}\n style={{\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: '100%',\n height: '100%',\n }}\n resizeMode={'cover'}\n source={this.getSource(props.videoposter) as any}\n {...getAccessibilityProps(AccessibilityWidgetType.PICTURE, accessibilityImageProps)}\n />\n </TouchableWithoutFeedback>\n );\n }\n\n\n public renderSkeleton(props: WmVideoProps): React.ReactNode {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n });\n }\n\n public playingStatusChange(isPlaying: boolean) {\n if (!this.state.playStarted) {\n this.updateState({\n playStarted: this.state.props.autoplay || isPlaying,\n } as WmVideoState);\n }\n }\n\n playerReadyStatusChange(statusObj: any) {\n const videoReady = statusObj.status === 'readyToPlay'\n if (this.state.props.autoplay && videoReady && this.player) {\n this.player.play();\n }\n this.updateState({\n isVideoReady: videoReady,\n } as WmVideoState);\n }\n\n initializeProps(){\n if (!this.player) {\n return;\n }\n \n const {\n loop,\n muted,\n showNowPlayingNotification,\n } = this.state.props\n\n this.player.muted = muted; \n this.player.loop = loop; \n this.player.showNowPlayingNotification = showNowPlayingNotification; \n }\n\n componentDidMount(): void {\n super.componentDidMount();\n }\n\n initializePlayer(videoService: any) {\n if (this.isPlayerInitialized || !videoService) {\n return; // Player already initialized or videoService not available\n }\n\n const { mp4format, webmformat } = this.state.props;\n const videoSource = this.getSource(mp4format || webmformat);\n\n this.player = videoService.createVideoPlayer(videoSource);\n this.player.addListener(\n 'playingChange',\n this.playingStatusChange.bind(this)\n );\n this.player.addListener(\n 'statusChange',\n this.playerReadyStatusChange.bind(this)\n ); \n this.initializeProps();\n this.isPlayerInitialized = true;\n }\n\n onPlayIconTap() {\n this.updateState({\n videoPosterDismissed: true\n } as WmVideoState)\n if (this.player) {\n this.player.play()\n }\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n if (this.player) {\n this.player.removeListener('playingChange', this.playingStatusChange);\n this.player.removeListener('statusChange', this.playerReadyStatusChange);\n this.player.release();\n }\n this.player = null;\n this.videoService = null;\n this.isPlayerInitialized = false;\n }\n\n //TASK: Overlay on video widged should be removed once upgraded to expo 53.\n\n renderWidget(props: WmVideoProps) {\n const {\n allowsPictureInPicture,\n videoposter,\n onFullscreenEnter,\n onFullscreenExit,\n requiresLinearPlayback,\n showdefaultvideoposter\n } = props;\n\n const { playStarted } = this.state;\n const isPlaying = playStarted || this.state.props.autoplay;\n const showOverlay = !showdefaultvideoposter && !this.state.videoPosterDismissed\n\n \n return (\n <VideoConsumer>\n {(videoService: any) => {\n // Only set videoService and initialize player once\n if (videoService && !this.videoService) {\n this.videoService = videoService;\n this.initializePlayer(videoService);\n }\n const VideoView = videoService?.VideoView;\n return (\n <View \n style={this.styles.root}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this._background}\n <VideoView\n {...getAccessibilityProps(AccessibilityWidgetType.VIDEO, props)}\n style={{ width: '100%', height: '100%', flex: 1 }}\n player={this.player}\n nativeControls={props.controls || showOverlay}\n contentFit={'contain'}\n testID={this.getTestId('video')}\n allowsPictureInPicture={allowsPictureInPicture}\n onFullscreenEnter={onFullscreenEnter}\n onFullscreenExit={onFullscreenExit}\n requiresLinearPlayback={requiresLinearPlayback}\n />\n {Platform.OS === 'android' && !(props.controls && showOverlay ) && <Tappable onTap={() => {}} styles={{zIndex: 10, position:\"absolute\", width: '100%', height: '100%', flex: 1 }}>\n <View testID={this.getTestId('video_overlay')} style={{backgroundColor:'transparent', width: '100%', height: '100%', flex: 1}}>\n </View>\n </Tappable>}\n {!isPlaying && videoposter && showdefaultvideoposter ? (\n this.renderVideoPoster(props)\n ) : (\n <></>\n )}\n {\n !isPlaying && !showdefaultvideoposter && !this.state.videoPosterDismissed ? (\n <View style={this.styles.playIconContainer}>\n <TouchableWithoutFeedback style={{width: 80, height: 80 }} onPress={this.onPlayIconTap.bind(this)}>\n {Platform.OS === 'android' ? <Image\n {...this.getTestProps('video_play_button')}\n style={{\n width: 80, \n height: 80,\n }}\n resizeMode={'contain'}\n source={this.getSource('resources/images/imagelists/play.png') as any}\n /> : <Text style={{ fontSize: 80, fontWeight: 'bold', color: 'white'}} >▶</Text> } \n </TouchableWithoutFeedback>\n </View> \n ) : (\n <></>\n )\n }\n </View>\n )}}\n </VideoConsumer>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Image","TouchableWithoutFeedback","Platform","Text","VideoView","createVideoPlayer","BaseComponent","BaseComponentState","WmVideoProps","DEFAULT_CLASS","AccessibilityWidgetType","getAccessibilityProps","isFullPathUrl","createSkeleton","Tappable","WmVideoState","constructor","args","_defineProperty","WmVideo","props","getSource","path","resource","loadAsset","uri","renderVideoPoster","accessibilityImageProps","accessibilitylabel","hint","accessibilityrole","createElement","onPress","_this$player","player","play","_extends","getTestProps","style","position","top","bottom","left","right","width","height","resizeMode","source","videoposter","PICTURE","renderSkeleton","theme","styles","skeleton","root","playingStatusChange","isPlaying","state","playStarted","updateState","autoplay","playerReadyStatusChange","statusObj","videoReady","status","isVideoReady","initializeProps","loop","muted","showNowPlayingNotification","componentDidMount","mp4format","webmformat","videoSource","addListener","bind","onPlayIconTap","videoPosterDismissed","componentWillUnmount","removeListener","release","renderWidget","allowsPictureInPicture","onFullscreenEnter","onFullscreenExit","requiresLinearPlayback","showdefaultvideoposter","showOverlay","onLayout","event","handleLayout","_background","VIDEO","flex","nativeControls","controls","contentFit","testID","getTestId","OS","onTap","zIndex","backgroundColor","Fragment","playIconContainer","fontSize","fontWeight","color"],"sources":["video.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Image, TouchableWithoutFeedback, Platform, Text } from 'react-native';\nimport { VideoView, createVideoPlayer } from 'expo-video';\nimport {\n BaseComponent,\n BaseComponentState,\n} from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmVideoProps from './video.props';\nimport { DEFAULT_CLASS, WmVideoStyles } from './video.styles';\nimport {\n AccessibilityWidgetType,\n getAccessibilityProps,\n} from '@wavemaker/app-rn-runtime/core/accessibility';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\n\nexport class WmVideoState extends BaseComponentState<WmVideoProps> {\n isVideoReady: boolean = false;\n playStarted: boolean = false;\n videoPosterDismissed: boolean = false;\n}\n\nexport default class WmVideo extends BaseComponent<\n WmVideoProps,\n WmVideoState,\n WmVideoStyles\n> {\n private player: any;\n\n constructor(props: WmVideoProps) {\n super(props, DEFAULT_CLASS, new WmVideoProps(), new WmVideoState());\n }\n\n getSource(path: string) {\n if (!path) {\n return null;\n }\n const resource = this.loadAsset && this.loadAsset(path);\n if (isFullPathUrl(resource as string)) {\n return {\n uri: resource as string,\n };\n }\n return resource || {\n uri: ''\n };\n }\n\n renderVideoPoster(props: WmVideoProps) {\n const accessibilityImageProps = {...props, \n accessibilitylabel : `${props.accessibilitylabel}_poster`,\n hint: `${props.hint}_poster`,\n accessibilityrole: 'image'\n }\n return (\n <TouchableWithoutFeedback onPress={() => this.player?.play()} >\n <Image\n {...this.getTestProps('video_poster')}\n style={{\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: '100%',\n height: '100%',\n }}\n resizeMode={'cover'}\n source={this.getSource(props.videoposter) as any}\n {...getAccessibilityProps(AccessibilityWidgetType.PICTURE, accessibilityImageProps)}\n />\n </TouchableWithoutFeedback>\n );\n }\n\n\n public renderSkeleton(props: WmVideoProps): React.ReactNode {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n });\n }\n\n public playingStatusChange(isPlaying: boolean) {\n if (!this.state.playStarted) {\n this.updateState({\n playStarted: this.state.props.autoplay || isPlaying,\n } as WmVideoState);\n }\n }\n\n playerReadyStatusChange(statusObj: any) {\n const videoReady = statusObj.status === 'readyToPlay'\n if (this.state.props.autoplay && videoReady) {\n this.player.play();\n }\n this.updateState({\n isVideoReady: videoReady,\n } as WmVideoState);\n }\n\n initializeProps(){\n const {\n loop,\n muted,\n showNowPlayingNotification,\n } = this.state.props\n\n this.player.muted = muted; \n this.player.loop = loop; \n this.player.showNowPlayingNotification = showNowPlayingNotification; \n }\n\n componentDidMount(): void {\n super.componentDidMount();\n const { mp4format, webmformat, autoplay } = this.state.props;\n const videoSource = this.getSource(mp4format || webmformat) ;\n\n this.player = createVideoPlayer(videoSource);\n this.player.addListener(\n 'playingChange',\n this.playingStatusChange.bind(this)\n );\n this.player.addListener(\n 'statusChange',\n this.playerReadyStatusChange.bind(this)\n ); \n this.initializeProps()\n }\n\n onPlayIconTap() {\n this.updateState({\n videoPosterDismissed: true\n } as WmVideoState)\n this.player.play()\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.player.removeListener('playingChange', this.playingStatusChange);\n this.player.removeListener('statusChange', this.playerReadyStatusChange);\n this.player.release();\n }\n\n //TASK: Overlay on video widged should be removed once upgraded to expo 53.\n\n renderWidget(props: WmVideoProps) {\n const {\n allowsPictureInPicture,\n videoposter,\n onFullscreenEnter,\n onFullscreenExit,\n requiresLinearPlayback,\n showdefaultvideoposter\n } = props;\n\n const { playStarted } = this.state;\n const isPlaying = playStarted || this.state.props.autoplay;\n const showOverlay = !showdefaultvideoposter && !this.state.videoPosterDismissed\n\n return (\n <View style={this.styles.root} onLayout={(event) => this.handleLayout(event)}>\n {this._background}\n <VideoView\n {...getAccessibilityProps(AccessibilityWidgetType.VIDEO, props)}\n style={{ width: '100%', height: '100%', flex: 1 }}\n player={this.player}\n nativeControls={props.controls}\n contentFit={'contain'}\n testID={this.getTestId('video')}\n allowsPictureInPicture={allowsPictureInPicture}\n onFullscreenEnter={onFullscreenEnter}\n onFullscreenExit={onFullscreenExit}\n requiresLinearPlayback={requiresLinearPlayback}\n />\n {Platform.OS === 'android' && !(props.controls && showOverlay ) && <Tappable onTap={() => {}} styles={{zIndex: 10, position:\"absolute\", width: '100%', height: '100%', flex: 1 }}>\n <View testID={this.getTestId('video_overlay')} style={{backgroundColor:'transparent', width: '100%', height: '100%', flex: 1}}>\n </View>\n </Tappable>}\n\n {!isPlaying && videoposter && showdefaultvideoposter ? (\n this.renderVideoPoster(props)\n ) : (\n <></>\n )}\n \n {\n !isPlaying && !showdefaultvideoposter && !this.state.videoPosterDismissed ? (\n <View style={this.styles.playIconContainer}>\n <TouchableWithoutFeedback style={{width: 80, height: 80 }} onPress={this.onPlayIconTap.bind(this)}>\n {Platform.OS === 'android' ? <Image\n {...this.getTestProps('video_play_button')}\n style={{\n width: 80, \n height: 80,\n }}\n resizeMode={'contain'}\n source={this.getSource('resources/images/imagelists/play.png') as any}\n /> : <Text style={{ fontSize: 80, fontWeight: 'bold', color: 'white'}} >▶</Text> } \n </TouchableWithoutFeedback>\n </View> \n ) : (\n <></>\n )\n }\n </View>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
@@ -5,24 +5,19 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
5
5
  import React from 'react';
6
6
  import { View } from 'react-native';
7
7
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
8
- import { ScanConsumer, ScanPluginConsumer } from '@wavemaker/app-rn-runtime/core/device/scan-service';
8
+ import { ScanConsumer } from '@wavemaker/app-rn-runtime/core/device/scan-service';
9
9
  import WmBarcodescannerProps from './barcodescanner.props';
10
10
  import { DEFAULT_CLASS } from './barcodescanner.styles';
11
11
  import WmButton from '@wavemaker/app-rn-runtime/components/basic/button/button.component';
12
- import { PermissionConsumer } from '@wavemaker/app-rn-runtime/runtime/services/device/permission-service';
13
12
  export class WmBarcodescannerState extends BaseComponentState {}
14
13
  export default class WmBarcodescanner extends BaseComponent {
15
14
  constructor(props) {
16
15
  super(props, DEFAULT_CLASS, new WmBarcodescannerProps());
17
- _defineProperty(this, "scanPluginService", null);
18
- _defineProperty(this, "permissionService", null);
19
16
  _defineProperty(this, "scanner", null);
20
17
  }
21
18
  onScanTap() {
22
19
  const params = {
23
- barcodeFormat: this.state.props.barcodeformat,
24
- scanPluginService: this.scanPluginService,
25
- permissionService: this.permissionService
20
+ barcodeFormat: this.state.props.barcodeformat
26
21
  };
27
22
  this.scanner.scanBarcode(params).then(res => {
28
23
  this.updateState({
@@ -41,25 +36,22 @@ export default class WmBarcodescanner extends BaseComponent {
41
36
  accessibilityrole: props.accessibilityrole,
42
37
  hint: props.hint
43
38
  };
44
- return /*#__PURE__*/React.createElement(PermissionConsumer, null, permissionService => {
45
- this.permissionService = permissionService;
46
- return /*#__PURE__*/React.createElement(ScanPluginConsumer, null, scanPluginService => {
47
- this.scanPluginService = scanPluginService;
48
- return /*#__PURE__*/React.createElement(ScanConsumer, null, scanService => {
49
- this.scanner = scanService;
50
- return /*#__PURE__*/React.createElement(View, {
51
- style: this.styles.root,
52
- onLayout: event => this.handleLayout(event)
53
- }, this._background, /*#__PURE__*/React.createElement(WmButton, _extends({
54
- id: this.getTestId('button'),
55
- iconclass: props.iconclass,
56
- styles: this.styles.button,
57
- onTap: this.onScanTap.bind(this),
58
- caption: props.caption,
59
- iconsize: props.iconsize
60
- }, accessibilityProps)));
61
- });
62
- });
39
+ return /*#__PURE__*/React.createElement(ScanConsumer, null, scanService => {
40
+ this.scanner = scanService;
41
+ return /*#__PURE__*/React.createElement(View, _extends({
42
+ style: this.styles.root,
43
+ onLayout: event => this.handleLayout(event)
44
+ }, accessibilityProps), this._background, /*#__PURE__*/React.createElement(WmButton, {
45
+ id: this.getTestId('button'),
46
+ iconclass: props.iconclass,
47
+ styles: this.styles.button,
48
+ onTap: this.onScanTap.bind(this),
49
+ caption: props.caption,
50
+ iconsize: props.iconsize,
51
+ accessibilitylabel: props.accessibilitylabel,
52
+ hint: props.hint,
53
+ accessibilityrole: props.accessibilityrole
54
+ }));
63
55
  });
64
56
  }
65
57
  }