@wavemaker/app-rn-runtime 11.12.0-next.28188 → 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.
- package/components/basic/audio/audio.component.js +47 -52
- package/components/basic/audio/audio.component.js.map +1 -1
- package/components/basic/video/video.component.js +62 -65
- package/components/basic/video/video.component.js.map +1 -1
- package/components/container/container.component.js +2 -5
- package/components/container/container.component.js.map +1 -1
- package/components/device/barcodescanner/barcodescanner.component.js +18 -26
- package/components/device/barcodescanner/barcodescanner.component.js.map +1 -1
- package/components/device/camera/camera.component.js +19 -28
- package/components/device/camera/camera.component.js.map +1 -1
- package/components/input/fileupload/fileupload.component.js +13 -17
- package/components/input/fileupload/fileupload.component.js.map +1 -1
- package/components/navigation/appnavbar/appnavbar.component.js +2 -5
- package/components/navigation/appnavbar/appnavbar.component.js.map +1 -1
- package/components/page/left-panel/left-panel.component.js +2 -3
- package/components/page/left-panel/left-panel.component.js.map +1 -1
- package/components/page/page-content/page-content.component.js +35 -24
- package/components/page/page-content/page-content.component.js.map +1 -1
- package/components/page/tabbar/tabbar.component.js +5 -7
- package/components/page/tabbar/tabbar.component.js.map +1 -1
- package/core/base.component.js +2 -1
- package/core/base.component.js.map +1 -1
- package/core/device/calendar-service.js +1 -7
- package/core/device/calendar-service.js.map +1 -1
- package/core/device/camera-service.js +0 -6
- package/core/device/camera-service.js.map +1 -1
- package/core/device/contacts-service.js +1 -7
- package/core/device/contacts-service.js.map +1 -1
- package/core/device/location-service.js +1 -7
- package/core/device/location-service.js.map +1 -1
- package/core/device/scan-service.js +0 -6
- package/core/device/scan-service.js.map +1 -1
- package/core/utils.js +6 -0
- package/core/utils.js.map +1 -1
- package/npm-shrinkwrap.json +115 -111
- package/package-lock.json +115 -111
- package/package.json +2 -2
- package/runtime/services/device/calendar-service.js +5 -9
- package/runtime/services/device/calendar-service.js.map +1 -1
- package/runtime/services/device/camera-service.js +22 -39
- package/runtime/services/device/camera-service.js.map +1 -1
- package/runtime/services/device/contacts-service.js +5 -6
- package/runtime/services/device/contacts-service.js.map +1 -1
- package/runtime/services/device/location-service.js +4 -4
- package/runtime/services/device/location-service.js.map +1 -1
- package/runtime/services/device/permissions.js +39 -34
- package/runtime/services/device/permissions.js.map +1 -1
- package/runtime/services/device/scan-service.js +3 -4
- package/runtime/services/device/scan-service.js.map +1 -1
- package/variables/device/calendar/create-event.operation.js +1 -12
- package/variables/device/calendar/create-event.operation.js.map +1 -1
- package/variables/device/calendar/delete-event.operation.js +1 -12
- package/variables/device/calendar/delete-event.operation.js.map +1 -1
- package/variables/device/calendar/get-events.operation.js +1 -12
- package/variables/device/calendar/get-events.operation.js.map +1 -1
- package/variables/device/camera/capture-image.operation.js +1 -8
- package/variables/device/camera/capture-image.operation.js.map +1 -1
- package/variables/device/camera/capture-video.operation.js +1 -7
- package/variables/device/camera/capture-video.operation.js.map +1 -1
- package/variables/device/contacts/get-contacts.operation.js +1 -12
- package/variables/device/contacts/get-contacts.operation.js.map +1 -1
- package/variables/device/device/current-geo-position.operation.js +1 -12
- package/variables/device/device/current-geo-position.operation.js.map +1 -1
- package/variables/device/file/upload-file.operation.js +3 -17
- package/variables/device/file/upload-file.operation.js.map +1 -1
- package/variables/device/scan/scan.operation.js +1 -12
- package/variables/device/scan/scan.operation.js.map +1 -1
- package/core/device/av-service.js +0 -8
- package/core/device/av-service.js.map +0 -1
- package/core/device/fileupload-service.js +0 -8
- package/core/device/fileupload-service.js.map +0 -1
- package/runtime/services/device/permission-service.js +0 -5
- 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 &&
|
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(
|
208
|
-
this.
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
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":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAyBC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACnE,OAAOC,MAAM,MAAM,gCAAgC;AACnD,SAASC,QAAQ,QAAQ,WAAW;AACpC,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AACjG,OAAOC,YAAY,MAAM,eAAe;AACxC,SAASC,aAAa,QAAuB,gBAAgB;AAC7D,OAAOC,MAAM,MAAM,wBAAwB;AAC3C,SAASC,gBAAgB,QAAQ,sCAAsC;AACvE,SAASC,cAAc,QAAQ,gCAAgC;AAE/D,SAASC,aAAa,QAAsB,kDAAkD;AAE9F,OAAO,MAAMC,YAAY,SAASP,kBAAkB,CAAe;EAAAQ,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,kBACvD,KAAK;IAAAA,eAAA,sBACD,CAAC;IAAAA,eAAA,oBACH,CAAC;EAAA;AACf;AAEA,eAAe,MAAMC,OAAO,SAASZ,aAAa,CAA4C;EAQ5FS,WAAWA,CAACI,KAAmB,EAAE;IAC/B,KAAK,CAACA,KAAK,EAAEV,aAAa,EAAE,IAAID,YAAY,CAAC,CAAC,EAAE,IAAIM,YAAY,CAAC,CAAC,CAAC;IAACG,eAAA,kBARpD,KAAK;IACvB;IAAAA,eAAA,gBACqB,IAAI;IAAAA,eAAA;IAAAA,eAAA,qBAEJ,CAAC;IAAAA,eAAA,uBACe,IAAI;EAIzC;EAEAG,gBAAgBA,CAACC,IAAY,EAAEC,IAAS,EAAEC,IAAS,EAAQ;IACvD,KAAK,CAACH,gBAAgB,CAACC,IAAI,EAAEC,IAAI,EAAEC,IAAI,CAAC;IACxC,QAAOF,IAAI;MACT,KAAK,WAAW;QAAE;UAChB,IAAI,IAAI,CAACG,WAAW,EAAE;YACpBC,OAAO,CAACC,OAAO,CAAC,CAAC,CACdC,IAAI,CAAC;cAAA,IAAAC,WAAA;cAAA,QAAAA,WAAA,GAAM,IAAI,CAACC,KAAK,cAAAD,WAAA,uBAAVA,WAAA,CAAYE,WAAW,CAAC,CAAC;YAAA,EAAC,CACrCH,IAAI,CAAC,MAAM;cACV,IAAI,CAACE,KAAK,GAAG,IAAW;cACxB,IAAI,CAACE,YAAY,CAAC,CAAC,CAAC;cACpB,IAAI,IAAI,CAACC,KAAK,CAACC,OAAO,IACjB,IAAI,CAACD,KAAK,CAACb,KAAK,CAACe,QAAQ,EAAE;gBAC9B,IAAI,CAACC,IAAI,CAAC,CAAC;cACb;YACF,CAAC,CAAC;UACN;QACF;QACA;MACA,KAAK,UAAU;QACb,IAAI,IAAI,CAACX,WAAW,IAAIF,IAAI,EAAE;UAC5B,IAAI,CAACa,IAAI,CAAC,CAAC;QACb;IACJ;EACJ;EAEAC,SAASA,CAAA,EAAG;IACV,MAAMC,MAAM,GAAG,IAAI,CAACC,SAAS,IACxB,IAAI,CAACN,KAAK,CAACb,KAAK,CAACoB,SAAS,IAC1B,IAAI,CAACD,SAAS,CAAC,IAAI,CAACN,KAAK,CAACb,KAAK,CAACoB,SAAmB,CAAC;IACzD,IAAIlC,QAAQ,CAACgC,MAAM,CAAC,EAAE;MACpB,OAAO;QACLG,GAAG,EAAEH;MACP,CAAC;IACH;IACA,OAAOA,MAAM;EACf;EAEAI,UAAUA,CAACC,GAAW,EAAEC,MAAc,EAAGC,GAAG,GAAG,GAAG,EAAU;IAC1D,IAAIF,GAAG,CAACG,MAAM,GAAGF,MAAM,EAAE;MACvB,OAAO,IAAI,CAACF,UAAU,CAACG,GAAG,GAAGF,GAAG,EAAEC,MAAM,EAAEC,GAAG,CAAC;IAChD;IACA,OAAOF,GAAG;EACZ;EAEAI,UAAUA,CAACC,CAAS,EAAE;IACpB,MAAMC,CAAC,GAAGD,CAAC,GAAC,EAAE;IACd,MAAME,IAAI,GAAIC,IAAI,CAACC,KAAK,CAACH,CAAC,CAAC;IAC3B,MAAMI,OAAO,GAAGF,IAAI,CAACG,KAAK,CAAC,CAACL,CAAC,GAAGC,IAAI,IAAI,EAAE,CAAC;IAC3C,OAAO,IAAI,CAACR,UAAU,CAACQ,IAAI,GAAE,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAACR,UAAU,CAACW,OAAO,GAAE,EAAE,EAAE,CAAC,CAAC;EAC7E;EAEAE,QAAQA,CAAA,EAAG;IACT,IAAI,CAACC,WAAW,CAAC,CAAC;IAClB,IAAI,CAACC,KAAK,GAAGC,WAAW,CAAC,MAAM;MAC7B,IAAI,IAAI,CAACzB,KAAK,CAAC0B,WAAW,IAAI,IAAI,CAAC1B,KAAK,CAAC2B,SAAS,EAAE;QAClD,IAAI,IAAI,CAAC3B,KAAK,CAACb,KAAK,CAACyC,IAAI,EAAE;UACzB,IAAI,CAACC,MAAM,CAAC,CAAC;QACf,CAAC,MAAM;UACL,IAAI,CAACC,IAAI,CAAC,CAAC;QACb;QACA;MACF;MACA,IAAI,CAACC,QAAQ,CAAC;QACZL,WAAW,EAAGR,IAAI,CAACc,GAAG,CAAC,IAAI,CAACC,UAAU,GAAG,IAAI,CAACjC,KAAK,CAAC0B,WAAW,GAAG,CAAC,EAAE,CAAC;MACxE,CAAiB,CAAC;MAClB,IAAI,CAACO,UAAU,GAAG,CAAC;IACrB,CAAC,EAAE,IAAI,CAAC;EACV;EAEAV,WAAWA,CAAA,EAAG;IACZW,aAAa,CAAC,IAAI,CAACV,KAAK,CAAC;EAC3B;EAEAM,IAAIA,CAAA,EAAG;IAAA,IAAAK,YAAA;IACL,IAAI,CAACC,KAAK,CAAC,CAAC;IACZ,CAAAD,YAAA,OAAI,CAACtC,KAAK,cAAAsC,YAAA,eAAVA,YAAA,CAAYrC,WAAW,CAAC,CAAC;IACzB,IAAI,CAACD,KAAK,GAAG,IAAW;IACxB,IAAI,CAAC0B,WAAW,CAAC,CAAC;IAClB,IAAI,CAACU,UAAU,GAAG,CAAC;IACnB,IAAI,CAACI,WAAW,CAAC;MACfX,WAAW,EAAE;IACf,CAAiB,CAAC;EACpB;EAEAG,MAAMA,CAAA,EAAG;IACP,IAAI,CAACQ,WAAW,CAAC;MACfX,WAAW,EAAE;IACf,CAAC,EAAkB,MAAM;MACvB,IAAI,CAAC7B,KAAK,CAACyC,WAAW,CAAC,CAAC;IAC1B,CAAC,CAAC;EACJ;EAEAnC,IAAIA,CAAA,EAAG;IACL,IAAIxB,gBAAgB,CAAC,CAAC,IACjB,IAAI,CAAC4D,OAAO,IACX,IAAI,CAACvC,KAAK,CAACC,OAAO,IAAI,IAAI,CAACJ,KAAM,EAAE;MACvC;IACF;IACA,IAAI,IAAI,CAACA,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAAC2C,SAAS,CAAC,CAAC;MACtB,IAAI,CAAClB,QAAQ,CAAC,CAAC;MACf,IAAI,CAACe,WAAW,CAAC;QACfpC,OAAO,EAAE;MACX,CAAiB,CAAC;IACpB,CAAC,MAAM;MACL,IAAI,CAACsC,OAAO,GAAG,IAAI;MACnB,MAAMlC,MAAM,GAAG,IAAI,CAACD,SAAS,CAAC,CAAC;MAC/BC,MAAM,IAAI,IAAI,CAACoC,YAAY,CAACC,WAAW,CAACrC,MAAM,EAAE;QAC9CsC,OAAO,EAAE,IAAI,CAAC3C,KAAK,CAACb,KAAK,CAACyD;MAC5B,CAAC,CAAC,CACCjD,IAAI,CAAEkD,GAAQ,IAAK;QAClB,IAAI,CAAChD,KAAK,GAAGgD,GAAG,CAAChD,KAAK;QACtB,IAAI,CAACA,KAAK,CAAC2C,SAAS,CAAC,CAAC;QACtB,IAAI,CAAC3C,KAAK,CAACiD,cAAc,CAAC,CAAC,CAACnD,IAAI,CAAEoD,MAAW,IAAK;UAChD,IAAI,CAACV,WAAW,CAAC;YACfX,WAAW,EAAE,CAAC;YACdC,SAAS,EAAET,IAAI,CAACG,KAAK,CAAC0B,MAAM,CAAC,gBAAgB,CAAC,GAAC,IAAI;UACrD,CAAC,EAAkB,MAAM,IAAI,CAACzB,QAAQ,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC;QACF,IAAI,CAACe,WAAW,CAAC;UACfpC,OAAO,EAAE;QACX,CAAiB,CAAC;MACpB,CAAC,CAAC,CAAC+C,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAACrD,IAAI,CAAC,MAAM;QAC5B,IAAI,CAAC4C,OAAO,GAAG,KAAK;MACtB,CAAC,CAAC;IACN;EACF;EAEAH,KAAKA,CAAA,EAAG;IAAA,IAAAa,YAAA;IACN,IAAI,CAAC1B,WAAW,CAAC,CAAC;IAClB,CAAA0B,YAAA,OAAI,CAACpD,KAAK,cAAAoD,YAAA,eAAVA,YAAA,CAAYC,UAAU,CAAC,CAAC,CAACvD,IAAI,CAAC,MAAM;MAClC,IAAI,CAAC0C,WAAW,CAAC;QACfpC,OAAO,EAAE;MACX,CAAiB,CAAC;IACpB,CAAC,CAAC;EACJ;EAEAkD,IAAIA,CAAA,EAAG;IACL,IAAI,CAACtD,KAAK,CAACuD,cAAc,CAAC;MACxBT,OAAO,EAAE;IACX,CAAC,CAAC,CAAChD,IAAI,CAAC,MAAM;MACZ,IAAI,CAAC0C,WAAW,CAAC;QACflD,KAAK,EAAE;UACLyD,KAAK,EAAE;QACT;MACF,CAAiB,CAAC;IACpB,CAAC,CAAC;EACJ;EAEAS,MAAMA,CAAA,EAAG;IACP,IAAI,CAACxD,KAAK,CAACuD,cAAc,CAAC;MACxBT,OAAO,EAAE;IACX,CAAC,CAAC,CAAChD,IAAI,CAAC,MAAM;MACZ,IAAI,CAAC0C,WAAW,CAAC;QACflD,KAAK,EAAE;UACLyD,KAAK,EAAE;QACT;MACF,CAAiB,CAAC;IACpB,CAAC,CAAC;EACJ;EAEA7C,YAAYA,CAACuD,IAAY,EAAE;IACzB,IAAIA,IAAI,KAAK,IAAI,CAACtD,KAAK,CAAC0B,WAAW,EAAE;MAAA,IAAA6B,YAAA;MACnC,IAAI,CAACtB,UAAU,GAAGqB,IAAI,GAAG,IAAI,CAACtD,KAAK,CAAC0B,WAAW;MAC/C,CAAA6B,YAAA,OAAI,CAAC1D,KAAK,cAAA0D,YAAA,eAAVA,YAAA,CAAYC,gBAAgB,CAACF,IAAI,GAAG,IAAI,CAAC;IAC3C;EACF;EAEAG,iBAAiBA,CAAA,EAAS;IACxB,KAAK,CAACA,iBAAiB,CAAC,CAAC;IACzB;IACAC,UAAU,CAAC,MAAM;MACf,IAAI,IAAI,CAAC1D,KAAK,CAACb,KAAK,CAACe,QAAQ,EAAE;QAC7B,IAAI,CAACC,IAAI,CAAC,CAAC;MACb;IACF,CAAC,EAAE,IAAI,CAAC;EACV;EAEAwD,oBAAoBA,CAAA,EAAS;IAC3B,KAAK,CAACA,oBAAoB,CAAC,CAAC;IAC5B,IAAI,CAAC7B,IAAI,CAAC,CAAC;EACb;EAEO8B,kBAAkBA,CAAA,EAAoB;IACzC,OACEhF,cAAc,CAAC,IAAI,CAACiF,KAAK,EAAE,CAAC,CAAC,EAAsB;MACjD,GAAG,IAAI,CAACC,MAAM,CAACC,IAAI;MACnB,GAAG,IAAI,CAACD,MAAM,CAACE,YAAY,CAACC;IAC9B,CAAC,CAAC;EAER;EACAC,YAAYA,CAAC/E,KAAmB,EAAE;IAChC,OAAOA,KAAK,CAACgF,QAAQ,gBACnBnG,KAAA,CAAAoG,aAAA,CAACvF,aAAa,QACZ4D,YAAiB,IAAK;MACtB,IAAI,CAACA,YAAY,GAAGA,YAAY;MAChC,oBAAOzE,KAAA,CAAAoG,aAAA,CAACjG,IAAI;QACZkG,KAAK,EAAE,IAAI,CAACP,MAAM,CAACG,IAAK;QACxBK,QAAQ,EAAGC,KAAK,IAAK,IAAI,CAACC,YAAY,CAACD,KAAK;MAAE,GAE7C,IAAI,CAACE,WAAW,EAChB,CAAC,IAAI,CAACzE,KAAK,CAACC,OAAO,gBAAIjC,KAAA,CAAAoG,aAAA,CAAC1F,MAAM;QAC7BgG,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,MAAM,CAAE;QAC3BtF,IAAI,EAAEF,KAAK,CAACE,IAAI,GAAG,OAAQ;QAC3ByE,MAAM,EAAE,IAAI,CAACA,MAAM,CAACc,QAAS;QAC7BC,SAAS,EAAC,wBAAwB;QAClCC,KAAK,EAAEA,CAAA,KAAM,IAAI,CAAC3E,IAAI,CAAC;MAAE,CAAS,CAAC,gBACrCnC,KAAA,CAAAoG,aAAA,CAAC1F,MAAM;QAACW,IAAI,EAAEF,KAAK,CAACE,IAAI,GAAG,QAAS;QAClCqF,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,OAAO,CAAE;QAC5BE,SAAS,EAAC,mBAAmB;QAC7Bf,MAAM,EAAE,IAAI,CAACA,MAAM,CAACiB,SAAU;QAC9BD,KAAK,EAAEA,CAAA,KAAM,IAAI,CAAC1C,KAAK,CAAC;MAAE,CAAS,CAAE,EAErC,IAAI,CAAC4C,aAAa,GAAG,IAAI,CAACpB,kBAAkB,CAAC,CAAC,gBAC9C5F,KAAA,CAAAoG,aAAA,CAAApG,KAAA,CAAAiH,QAAA,qBACEjH,KAAA,CAAAoG,aAAA,CAAClG,IAAI;QAACmG,KAAK,EAAE,IAAI,CAACP,MAAM,CAACC;MAAK,GAC7B,GAAG,IAAI,CAACjD,UAAU,CAAC,IAAI,CAACd,KAAK,CAAC0B,WAAW,CAAC,MAAM,IAAI,CAACZ,UAAU,CAAC,IAAI,CAACd,KAAK,CAAC2B,SAAS,CAAC,EAChF,CAAC,eACP3D,KAAA,CAAAoG,aAAA,CAAChG,MAAM;QACP8G,MAAM,EAAE,IAAI,CAACP,SAAS,CAAC,QAAQ,CAAE;QACjCQ,IAAI,EAAE,CAAE;QACRd,KAAK,EAAE;UAACe,IAAI,EAAE;QAAC,CAAE;QACjBC,KAAK,EAAE,IAAI,CAACrF,KAAK,CAAC0B,WAAY;QAC9B4D,QAAQ,EAAE3G,gBAAgB,CAAC,CAAE;QAC7B4G,aAAa,EAAE,IAAI,CAACxF,YAAY,CAACyF,IAAI,CAAC,IAAI,CAAE;QAC5CC,YAAY,EAAE,CAAE;QAChBC,QAAQ,EAAE,IAAI,CAACC,KAAK,KAAK1H,QAAQ,CAAC2H,EAAE,IAAE,SAAS,IAAI3H,QAAQ,CAAC2H,EAAE,IAAE,KAAK,CAAE;QACvEC,YAAY,EAAE,IAAI,CAAC7F,KAAK,CAAC2B,SAAS,IAAI,CAAE;QACxCmE,cAAc,EAAE,IAAI,CAAChC,MAAM,CAACiC,MAAM,CAACC,KAAK,CAACC,eAA0B;QACnEC,qBAAqB,EAAE,IAAI,CAACpC,MAAM,CAACiC,MAAM,CAACI,YAAY,CAACF,eAA0B;QACjFG,qBAAqB,EAAE,IAAI,CAACtC,MAAM,CAACiC,MAAM,CAACM,YAAY,CAACJ;MAA0B,CAChF,CACD,CAAC,EAEJ,CAAC9G,KAAK,CAACyD,KAAK,gBAAI5E,KAAA,CAAAoG,aAAA,CAAC1F,MAAM;QAACW,IAAI,EAAEF,KAAK,CAACE,IAAI,GAAG,OAAQ;QAClDqF,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,MAAM,CAAE;QAC3BE,SAAS,EAAC,uBAAuB;QACjCf,MAAM,EAAE,IAAI,CAACA,MAAM,CAACwC,QAAS;QAC7BxB,KAAK,EAAEA,CAAA,KAAM,IAAI,CAAC3B,IAAI,CAAC;MAAE,CAAS,CAAC,gBACpCnF,KAAA,CAAAoG,aAAA,CAAC1F,MAAM;QAACW,IAAI,EAAEF,KAAK,CAACE,IAAI,GAAG,SAAU;QACpCqF,EAAE,EAAE,IAAI,CAACC,SAAS,CAAC,QAAQ,CAAE;QAC7BE,SAAS,EAAC,wBAAwB;QAClCf,MAAM,EAAE,IAAI,CAACA,MAAM,CAACyC,UAAW;QAC/BzB,KAAK,EAAEA,CAAA,KAAM,IAAI,CAACzB,MAAM,CAAC;MAAE,CAAS,CAClC,CAAC;IACP,CACe,CAAC,GAAI,IAAI;EAC5B;AACF","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,7 +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
27
|
}
|
29
28
|
getSource(path) {
|
30
29
|
if (!path) {
|
@@ -48,7 +47,10 @@ export default class WmVideo extends BaseComponent {
|
|
48
47
|
accessibilityrole: 'image'
|
49
48
|
};
|
50
49
|
return /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
|
51
|
-
onPress: () =>
|
50
|
+
onPress: () => {
|
51
|
+
var _this$player;
|
52
|
+
return (_this$player = this.player) === null || _this$player === void 0 ? void 0 : _this$player.play();
|
53
|
+
}
|
52
54
|
}, /*#__PURE__*/React.createElement(Image, _extends({}, this.getTestProps('video_poster'), {
|
53
55
|
style: {
|
54
56
|
position: 'absolute',
|
@@ -95,7 +97,6 @@ export default class WmVideo extends BaseComponent {
|
|
95
97
|
this.player.showNowPlayingNotification = showNowPlayingNotification;
|
96
98
|
}
|
97
99
|
componentDidMount() {
|
98
|
-
var _this$videoService;
|
99
100
|
super.componentDidMount();
|
100
101
|
const {
|
101
102
|
mp4format,
|
@@ -103,7 +104,7 @@ export default class WmVideo extends BaseComponent {
|
|
103
104
|
autoplay
|
104
105
|
} = this.state.props;
|
105
106
|
const videoSource = this.getSource(mp4format || webmformat);
|
106
|
-
this.player =
|
107
|
+
this.player = createVideoPlayer(videoSource);
|
107
108
|
this.player.addListener('playingChange', this.playingStatusChange.bind(this));
|
108
109
|
this.player.addListener('statusChange', this.playerReadyStatusChange.bind(this));
|
109
110
|
this.initializeProps();
|
@@ -137,66 +138,62 @@ export default class WmVideo extends BaseComponent {
|
|
137
138
|
} = this.state;
|
138
139
|
const isPlaying = playStarted || this.state.props.autoplay;
|
139
140
|
const showOverlay = !showdefaultvideoposter && !this.state.videoPosterDismissed;
|
140
|
-
return /*#__PURE__*/React.createElement(
|
141
|
-
this.
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
color: 'white'
|
197
|
-
}
|
198
|
-
}, "\u25B6"))) : /*#__PURE__*/React.createElement(React.Fragment, null));
|
199
|
-
});
|
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
|
166
|
+
}
|
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));
|
200
197
|
}
|
201
198
|
}
|
202
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","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","_this$videoService","mp4format","webmformat","videoSource","videoService","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 { 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 { 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\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 = this.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 }\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 \n return (\n <VideoConsumer>\n {(videoService: any) => {\n this.videoService = videoService;\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":[]}
|
@@ -77,15 +77,12 @@ export default class WmContainer extends PartialHost {
|
|
77
77
|
}
|
78
78
|
getStickyHeaderTranslateY() {
|
79
79
|
var _this$appConfig, _this$containerRef;
|
80
|
-
const {
|
81
|
-
stickyContainerTranslateY
|
82
|
-
} = this.context;
|
83
80
|
const isEdgeToEdgeApp = !!((_this$appConfig = this.appConfig) !== null && _this$appConfig !== void 0 && (_this$appConfig = _this$appConfig.edgeToEdgeConfig) !== null && _this$appConfig !== void 0 && _this$appConfig.isEdgeToEdgeApp);
|
84
81
|
(_this$containerRef = this.containerRef) === null || _this$containerRef === void 0 || (_this$containerRef = _this$containerRef.current) === null || _this$containerRef === void 0 || _this$containerRef.measure((_x = 0, _y = 0, _width = 0, _height = 0, px = 0, py = 0) => {
|
85
82
|
var _this$insets;
|
86
83
|
const topInsetsInYposition = Platform.OS == 'ios' && !isEdgeToEdgeApp ? ((_this$insets = this.insets) === null || _this$insets === void 0 ? void 0 : _this$insets.top) || 0 : 0;
|
87
|
-
if (stickyContainerTranslateY) {
|
88
|
-
stickyContainerTranslateY.value = py - topInsetsInYposition;
|
84
|
+
if (this.context && this.context.stickyContainerTranslateY) {
|
85
|
+
this.context.stickyContainerTranslateY.value = py - topInsetsInYposition;
|
89
86
|
this.updateState({
|
90
87
|
stickyContainerVisibility: true
|
91
88
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","View","Platform","Animated","WmContainerProps","DEFAULT_CLASS","Tappable","Animatedview","PartialHost","PartialHostState","createSkeleton","ScrollView","StickyWrapperContext","SafeAreaInsetsContext","StickyContainer","getParentStyles","injector","WmContainerState","constructor","args","_defineProperty","WmContainer","props","get","top","bottom","left","right","containerRef","createRef","stickyContainerOpacity","Value","subscribe","_event","sticky","setTimeout","getStickyHeaderTranslateY","getBackground","_showSkeleton","_background","renderSkeleton","showskeletonchildren","_this$props","dimensions","width","styles","root","undefined","height","skeletonStyles","skeleton","text","theme","createElement","style","opacity","_extends","getTestPropsForAction","target","disableTouchEffect","state","disabletoucheffect","content","renderContent","_this$appConfig","_this$containerRef","stickyContainerTranslateY","context","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","current","measure","_x","_y","_width","_height","px","py","_this$insets","topInsetsInYposition","OS","insets","value","updateState","stickyContainerVisibility","componentDidUpdate","_prevProps","prevState","timing","toValue","delay","useNativeDriver","start","renderStickyContent","positioningStyles","Fragment","component","backgroundColor","positionStyles","show","ref","renderWidget","isSticky","Consumer","entryanimation","animation","animationdelay","onLayout","event","handleLayout","scrollable","onScroll","notify","scrollEventThrottle"],"sources":["container.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, View, ViewStyle, Platform, Animated } from 'react-native';\nimport WmContainerProps from './container.props';\nimport { DEFAULT_CLASS, WmContainerStyles } from './container.styles';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport { PartialHost, PartialHostState } from './partial-host.component';\nimport { createSkeleton } from '../basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../basic/skeleton/skeleton.styles';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { StickyWrapperContextType, StickyWrapperContext } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { EdgeInsets, SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport { StickyContainer } from '@wavemaker/app-rn-runtime/core/components/sticky-container.component';\nimport { getParentStyles } from '@wavemaker/app-rn-runtime/core/components/sticky-container.styles';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\nexport class WmContainerState extends PartialHostState<WmContainerProps> {\n isPartialLoaded = false;\n stickyContainerVisibility = false;\n}\n\nexport default class WmContainer extends PartialHost<WmContainerProps, WmContainerState, WmContainerStyles> {\n static contextType = StickyWrapperContext;\n private containerRef: React.RefObject<View>;\n private stickyContainerOpacity: Animated.Value;\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n insets: EdgeInsets | null = {\n top: 0, bottom: 0, left: 0, right: 0\n };\n\n constructor(props: WmContainerProps) {\n super(props, DEFAULT_CLASS, new WmContainerProps(), new WmContainerState());\n this.containerRef = React.createRef();\n this.stickyContainerOpacity = new Animated.Value(1);\n\n this.subscribe('updateStickyHeaders', (_event: any) => {\n if(this.props.sticky){\n setTimeout(()=>{\n this.getStickyHeaderTranslateY();\n }, 500);\n }\n })\n }\n\n getBackground(): React.JSX.Element | null {\n return this._showSkeleton ? null : this._background\n } \n \n public renderSkeleton(props: WmContainerProps): React.ReactNode {\n if(!props.showskeletonchildren) {\n const dimensions = {\n width: this.styles.root.width ? '100%' : undefined,\n height: this.styles.root.height ? '100%' : undefined\n }; \n const skeletonStyles: WmSkeletonStyles = this.props?.styles?.skeleton || { root: {}, text: {} } as WmSkeletonStyles\n return createSkeleton(this.theme, skeletonStyles, {\n ...this.styles.root\n }, (<View style={[this.styles.root, { opacity: 0 }]}>\n <Tappable {...this.getTestPropsForAction()} target={this} styles={dimensions} disableTouchEffect={this.state.props.disabletoucheffect}>\n <View style={[dimensions as ViewStyle, this.styles.content]}>{this.renderContent(props)}</View>\n </Tappable>\n\n </View>))\n }\n return null;\n }\n\n public getStickyHeaderTranslateY(){\n const { stickyContainerTranslateY } = this.context as StickyWrapperContextType;\n const isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n this.containerRef?.current?.measure((_x = 0, _y = 0, _width = 0, _height = 0, px = 0, py = 0)=>{\n const topInsetsInYposition = (Platform.OS == 'ios' && !isEdgeToEdgeApp) ? (this.insets?.top || 0): 0\n if(stickyContainerTranslateY) {\n stickyContainerTranslateY.value = py - topInsetsInYposition ;\n this.updateState({ stickyContainerVisibility: true} as WmContainerState); \n }\n })\n }\n\n componentDidUpdate(_prevProps: any, prevState: any) {\n if (prevState.stickyContainerVisibility !== this.state.stickyContainerVisibility) {\n Animated.timing(this.stickyContainerOpacity, {\n toValue: this.state.stickyContainerVisibility ? 0 : 1,\n delay: 500,\n useNativeDriver: true\n }).start();\n }\n }\n\n private renderStickyContent(props: WmContainerProps, dimensions: ViewStyle, styles: ViewStyle) {\n const { stickyContainerVisibility } = this.state;\n const { positioningStyles } = getParentStyles(this);\n\n return (\n <>\n {stickyContainerVisibility ? (\n <StickyContainer\n component={this}\n theme={this.theme}\n style={[\n this.styles.sticky,\n { backgroundColor: styles.backgroundColor }\n ]}\n positionStyles={positioningStyles}\n show={props.show as boolean}\n >\n <View style={[dimensions as ViewStyle, { backgroundColor: styles.backgroundColor }, this.styles.content]}>\n {this.renderContent(props)}\n </View>\n </StickyContainer>\n ) : <></>}\n <Animated.View \n style={[\n dimensions as ViewStyle, \n { opacity: this.stickyContainerOpacity }, \n this.styles.content\n ]} \n ref={this.containerRef}\n >\n {this.renderContent(props)}\n </Animated.View>\n </>\n );\n }\n\n renderWidget(props: WmContainerProps) {\n const dimensions: ViewStyle = {\n width: this.styles.root.width ? '100%' : undefined,\n height: this.styles.root.height ? '100%' : undefined\n };\n\n const styles = this._showSkeleton ? {\n ...this.styles.root,\n ...this.styles.skeleton.root\n } : this.styles.root;\n\n if (props.sticky) {\n this.isSticky = true;\n }\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n this.insets = insets;\n return (\n <Animatedview \n entryanimation={props.animation} \n delay={props.animationdelay} \n style={styles}\n onLayout={(event: LayoutChangeEvent, ref: React.RefObject<View>) => {\n this.handleLayout(event, ref);\n }}\n >\n {this.getBackground()}\n <Tappable \n {...this.getTestPropsForAction()} \n target={this} \n styles={dimensions} \n disableTouchEffect={this.state.props.disabletoucheffect}\n >\n {props.sticky ? (\n this.renderStickyContent(props, dimensions, styles)\n ) : !props.scrollable ? (\n <View style={[dimensions as ViewStyle, this.styles.content]}>\n {this.renderContent(props)}\n </View>\n ) : (\n <ScrollView \n style={[dimensions as ViewStyle, this.styles.content]}\n onScroll={(event) => this.notify('scroll', [event])}\n scrollEventThrottle={48}\n >\n {this.renderContent(props)}\n </ScrollView>\n )}\n </Tappable>\n </Animatedview>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["React","View","Platform","Animated","WmContainerProps","DEFAULT_CLASS","Tappable","Animatedview","PartialHost","PartialHostState","createSkeleton","ScrollView","StickyWrapperContext","SafeAreaInsetsContext","StickyContainer","getParentStyles","injector","WmContainerState","constructor","args","_defineProperty","WmContainer","props","get","top","bottom","left","right","containerRef","createRef","stickyContainerOpacity","Value","subscribe","_event","sticky","setTimeout","getStickyHeaderTranslateY","getBackground","_showSkeleton","_background","renderSkeleton","showskeletonchildren","_this$props","dimensions","width","styles","root","undefined","height","skeletonStyles","skeleton","text","theme","createElement","style","opacity","_extends","getTestPropsForAction","target","disableTouchEffect","state","disabletoucheffect","content","renderContent","_this$appConfig","_this$containerRef","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","current","measure","_x","_y","_width","_height","px","py","_this$insets","topInsetsInYposition","OS","insets","context","stickyContainerTranslateY","value","updateState","stickyContainerVisibility","componentDidUpdate","_prevProps","prevState","timing","toValue","delay","useNativeDriver","start","renderStickyContent","positioningStyles","Fragment","component","backgroundColor","positionStyles","show","ref","renderWidget","isSticky","Consumer","entryanimation","animation","animationdelay","onLayout","event","handleLayout","scrollable","onScroll","notify","scrollEventThrottle"],"sources":["container.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, View, ViewStyle, Platform, Animated } from 'react-native';\nimport WmContainerProps from './container.props';\nimport { DEFAULT_CLASS, WmContainerStyles } from './container.styles';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport { PartialHost, PartialHostState } from './partial-host.component';\nimport { createSkeleton } from '../basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../basic/skeleton/skeleton.styles';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { StickyWrapperContextType, StickyWrapperContext } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { EdgeInsets, SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport { StickyContainer } from '@wavemaker/app-rn-runtime/core/components/sticky-container.component';\nimport { getParentStyles } from '@wavemaker/app-rn-runtime/core/components/sticky-container.styles';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\nexport class WmContainerState extends PartialHostState<WmContainerProps> {\n isPartialLoaded = false;\n stickyContainerVisibility = false;\n}\n\nexport default class WmContainer extends PartialHost<WmContainerProps, WmContainerState, WmContainerStyles> {\n static contextType = StickyWrapperContext;\n private containerRef: React.RefObject<View>;\n private stickyContainerOpacity: Animated.Value;\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n insets: EdgeInsets | null = {\n top: 0, bottom: 0, left: 0, right: 0\n };\n\n constructor(props: WmContainerProps) {\n super(props, DEFAULT_CLASS, new WmContainerProps(), new WmContainerState());\n this.containerRef = React.createRef();\n this.stickyContainerOpacity = new Animated.Value(1);\n\n this.subscribe('updateStickyHeaders', (_event: any) => {\n if(this.props.sticky){\n setTimeout(()=>{\n this.getStickyHeaderTranslateY();\n }, 500);\n }\n })\n }\n\n getBackground(): React.JSX.Element | null {\n return this._showSkeleton ? null : this._background\n } \n \n public renderSkeleton(props: WmContainerProps): React.ReactNode {\n if(!props.showskeletonchildren) {\n const dimensions = {\n width: this.styles.root.width ? '100%' : undefined,\n height: this.styles.root.height ? '100%' : undefined\n }; \n const skeletonStyles: WmSkeletonStyles = this.props?.styles?.skeleton || { root: {}, text: {} } as WmSkeletonStyles\n return createSkeleton(this.theme, skeletonStyles, {\n ...this.styles.root\n }, (<View style={[this.styles.root, { opacity: 0 }]}>\n <Tappable {...this.getTestPropsForAction()} target={this} styles={dimensions} disableTouchEffect={this.state.props.disabletoucheffect}>\n <View style={[dimensions as ViewStyle, this.styles.content]}>{this.renderContent(props)}</View>\n </Tappable>\n\n </View>))\n }\n return null;\n }\n\n public getStickyHeaderTranslateY(){\n const isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n this.containerRef?.current?.measure((_x = 0, _y = 0, _width = 0, _height = 0, px = 0, py = 0)=>{\n const topInsetsInYposition = (Platform.OS == 'ios' && !isEdgeToEdgeApp) ? (this.insets?.top || 0): 0\n if((this.context) && (this.context as StickyWrapperContextType).stickyContainerTranslateY) {\n (this.context as StickyWrapperContextType).stickyContainerTranslateY.value = py - topInsetsInYposition ;\n this.updateState({ stickyContainerVisibility: true} as WmContainerState); \n }\n })\n }\n\n componentDidUpdate(_prevProps: any, prevState: any) {\n if (prevState.stickyContainerVisibility !== this.state.stickyContainerVisibility) {\n Animated.timing(this.stickyContainerOpacity, {\n toValue: this.state.stickyContainerVisibility ? 0 : 1,\n delay: 500,\n useNativeDriver: true\n }).start();\n }\n }\n\n private renderStickyContent(props: WmContainerProps, dimensions: ViewStyle, styles: ViewStyle) {\n const { stickyContainerVisibility } = this.state;\n const { positioningStyles } = getParentStyles(this);\n\n return (\n <>\n {stickyContainerVisibility ? (\n <StickyContainer\n component={this}\n theme={this.theme}\n style={[\n this.styles.sticky,\n { backgroundColor: styles.backgroundColor }\n ]}\n positionStyles={positioningStyles}\n show={props.show as boolean}\n >\n <View style={[dimensions as ViewStyle, { backgroundColor: styles.backgroundColor }, this.styles.content]}>\n {this.renderContent(props)}\n </View>\n </StickyContainer>\n ) : <></>}\n <Animated.View \n style={[\n dimensions as ViewStyle, \n { opacity: this.stickyContainerOpacity }, \n this.styles.content\n ]} \n ref={this.containerRef}\n >\n {this.renderContent(props)}\n </Animated.View>\n </>\n );\n }\n\n renderWidget(props: WmContainerProps) {\n const dimensions: ViewStyle = {\n width: this.styles.root.width ? '100%' : undefined,\n height: this.styles.root.height ? '100%' : undefined\n };\n\n const styles = this._showSkeleton ? {\n ...this.styles.root,\n ...this.styles.skeleton.root\n } : this.styles.root;\n\n if (props.sticky) {\n this.isSticky = true;\n }\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n this.insets = insets;\n return (\n <Animatedview \n entryanimation={props.animation} \n delay={props.animationdelay} \n style={styles}\n onLayout={(event: LayoutChangeEvent, ref: React.RefObject<View>) => {\n this.handleLayout(event, ref);\n }}\n >\n {this.getBackground()}\n <Tappable \n {...this.getTestPropsForAction()} \n target={this} \n styles={dimensions} \n disableTouchEffect={this.state.props.disabletoucheffect}\n >\n {props.sticky ? (\n this.renderStickyContent(props, dimensions, styles)\n ) : !props.scrollable ? (\n <View style={[dimensions as ViewStyle, this.styles.content]}>\n {this.renderContent(props)}\n </View>\n ) : (\n <ScrollView \n style={[dimensions as ViewStyle, this.styles.content]}\n onScroll={(event) => this.notify('scroll', [event])}\n scrollEventThrottle={48}\n >\n {this.renderContent(props)}\n </ScrollView>\n )}\n </Tappable>\n </Animatedview>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|