@wavemaker/app-rn-runtime 11.12.1-next.28204 → 11.12.1-rc.221

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/components/basic/audio/audio.component.js +52 -47
  2. package/components/basic/audio/audio.component.js.map +1 -1
  3. package/components/basic/label/label.component.js +120 -5
  4. package/components/basic/label/label.component.js.map +1 -1
  5. package/components/basic/label/label.props.js +2 -0
  6. package/components/basic/label/label.props.js.map +1 -1
  7. package/components/basic/video/video.component.js +89 -64
  8. package/components/basic/video/video.component.js.map +1 -1
  9. package/components/container/tabs/tabs.component.js +1 -0
  10. package/components/container/tabs/tabs.component.js.map +1 -1
  11. package/components/container/wizard/wizard.component.js +77 -8
  12. package/components/container/wizard/wizard.component.js.map +1 -1
  13. package/components/container/wizard/wizard.styles.js +86 -1
  14. package/components/container/wizard/wizard.styles.js.map +1 -1
  15. package/components/device/barcodescanner/barcodescanner.component.js +29 -18
  16. package/components/device/barcodescanner/barcodescanner.component.js.map +1 -1
  17. package/components/device/camera/camera.component.js +28 -19
  18. package/components/device/camera/camera.component.js.map +1 -1
  19. package/components/input/chips/chips.component.js +50 -9
  20. package/components/input/chips/chips.component.js.map +1 -1
  21. package/components/input/chips/chips.props.js +11 -0
  22. package/components/input/chips/chips.props.js.map +1 -1
  23. package/components/input/chips/chips.styles.js +64 -0
  24. package/components/input/chips/chips.styles.js.map +1 -1
  25. package/components/input/fileupload/fileupload.component.js +17 -13
  26. package/components/input/fileupload/fileupload.component.js.map +1 -1
  27. package/components/page/page-content/page-content.component.js +18 -2
  28. package/components/page/page-content/page-content.component.js.map +1 -1
  29. package/components/page/tabbar/tabbar.component.js +4 -3
  30. package/components/page/tabbar/tabbar.component.js.map +1 -1
  31. package/core/base.component.js +13 -1
  32. package/core/base.component.js.map +1 -1
  33. package/core/device/av-service.js +8 -0
  34. package/core/device/av-service.js.map +1 -0
  35. package/core/device/calendar-service.js +7 -1
  36. package/core/device/calendar-service.js.map +1 -1
  37. package/core/device/camera-service.js +6 -0
  38. package/core/device/camera-service.js.map +1 -1
  39. package/core/device/contacts-service.js +7 -1
  40. package/core/device/contacts-service.js.map +1 -1
  41. package/core/device/fileupload-service.js +8 -0
  42. package/core/device/fileupload-service.js.map +1 -0
  43. package/core/device/location-service.js +7 -1
  44. package/core/device/location-service.js.map +1 -1
  45. package/core/device/openfile-service.js +10 -0
  46. package/core/device/openfile-service.js.map +1 -0
  47. package/core/device/scan-service.js +6 -0
  48. package/core/device/scan-service.js.map +1 -1
  49. package/core/utils.js +0 -6
  50. package/core/utils.js.map +1 -1
  51. package/npm-shrinkwrap.json +5165 -4197
  52. package/package-lock.json +5165 -4197
  53. package/package.json +4 -4
  54. package/runtime/services/device/calendar-service.js +9 -5
  55. package/runtime/services/device/calendar-service.js.map +1 -1
  56. package/runtime/services/device/camera-service.js +39 -22
  57. package/runtime/services/device/camera-service.js.map +1 -1
  58. package/runtime/services/device/contacts-service.js +6 -5
  59. package/runtime/services/device/contacts-service.js.map +1 -1
  60. package/runtime/services/device/location-service.js +4 -4
  61. package/runtime/services/device/location-service.js.map +1 -1
  62. package/runtime/services/device/permission-service.js +5 -0
  63. package/runtime/services/device/permission-service.js.map +1 -0
  64. package/runtime/services/device/permissions.js +34 -39
  65. package/runtime/services/device/permissions.js.map +1 -1
  66. package/runtime/services/device/scan-service.js +4 -3
  67. package/runtime/services/device/scan-service.js.map +1 -1
  68. package/variables/device/calendar/create-event.operation.js +8 -2
  69. package/variables/device/calendar/create-event.operation.js.map +1 -1
  70. package/variables/device/calendar/delete-event.operation.js +8 -2
  71. package/variables/device/calendar/delete-event.operation.js.map +1 -1
  72. package/variables/device/calendar/get-events.operation.js +8 -2
  73. package/variables/device/calendar/get-events.operation.js.map +1 -1
  74. package/variables/device/camera/capture-image.operation.js +6 -2
  75. package/variables/device/camera/capture-image.operation.js.map +1 -1
  76. package/variables/device/camera/capture-video.operation.js +5 -2
  77. package/variables/device/camera/capture-video.operation.js.map +1 -1
  78. package/variables/device/contacts/get-contacts.operation.js +8 -2
  79. package/variables/device/contacts/get-contacts.operation.js.map +1 -1
  80. package/variables/device/device/current-geo-position.operation.js +8 -2
  81. package/variables/device/device/current-geo-position.operation.js.map +1 -1
  82. package/variables/device/file/open-file.operation.js +9 -9
  83. package/variables/device/file/open-file.operation.js.map +1 -1
  84. package/variables/device/file/upload-file.operation.js +5 -2
  85. package/variables/device/file/upload-file.operation.js.map +1 -1
  86. package/variables/device/scan/scan.operation.js +8 -2
  87. package/variables/device/scan/scan.operation.js.map +1 -1
  88. package/variables/http.service.js +1 -6
  89. 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.play();
126
+ if (this.player) {
127
+ this.player.play();
128
+ }
117
129
  }
118
130
  componentWillUnmount() {
119
131
  super.componentWillUnmount();
120
- this.player.removeListener('playingChange', this.playingStatusChange);
121
- this.player.removeListener('statusChange', this.playerReadyStatusChange);
122
- this.player.release();
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(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
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
- }, /*#__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));
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)), wizardStepCountVisibility && /*#__PURE__*/React.createElement(Text, _extends({
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$cla;
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$cla = this.state.props.classname) === null || _this$state$props$cla === void 0 ? void 0 : _this$state$props$cla.includes('progress-circle-header');
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