@wavemaker/app-rn-runtime 11.12.1-next.28204 → 11.12.1-rc.6244
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 +52 -47
- package/components/basic/audio/audio.component.js.map +1 -1
- package/components/basic/label/label.component.js +120 -5
- package/components/basic/label/label.component.js.map +1 -1
- package/components/basic/label/label.props.js +2 -0
- package/components/basic/label/label.props.js.map +1 -1
- package/components/basic/video/video.component.js +89 -64
- package/components/basic/video/video.component.js.map +1 -1
- package/components/container/tabs/tabs.component.js +1 -0
- package/components/container/tabs/tabs.component.js.map +1 -1
- package/components/container/wizard/wizard.component.js +77 -8
- package/components/container/wizard/wizard.component.js.map +1 -1
- package/components/container/wizard/wizard.styles.js +86 -1
- package/components/container/wizard/wizard.styles.js.map +1 -1
- package/components/device/barcodescanner/barcodescanner.component.js +29 -18
- package/components/device/barcodescanner/barcodescanner.component.js.map +1 -1
- package/components/device/camera/camera.component.js +28 -19
- package/components/device/camera/camera.component.js.map +1 -1
- package/components/input/chips/chips.component.js +50 -9
- package/components/input/chips/chips.component.js.map +1 -1
- package/components/input/chips/chips.props.js +11 -0
- package/components/input/chips/chips.props.js.map +1 -1
- package/components/input/chips/chips.styles.js +64 -0
- package/components/input/chips/chips.styles.js.map +1 -1
- package/components/input/fileupload/fileupload.component.js +17 -13
- package/components/input/fileupload/fileupload.component.js.map +1 -1
- package/components/page/page-content/page-content.component.js +18 -2
- package/components/page/page-content/page-content.component.js.map +1 -1
- package/components/page/tabbar/tabbar.component.js +4 -3
- package/components/page/tabbar/tabbar.component.js.map +1 -1
- package/core/base.component.js +13 -1
- package/core/base.component.js.map +1 -1
- package/core/device/av-service.js +8 -0
- package/core/device/av-service.js.map +1 -0
- package/core/device/calendar-service.js +7 -1
- package/core/device/calendar-service.js.map +1 -1
- package/core/device/camera-service.js +6 -0
- package/core/device/camera-service.js.map +1 -1
- package/core/device/contacts-service.js +7 -1
- package/core/device/contacts-service.js.map +1 -1
- package/core/device/fileupload-service.js +8 -0
- package/core/device/fileupload-service.js.map +1 -0
- package/core/device/location-service.js +7 -1
- package/core/device/location-service.js.map +1 -1
- package/core/device/openfile-service.js +10 -0
- package/core/device/openfile-service.js.map +1 -0
- package/core/device/scan-service.js +6 -0
- package/core/device/scan-service.js.map +1 -1
- package/core/utils.js +0 -6
- package/core/utils.js.map +1 -1
- package/npm-shrinkwrap.json +6937 -5978
- package/package-lock.json +6937 -5978
- package/package.json +4 -4
- package/runtime/services/device/calendar-service.js +9 -5
- package/runtime/services/device/calendar-service.js.map +1 -1
- package/runtime/services/device/camera-service.js +39 -22
- package/runtime/services/device/camera-service.js.map +1 -1
- package/runtime/services/device/contacts-service.js +6 -5
- 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/permission-service.js +5 -0
- package/runtime/services/device/permission-service.js.map +1 -0
- package/runtime/services/device/permissions.js +34 -39
- package/runtime/services/device/permissions.js.map +1 -1
- package/runtime/services/device/scan-service.js +4 -3
- package/runtime/services/device/scan-service.js.map +1 -1
- package/variables/device/calendar/create-event.operation.js +8 -2
- package/variables/device/calendar/create-event.operation.js.map +1 -1
- package/variables/device/calendar/delete-event.operation.js +8 -2
- package/variables/device/calendar/delete-event.operation.js.map +1 -1
- package/variables/device/calendar/get-events.operation.js +8 -2
- package/variables/device/calendar/get-events.operation.js.map +1 -1
- package/variables/device/camera/capture-image.operation.js +6 -2
- package/variables/device/camera/capture-image.operation.js.map +1 -1
- package/variables/device/camera/capture-video.operation.js +5 -2
- package/variables/device/camera/capture-video.operation.js.map +1 -1
- package/variables/device/contacts/get-contacts.operation.js +8 -2
- package/variables/device/contacts/get-contacts.operation.js.map +1 -1
- package/variables/device/device/current-geo-position.operation.js +8 -2
- package/variables/device/device/current-geo-position.operation.js.map +1 -1
- package/variables/device/file/open-file.operation.js +9 -9
- package/variables/device/file/open-file.operation.js.map +1 -1
- package/variables/device/file/upload-file.operation.js +5 -2
- package/variables/device/file/upload-file.operation.js.map +1 -1
- package/variables/device/scan/scan.operation.js +8 -2
- package/variables/device/scan/scan.operation.js.map +1 -1
- package/variables/http.service.js +1 -6
- package/variables/http.service.js.map +1 -1
@@ -4,7 +4,6 @@ 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';
|
8
7
|
import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
|
9
8
|
import WmVideoProps from './video.props';
|
10
9
|
import { DEFAULT_CLASS } from './video.styles';
|
@@ -12,6 +11,7 @@ import { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-r
|
|
12
11
|
import { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';
|
13
12
|
import { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';
|
14
13
|
import { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';
|
14
|
+
import { VideoConsumer } from '@wavemaker/app-rn-runtime/core/device/av-service';
|
15
15
|
export class WmVideoState extends BaseComponentState {
|
16
16
|
constructor(...args) {
|
17
17
|
super(...args);
|
@@ -24,6 +24,8 @@ 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);
|
27
29
|
}
|
28
30
|
getSource(path) {
|
29
31
|
if (!path) {
|
@@ -79,7 +81,7 @@ export default class WmVideo extends BaseComponent {
|
|
79
81
|
}
|
80
82
|
playerReadyStatusChange(statusObj) {
|
81
83
|
const videoReady = statusObj.status === 'readyToPlay';
|
82
|
-
if (this.state.props.autoplay && videoReady) {
|
84
|
+
if (this.state.props.autoplay && videoReady && this.player) {
|
83
85
|
this.player.play();
|
84
86
|
}
|
85
87
|
this.updateState({
|
@@ -87,6 +89,9 @@ export default class WmVideo extends BaseComponent {
|
|
87
89
|
});
|
88
90
|
}
|
89
91
|
initializeProps() {
|
92
|
+
if (!this.player) {
|
93
|
+
return;
|
94
|
+
}
|
90
95
|
const {
|
91
96
|
loop,
|
92
97
|
muted,
|
@@ -98,28 +103,40 @@ export default class WmVideo extends BaseComponent {
|
|
98
103
|
}
|
99
104
|
componentDidMount() {
|
100
105
|
super.componentDidMount();
|
106
|
+
}
|
107
|
+
initializePlayer(videoService) {
|
108
|
+
if (this.isPlayerInitialized || !videoService) {
|
109
|
+
return; // Player already initialized or videoService not available
|
110
|
+
}
|
101
111
|
const {
|
102
112
|
mp4format,
|
103
|
-
webmformat
|
104
|
-
autoplay
|
113
|
+
webmformat
|
105
114
|
} = this.state.props;
|
106
115
|
const videoSource = this.getSource(mp4format || webmformat);
|
107
|
-
this.player = createVideoPlayer(videoSource);
|
116
|
+
this.player = videoService.createVideoPlayer(videoSource);
|
108
117
|
this.player.addListener('playingChange', this.playingStatusChange.bind(this));
|
109
118
|
this.player.addListener('statusChange', this.playerReadyStatusChange.bind(this));
|
110
119
|
this.initializeProps();
|
120
|
+
this.isPlayerInitialized = true;
|
111
121
|
}
|
112
122
|
onPlayIconTap() {
|
113
123
|
this.updateState({
|
114
124
|
videoPosterDismissed: true
|
115
125
|
});
|
116
|
-
this.player
|
126
|
+
if (this.player) {
|
127
|
+
this.player.play();
|
128
|
+
}
|
117
129
|
}
|
118
130
|
componentWillUnmount() {
|
119
131
|
super.componentWillUnmount();
|
120
|
-
this.player
|
121
|
-
|
122
|
-
|
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;
|
123
140
|
}
|
124
141
|
|
125
142
|
//TASK: Overlay on video widged should be removed once upgraded to expo 53.
|
@@ -138,62 +155,70 @@ export default class WmVideo extends BaseComponent {
|
|
138
155
|
} = this.state;
|
139
156
|
const isPlaying = playStarted || this.state.props.autoplay;
|
140
157
|
const showOverlay = !showdefaultvideoposter && !this.state.videoPosterDismissed;
|
141
|
-
return /*#__PURE__*/React.createElement(
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
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
|
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);
|
166
163
|
}
|
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
|
-
|
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,
|
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 ? 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
|
+
});
|
197
222
|
}
|
198
223
|
}
|
199
224
|
//# sourceMappingURL=video.component.js.map
|
@@ -1 +1 @@
|
|
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":[]}
|
1
|
+
{"version":3,"names":["React","View","Image","TouchableWithoutFeedback","Platform","Text","BaseComponent","BaseComponentState","WmVideoProps","DEFAULT_CLASS","AccessibilityWidgetType","getAccessibilityProps","isFullPathUrl","createSkeleton","Tappable","VideoConsumer","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 { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { VideoConsumer } from '@wavemaker/app-rn-runtime/core/device/av-service';\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 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 ? (\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 </VideoConsumer>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
|
@@ -28,6 +28,7 @@ export default class WmTabs extends BaseComponent {
|
|
28
28
|
_defineProperty(this, "tabLayout", null);
|
29
29
|
_defineProperty(this, "tabPaneHeights", []);
|
30
30
|
_defineProperty(this, "animationView", null);
|
31
|
+
_defineProperty(this, "childComponentStyleKeys", ['tabHeader']);
|
31
32
|
_defineProperty(this, "animationHandlers", {
|
32
33
|
bounds: e => {
|
33
34
|
var _this$tabLayout;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","View","BaseComponent","BaseComponentState","SwipeAnimation","isWebPreviewMode","WmTabsProps","DEFAULT_CLASS","WmTabheader","createSkeleton","WmTabsState","constructor","args","_defineProperty","WmTabs","props","bounds","e","_this$tabLayout","activeTabIndex","state","selectedTabIndex","w","tabLayout","width","noOfTabs","tabPanes","length","lower","center","upper","onLower","onChange","onUpper","setTabLayout","event","nativeEvent","layout","forceUpdate","goToTab","setTabPaneHeights","index","_nativeEvent$nativeEv","tabPaneHeights","height","setTabShown","tabIndex","callback","tabsShown","setTimeout","updateState","addTabPane","tabPane","paneId","newIndex","i","findIndex","t","push","removeTabPane","splice","selectTabPane","indexOf","selectedTabPane","_this$tabLayout2","position","animationView","setPosition","then","prev","_this$animationView","goToLower","next","_this$animationView2","oldIndex","deselectedTab","_onDeselect","selectedTab","_onSelect","invokeEventCallback","proxy","renderSkeletonContent","Children","toArray","children","filter","item","show","headerData","map","p","title","icon","key","createElement","style","styles","root","borderBottomWidth","onLayout","bind","tabHeader","data","showskeleton","overflow","flexDirection","flexWrap","alignSelf","cloneElement","renderSkeleton","showskeletonchildren","_this$props","skeletonStyles","skeleton","text","theme","opacity","onPropertyChange","name","$new","$old","selectedIndex","getBackground","_showSkeleton","_background","renderWidget","paneicon","accessibilityData","accessibilitylabel","hint","accessibilityrole","handleLayout","id","getTestId","onIndexChange","shouldScroll","enablescroll","disabletoucheffect","accessibilityProps","flex","maxHeight","tabContent","enableGestures","enablegestures","alignItems","direction","ref","r","handlers","animationHandlers","undefined"],"sources":["tabs.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, LayoutRectangle, View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\n// TODO: Change the logic of gesture handler in swipe.animation file, as its interfering with scroll animation\n// for now Pan responder is being used instead of Gesture handler. \nimport * as SwipeAnimation from '@wavemaker/app-rn-runtime/gestures/carousel-swipe.animation';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\n\nimport WmTabsProps from './tabs.props';\nimport { DEFAULT_CLASS, WmTabsStyles } from './tabs.styles';\nimport WmTabpane from './tabpane/tabpane.component';\nimport WmTabheader from './tabheader/tabheader.component';\nimport { WmSkeletonStyles } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.styles';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmTabsState extends BaseComponentState<WmTabsProps> {\n tabsShown: boolean[] = [];\n selectedTabIndex: number = 0;\n}\n\nexport default class WmTabs extends BaseComponent<WmTabsProps, WmTabsState, WmTabsStyles> {\n public tabPanes = [] as WmTabpane[];\n private newIndex = 0;\n private tabLayout: LayoutRectangle = null as any;\n private tabPaneHeights: number[] = [];\n private animationView: SwipeAnimation.View | null = null as any;\n private animationHandlers = {\n bounds: (e) => {\n const activeTabIndex = this.state.selectedTabIndex,\n w = this.tabLayout?.width || 0,\n noOfTabs = this.tabPanes.length;\n return {\n lower: -1 * (activeTabIndex - (activeTabIndex === 0 ? 0 : 1)) * w,\n center: -1 * activeTabIndex * w,\n upper: -1 * (activeTabIndex + (activeTabIndex === noOfTabs - 1 ? 0 : 1)) * w\n };\n },\n onLower: (e) => {\n this.onChange(this.state.selectedTabIndex - 1);\n },\n onUpper: (e) => {\n this.onChange(this.state.selectedTabIndex + 1);\n }\n } as SwipeAnimation.Handlers;\n\n constructor(props: WmTabsProps) {\n super(props, DEFAULT_CLASS, new WmTabsProps(), new WmTabsState());\n }\n\n setTabLayout(event: LayoutChangeEvent) {\n this.tabLayout = event.nativeEvent.layout;\n this.forceUpdate(() => {\n this.goToTab();\n });\n }\n\n setTabPaneHeights(index: number, nativeEvent: LayoutChangeEvent) {\n this.tabPaneHeights[index] = nativeEvent.nativeEvent.layout?.height;\n if (index === this.state.selectedTabIndex) {\n this.forceUpdate();\n }\n }\n\n setTabShown(tabIndex: number, callback: () => any) {\n if (!this.state.tabsShown[tabIndex]) {\n const tabsShown = [...this.state.tabsShown];\n tabsShown[tabIndex] = true;\n setTimeout(() => {\n this.updateState({\n tabsShown: tabsShown\n } as WmTabsState, callback);\n }, 300);\n } else {\n callback && callback();\n }\n }\n\n addTabPane(tabPane: WmTabpane) {\n tabPane.paneId = `tabPane${this.newIndex++}`;\n const i = this.tabPanes.findIndex(t => t.paneId === tabPane.paneId);\n if (i >= 0) {\n this.tabPanes[i] = tabPane;\n } else {\n this.tabPanes.push(tabPane)\n }\n }\n\n removeTabPane(tabPane: WmTabpane) {\n const i = this.tabPanes.findIndex(t => t.paneId === tabPane.paneId);\n if (i >= 0) {\n this.tabPanes.splice(i, 1); \n this.newIndex--;\n }\n }\n\n selectTabPane(tabPane: WmTabpane) {\n this.goToTab(this.tabPanes.indexOf(tabPane));\n }\n\n get selectedTabPane() {\n return this.tabPanes[this.state.selectedTabIndex];\n }\n\n goToTab(index = this.state.selectedTabIndex) {\n if (index < 0 || index >= this.tabPanes.length) {\n return;\n }\n const position = -1 * index * (this.tabLayout?.width || 0);\n if(this.animationView) {\n this.animationView.setPosition(position)\n .then(() => this.onChange(index));\n } else {\n this.onChange(index);\n }\n }\n\n prev() {\n this.animationView?.goToLower();\n }\n\n next() {\n this.animationView?.goToLower();\n }\n\n onChange(newIndex: number) {\n if (newIndex < 0 || newIndex >= this.tabPanes.length) {\n return;\n }\n const oldIndex = this.state.selectedTabIndex;\n const deselectedTab = this.tabPanes[this.state.selectedTabIndex];\n this.newIndex = newIndex;\n deselectedTab?._onDeselect();\n this.updateState({\n selectedTabIndex: newIndex\n } as WmTabsState, () => {\n this.setTabShown(newIndex, () => {\n const selectedTab = this.tabPanes[newIndex];\n selectedTab?._onSelect();\n this.invokeEventCallback('onChange', [{}, this.proxy, newIndex, oldIndex]);\n });\n });\n }\n\n public renderSkeletonContent(props: WmTabsProps) {\n const tabPanes = React.Children.toArray(this.props.children)\n .filter((item: any, index: number) => item.props.show != false);\n const headerData = tabPanes.map((p: any, i: number) =>\n ({title: p.props.title, icon: '', key: `tab-${p.props.title}-${i}`}));\n return(\n <View style={[this.styles.root, { borderBottomWidth: 0}]}>\n <View onLayout={this.setTabLayout.bind(this)} style={{width: '100%'}}></View>\n <WmTabheader\n styles={this.styles.tabHeader}\n data={headerData}\n showskeleton={this.props.showskeleton}\n selectedTabIndex={this.state.selectedTabIndex}\n ></WmTabheader>\n <View\n //{...this.panResponder.panHandlers}\n style={{\n width: '100%',\n //height: this.tabPaneHeights[this.state.selectedTabIndex],\n overflow: 'hidden'\n }} >\n <View style={{\n flexDirection: 'row',\n flexWrap: 'nowrap'\n }}>\n {tabPanes.map((p: any, i) => {\n return (\n <View\n key={`tab-${i}`}\n style={{width: '100%', alignSelf: 'flex-start'}}\n onLayout={this.setTabPaneHeights.bind(this, i)}>\n {/* {this.state.tabsShown[i] ? p : null} */}\n {React.cloneElement(p, { \"invokeVariables\": false })}\n {/* {p} */}\n </View>);\n })}\n </View>\n </View>\n </View>\n )\n }\n\n public renderSkeleton(props: WmTabsProps){\n if(!props.showskeletonchildren) {\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 {this.renderSkeletonContent(props)}\n </View>)) \n }\n return this.renderSkeletonContent(props);\n }\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case \"defaultpaneindex\":\n const selectedIndex = $new || 0;\n const tabsShown: boolean[] = [];\n tabsShown[selectedIndex] = true;\n this.updateState({\n selectedTabIndex: selectedIndex,\n tabsShown: tabsShown\n } as WmTabsState);\n }\n }\n\n getBackground(): React.JSX.Element | null {\n return this._showSkeleton ? null : this._background\n } \n\n\n renderWidget(props: WmTabsProps) {\n const tabPanes = React.Children.toArray(props.children)\n .filter((item: any, index: number) => item.props.show != false);\n const headerData = tabPanes.map((p: any, i: number) =>\n ({title: p.props.title, icon: p.props.paneicon || '', key: `tab-${i}`}));\n const accessibilityData = tabPanes.map((p: any, i: number) =>({\n accessibilitylabel: p.props.accessibilitylabel || p.props.title,\n hint: p.props.hint,\n accessibilityrole: p.props.accessibilityrole\n }));\n const styles = this._showSkeleton ? {\n ...this.styles.root,\n ...this.styles.skeleton.root\n } : this.styles.root\n return (\n <View \n style={styles}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this.getBackground()}\n <View onLayout={this.setTabLayout.bind(this)} style={{width: '100%'}}></View>\n <WmTabheader\n id={this.getTestId('headers')}\n styles={this.styles.tabHeader}\n data={headerData}\n selectedTabIndex={this.state.selectedTabIndex}\n onIndexChange={this.goToTab.bind(this)}\n shouldScroll={props.enablescroll}\n disabletoucheffect = {this.state.props.disabletoucheffect}\n accessibilityProps={accessibilityData}\n ></WmTabheader>\n <View\n style={[{\n width: '100%',\n flex: 1\n }, this.styles.root.height ?\n (isWebPreviewMode() ? {'overflowX': 'hidden','overflowY': 'auto'} as any : {overflow: 'scroll'})\n : {\n overflow: 'hidden',\n maxHeight: this.tabPaneHeights[this.state.selectedTabIndex],\n }, this.styles.tabContent]} >\n <SwipeAnimation.View\n enableGestures={props.enablegestures}\n style={{\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start'\n }}\n direction='horizontal'\n ref={(r) => {this.animationView = r}}\n handlers = {this.animationHandlers}\n >\n {tabPanes.map((p: any, i) => {\n return (\n <View\n key={`tab-${i}`}\n style={{\n width: '100%',\n height: this.styles.root.height ? undefined : 1000000,\n alignSelf: 'flex-start'}}>\n <View\n style={{width: '100%', alignSelf: 'flex-start'}}\n onLayout={this.setTabPaneHeights.bind(this, i)}>\n {/* {this.state.tabsShown[i] ? p : null} */}\n {p}\n </View>\n </View>);\n })}\n </SwipeAnimation.View>\n </View>\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["React","View","BaseComponent","BaseComponentState","SwipeAnimation","isWebPreviewMode","WmTabsProps","DEFAULT_CLASS","WmTabheader","createSkeleton","WmTabsState","constructor","args","_defineProperty","WmTabs","props","bounds","e","_this$tabLayout","activeTabIndex","state","selectedTabIndex","w","tabLayout","width","noOfTabs","tabPanes","length","lower","center","upper","onLower","onChange","onUpper","setTabLayout","event","nativeEvent","layout","forceUpdate","goToTab","setTabPaneHeights","index","_nativeEvent$nativeEv","tabPaneHeights","height","setTabShown","tabIndex","callback","tabsShown","setTimeout","updateState","addTabPane","tabPane","paneId","newIndex","i","findIndex","t","push","removeTabPane","splice","selectTabPane","indexOf","selectedTabPane","_this$tabLayout2","position","animationView","setPosition","then","prev","_this$animationView","goToLower","next","_this$animationView2","oldIndex","deselectedTab","_onDeselect","selectedTab","_onSelect","invokeEventCallback","proxy","renderSkeletonContent","Children","toArray","children","filter","item","show","headerData","map","p","title","icon","key","createElement","style","styles","root","borderBottomWidth","onLayout","bind","tabHeader","data","showskeleton","overflow","flexDirection","flexWrap","alignSelf","cloneElement","renderSkeleton","showskeletonchildren","_this$props","skeletonStyles","skeleton","text","theme","opacity","onPropertyChange","name","$new","$old","selectedIndex","getBackground","_showSkeleton","_background","renderWidget","paneicon","accessibilityData","accessibilitylabel","hint","accessibilityrole","handleLayout","id","getTestId","onIndexChange","shouldScroll","enablescroll","disabletoucheffect","accessibilityProps","flex","maxHeight","tabContent","enableGestures","enablegestures","alignItems","direction","ref","r","handlers","animationHandlers","undefined"],"sources":["tabs.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, LayoutRectangle, View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\n// TODO: Change the logic of gesture handler in swipe.animation file, as its interfering with scroll animation\n// for now Pan responder is being used instead of Gesture handler. \nimport * as SwipeAnimation from '@wavemaker/app-rn-runtime/gestures/carousel-swipe.animation';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\n\nimport WmTabsProps from './tabs.props';\nimport { DEFAULT_CLASS, WmTabsStyles } from './tabs.styles';\nimport WmTabpane from './tabpane/tabpane.component';\nimport WmTabheader from './tabheader/tabheader.component';\nimport { WmSkeletonStyles } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.styles';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmTabsState extends BaseComponentState<WmTabsProps> {\n tabsShown: boolean[] = [];\n selectedTabIndex: number = 0;\n}\n\nexport default class WmTabs extends BaseComponent<WmTabsProps, WmTabsState, WmTabsStyles> {\n public tabPanes = [] as WmTabpane[];\n private newIndex = 0;\n private tabLayout: LayoutRectangle = null as any;\n private tabPaneHeights: number[] = [];\n private animationView: SwipeAnimation.View | null = null as any;\n protected childComponentStyleKeys = ['tabHeader'];\n private animationHandlers = {\n bounds: (e) => {\n const activeTabIndex = this.state.selectedTabIndex,\n w = this.tabLayout?.width || 0,\n noOfTabs = this.tabPanes.length;\n return {\n lower: -1 * (activeTabIndex - (activeTabIndex === 0 ? 0 : 1)) * w,\n center: -1 * activeTabIndex * w,\n upper: -1 * (activeTabIndex + (activeTabIndex === noOfTabs - 1 ? 0 : 1)) * w\n };\n },\n onLower: (e) => {\n this.onChange(this.state.selectedTabIndex - 1);\n },\n onUpper: (e) => {\n this.onChange(this.state.selectedTabIndex + 1);\n }\n } as SwipeAnimation.Handlers;\n\n constructor(props: WmTabsProps) {\n super(props, DEFAULT_CLASS, new WmTabsProps(), new WmTabsState());\n }\n\n setTabLayout(event: LayoutChangeEvent) {\n this.tabLayout = event.nativeEvent.layout;\n this.forceUpdate(() => {\n this.goToTab();\n });\n }\n\n setTabPaneHeights(index: number, nativeEvent: LayoutChangeEvent) {\n this.tabPaneHeights[index] = nativeEvent.nativeEvent.layout?.height;\n if (index === this.state.selectedTabIndex) {\n this.forceUpdate();\n }\n }\n\n setTabShown(tabIndex: number, callback: () => any) {\n if (!this.state.tabsShown[tabIndex]) {\n const tabsShown = [...this.state.tabsShown];\n tabsShown[tabIndex] = true;\n setTimeout(() => {\n this.updateState({\n tabsShown: tabsShown\n } as WmTabsState, callback);\n }, 300);\n } else {\n callback && callback();\n }\n }\n\n addTabPane(tabPane: WmTabpane) {\n tabPane.paneId = `tabPane${this.newIndex++}`;\n const i = this.tabPanes.findIndex(t => t.paneId === tabPane.paneId);\n if (i >= 0) {\n this.tabPanes[i] = tabPane;\n } else {\n this.tabPanes.push(tabPane)\n }\n }\n\n removeTabPane(tabPane: WmTabpane) {\n const i = this.tabPanes.findIndex(t => t.paneId === tabPane.paneId);\n if (i >= 0) {\n this.tabPanes.splice(i, 1); \n this.newIndex--;\n }\n }\n\n selectTabPane(tabPane: WmTabpane) {\n this.goToTab(this.tabPanes.indexOf(tabPane));\n }\n\n get selectedTabPane() {\n return this.tabPanes[this.state.selectedTabIndex];\n }\n\n goToTab(index = this.state.selectedTabIndex) {\n if (index < 0 || index >= this.tabPanes.length) {\n return;\n }\n const position = -1 * index * (this.tabLayout?.width || 0);\n if(this.animationView) {\n this.animationView.setPosition(position)\n .then(() => this.onChange(index));\n } else {\n this.onChange(index);\n }\n }\n\n prev() {\n this.animationView?.goToLower();\n }\n\n next() {\n this.animationView?.goToLower();\n }\n\n onChange(newIndex: number) {\n if (newIndex < 0 || newIndex >= this.tabPanes.length) {\n return;\n }\n const oldIndex = this.state.selectedTabIndex;\n const deselectedTab = this.tabPanes[this.state.selectedTabIndex];\n this.newIndex = newIndex;\n deselectedTab?._onDeselect();\n this.updateState({\n selectedTabIndex: newIndex\n } as WmTabsState, () => {\n this.setTabShown(newIndex, () => {\n const selectedTab = this.tabPanes[newIndex];\n selectedTab?._onSelect();\n this.invokeEventCallback('onChange', [{}, this.proxy, newIndex, oldIndex]);\n });\n });\n }\n\n public renderSkeletonContent(props: WmTabsProps) {\n const tabPanes = React.Children.toArray(this.props.children)\n .filter((item: any, index: number) => item.props.show != false);\n const headerData = tabPanes.map((p: any, i: number) =>\n ({title: p.props.title, icon: '', key: `tab-${p.props.title}-${i}`}));\n return(\n <View style={[this.styles.root, { borderBottomWidth: 0}]}>\n <View onLayout={this.setTabLayout.bind(this)} style={{width: '100%'}}></View>\n <WmTabheader\n styles={this.styles.tabHeader}\n data={headerData}\n showskeleton={this.props.showskeleton}\n selectedTabIndex={this.state.selectedTabIndex}\n ></WmTabheader>\n <View\n //{...this.panResponder.panHandlers}\n style={{\n width: '100%',\n //height: this.tabPaneHeights[this.state.selectedTabIndex],\n overflow: 'hidden'\n }} >\n <View style={{\n flexDirection: 'row',\n flexWrap: 'nowrap'\n }}>\n {tabPanes.map((p: any, i) => {\n return (\n <View\n key={`tab-${i}`}\n style={{width: '100%', alignSelf: 'flex-start'}}\n onLayout={this.setTabPaneHeights.bind(this, i)}>\n {/* {this.state.tabsShown[i] ? p : null} */}\n {React.cloneElement(p, { \"invokeVariables\": false })}\n {/* {p} */}\n </View>);\n })}\n </View>\n </View>\n </View>\n )\n }\n\n public renderSkeleton(props: WmTabsProps){\n if(!props.showskeletonchildren) {\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 {this.renderSkeletonContent(props)}\n </View>)) \n }\n return this.renderSkeletonContent(props);\n }\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case \"defaultpaneindex\":\n const selectedIndex = $new || 0;\n const tabsShown: boolean[] = [];\n tabsShown[selectedIndex] = true;\n this.updateState({\n selectedTabIndex: selectedIndex,\n tabsShown: tabsShown\n } as WmTabsState);\n }\n }\n\n getBackground(): React.JSX.Element | null {\n return this._showSkeleton ? null : this._background\n } \n\n\n renderWidget(props: WmTabsProps) {\n const tabPanes = React.Children.toArray(props.children)\n .filter((item: any, index: number) => item.props.show != false);\n const headerData = tabPanes.map((p: any, i: number) =>\n ({title: p.props.title, icon: p.props.paneicon || '', key: `tab-${i}`}));\n const accessibilityData = tabPanes.map((p: any, i: number) =>({\n accessibilitylabel: p.props.accessibilitylabel || p.props.title,\n hint: p.props.hint,\n accessibilityrole: p.props.accessibilityrole\n }));\n const styles = this._showSkeleton ? {\n ...this.styles.root,\n ...this.styles.skeleton.root\n } : this.styles.root\n return (\n <View \n style={styles}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this.getBackground()}\n <View onLayout={this.setTabLayout.bind(this)} style={{width: '100%'}}></View>\n <WmTabheader\n id={this.getTestId('headers')}\n styles={this.styles.tabHeader}\n data={headerData}\n selectedTabIndex={this.state.selectedTabIndex}\n onIndexChange={this.goToTab.bind(this)}\n shouldScroll={props.enablescroll}\n disabletoucheffect = {this.state.props.disabletoucheffect}\n accessibilityProps={accessibilityData}\n ></WmTabheader>\n <View\n style={[{\n width: '100%',\n flex: 1\n }, this.styles.root.height ?\n (isWebPreviewMode() ? {'overflowX': 'hidden','overflowY': 'auto'} as any : {overflow: 'scroll'})\n : {\n overflow: 'hidden',\n maxHeight: this.tabPaneHeights[this.state.selectedTabIndex],\n }, this.styles.tabContent]} >\n <SwipeAnimation.View\n enableGestures={props.enablegestures}\n style={{\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'flex-start'\n }}\n direction='horizontal'\n ref={(r) => {this.animationView = r}}\n handlers = {this.animationHandlers}\n >\n {tabPanes.map((p: any, i) => {\n return (\n <View\n key={`tab-${i}`}\n style={{\n width: '100%',\n height: this.styles.root.height ? undefined : 1000000,\n alignSelf: 'flex-start'}}>\n <View\n style={{width: '100%', alignSelf: 'flex-start'}}\n onLayout={this.setTabPaneHeights.bind(this, i)}>\n {/* {this.state.tabsShown[i] ? p : null} */}\n {p}\n </View>\n </View>);\n })}\n </SwipeAnimation.View>\n </View>\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -198,11 +198,61 @@ export default class WmWizard extends BaseComponent {
|
|
198
198
|
}
|
199
199
|
return isFirstOrLastConnector ? '50%' : '100%';
|
200
200
|
}
|
201
|
+
stepConnectorHeight(isFirstOrLastConnector, stepIndex) {
|
202
|
+
if (stepIndex === this.lastStepIndex() || stepIndex === this.firstStepIndex()) {
|
203
|
+
return '50%';
|
204
|
+
}
|
205
|
+
return isFirstOrLastConnector ? '50%' : '100%';
|
206
|
+
}
|
207
|
+
getDotStyle(index) {
|
208
|
+
const style = [this.styles.stepDot];
|
209
|
+
if (this.state.currentStep === index) {
|
210
|
+
style.push(this.styles.activeStepDot);
|
211
|
+
}
|
212
|
+
return style;
|
213
|
+
}
|
214
|
+
renderDot(index) {
|
215
|
+
return /*#__PURE__*/React.createElement(View, {
|
216
|
+
style: this.getDotStyle(index)
|
217
|
+
});
|
218
|
+
}
|
219
|
+
getConnectorPosition() {
|
220
|
+
var _this$styles;
|
221
|
+
const stepStyles = (_this$styles = this.styles) === null || _this$styles === void 0 ? void 0 : _this$styles.step;
|
222
|
+
if (!stepStyles) return {};
|
223
|
+
const cssWidth = stepStyles.width;
|
224
|
+
const cssHeight = stepStyles.height;
|
225
|
+
const parseStyleValue = value => {
|
226
|
+
if (typeof value === 'number') {
|
227
|
+
return value;
|
228
|
+
}
|
229
|
+
if (typeof value === 'string') {
|
230
|
+
const numValue = parseFloat(value);
|
231
|
+
return isNaN(numValue) ? null : numValue;
|
232
|
+
}
|
233
|
+
return null;
|
234
|
+
};
|
235
|
+
const width = parseStyleValue(cssWidth);
|
236
|
+
const height = parseStyleValue(cssHeight);
|
237
|
+
const result = {};
|
238
|
+
// Calculate connector positions based on actual circle dimensions
|
239
|
+
if (height !== null) {
|
240
|
+
result.top = height / 2 - 1;
|
241
|
+
}
|
242
|
+
if (width !== null) {
|
243
|
+
result.left = width / 2 - 1;
|
244
|
+
}
|
245
|
+
return result;
|
246
|
+
}
|
201
247
|
renderWizardHeader(item, index) {
|
248
|
+
var _this$state$props$cla, _this$state$props$cla2, _this$state$props$cla3;
|
202
249
|
const isLastStep = index === this.lastStepIndex();
|
203
250
|
const isFirstStep = index === this.firstStepIndex();
|
204
251
|
const isActiveStep = index === this.state.currentStep;
|
205
252
|
const isNumberTextLayout = this.state.props.classname === 'number-text-inline';
|
253
|
+
const isVertical = (_this$state$props$cla = this.state.props.classname) === null || _this$state$props$cla === void 0 ? void 0 : _this$state$props$cla.includes('vertical');
|
254
|
+
const isDotted = (_this$state$props$cla2 = this.state.props.classname) === null || _this$state$props$cla2 === void 0 ? void 0 : _this$state$props$cla2.includes('dottedstepper');
|
255
|
+
const isStepperBasic = (_this$state$props$cla3 = this.state.props.classname) === null || _this$state$props$cla3 === void 0 ? void 0 : _this$state$props$cla3.includes('stepper-basic');
|
206
256
|
const wizardStepCountVisibility = index >= this.state.currentStep && !this.state.isDone || !this.state.currentStep;
|
207
257
|
return item.state.props.show !== false ? /*#__PURE__*/React.createElement(View, {
|
208
258
|
style: [this.styles.headerWrapper, isNumberTextLayout ? {
|
@@ -215,9 +265,19 @@ export default class WmWizard extends BaseComponent {
|
|
215
265
|
onPress: this.updateCurrentStep.bind(this, index, false),
|
216
266
|
disabled: index >= this.state.currentStep || !this.state.props.headernavigation,
|
217
267
|
accessibilityRole: "header"
|
218
|
-
}, !this._showSkeleton ? /*#__PURE__*/React.createElement(View, _extends({
|
268
|
+
}, !this._showSkeleton ? isStepperBasic ? /*#__PURE__*/React.createElement(View, _extends({
|
269
|
+
style: this.getStepStyle(index)
|
270
|
+
}, this.getTestPropsForAction('step' + index))) : /*#__PURE__*/React.createElement(View, _extends({
|
219
271
|
style: this.getStepStyle(index)
|
220
|
-
}, this.getTestPropsForAction('step' + index)),
|
272
|
+
}, this.getTestPropsForAction('step' + index)), isDotted ? /*#__PURE__*/React.createElement(React.Fragment, null, index < this.state.currentStep || this.state.isDone ? /*#__PURE__*/React.createElement(WmIcon, {
|
273
|
+
id: this.getTestId('status'),
|
274
|
+
styles: isActiveStep ? merge({}, this.styles.stepIcon, {
|
275
|
+
icon: {
|
276
|
+
color: this.styles.activeStep.color
|
277
|
+
}
|
278
|
+
}) : this.styles.stepIcon,
|
279
|
+
iconclass: item.state.props.iconclass || 'wm-sl-l sl-check'
|
280
|
+
}) : this.renderDot(index)) : /*#__PURE__*/React.createElement(React.Fragment, null, wizardStepCountVisibility && /*#__PURE__*/React.createElement(Text, _extends({
|
221
281
|
style: isActiveStep ? [this.styles.activeStep, this.styles.activeStepCounter] : this.styles.stepCounter
|
222
282
|
}, this.getTestPropsForLabel('step' + (index + 1) + '_indicator')), index + 1), (index < this.state.currentStep || this.state.isDone) && /*#__PURE__*/React.createElement(WmIcon, {
|
223
283
|
id: this.getTestId('status'),
|
@@ -227,7 +287,7 @@ export default class WmWizard extends BaseComponent {
|
|
227
287
|
}
|
228
288
|
}) : this.styles.stepIcon,
|
229
289
|
iconclass: item.state.props.iconclass || 'wm-sl-l sl-check'
|
230
|
-
})) : /*#__PURE__*/React.createElement(WmLabel, {
|
290
|
+
}))) : /*#__PURE__*/React.createElement(WmLabel, {
|
231
291
|
showskeleton: true,
|
232
292
|
styles: {
|
233
293
|
root: {
|
@@ -240,15 +300,24 @@ export default class WmWizard extends BaseComponent {
|
|
240
300
|
style: this.styles.stepTitle
|
241
301
|
}, this.getTestPropsForLabel('step' + (index + 1) + '_title')), item.state.props.title || 'Step Title'), /*#__PURE__*/React.createElement(Text, _extends({
|
242
302
|
style: this.styles.stepSubTitle
|
243
|
-
}, this.getTestPropsForLabel('step' + (index + 1) + '_subtitle')), item.state.props.subtitle)), this.numberOfSteps > 1 && isActiveStep && /*#__PURE__*/React.createElement(View, {
|
303
|
+
}, this.getTestPropsForLabel('step' + (index + 1) + '_subtitle')), item.state.props.subtitle)), !isStepperBasic && this.numberOfSteps > 1 && isActiveStep && /*#__PURE__*/React.createElement(View, {
|
244
304
|
style: [this.styles.numberTextStepConnector, {
|
245
305
|
width: isLastStep ? 0 : 50
|
246
306
|
}]
|
247
|
-
})), this.getTotalVisibleSteps() > 1 && item.state.props.show && /*#__PURE__*/React.createElement(View, {
|
307
|
+
})), !isStepperBasic && this.getTotalVisibleSteps() > 1 && item.state.props.show && !isVertical && /*#__PURE__*/React.createElement(View, {
|
248
308
|
style: [this.styles.stepConnector, {
|
249
309
|
width: this.stepConnectorWidth(isFirstStep || isLastStep, index),
|
250
310
|
left: Platform.OS === "web" ? !this.isRTL && isFirstStep || this.isRTL && isLastStep ? '50%' : '0%' : isFirstStep ? '50%' : '0%'
|
251
|
-
}
|
311
|
+
}, this.getConnectorPosition().top ? {
|
312
|
+
top: this.getConnectorPosition().top
|
313
|
+
} : {}]
|
314
|
+
}), !isStepperBasic && this.getTotalVisibleSteps() > 1 && item.state.props.show && isVertical && /*#__PURE__*/React.createElement(View, {
|
315
|
+
style: [this.styles.stepConnector, {
|
316
|
+
height: this.stepConnectorHeight(isFirstStep || isLastStep, index),
|
317
|
+
top: isFirstStep ? '50%' : '0%'
|
318
|
+
}, this.getConnectorPosition().left ? {
|
319
|
+
left: this.getConnectorPosition().left
|
320
|
+
} : {}]
|
252
321
|
})) : null;
|
253
322
|
}
|
254
323
|
prev() {
|
@@ -364,11 +433,11 @@ export default class WmWizard extends BaseComponent {
|
|
364
433
|
return null;
|
365
434
|
}
|
366
435
|
renderWidget(props) {
|
367
|
-
var _this$state$props$
|
436
|
+
var _this$state$props$cla4;
|
368
437
|
this.numberOfSteps = this.steps.length;
|
369
438
|
const activeStep = this.steps[this.state.currentStep];
|
370
439
|
const isSkippable = activeStep && activeStep.state.props.enableskip;
|
371
|
-
const isProgressCircleHeader = (_this$state$props$
|
440
|
+
const isProgressCircleHeader = (_this$state$props$cla4 = this.state.props.classname) === null || _this$state$props$cla4 === void 0 ? void 0 : _this$state$props$cla4.includes('progress-circle-header');
|
372
441
|
const styles = this._showSkeleton ? {
|
373
442
|
...this.styles.root,
|
374
443
|
...this.styles.skeleton.root
|