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

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.
@@ -25,6 +25,7 @@ export default class WmVideo extends BaseComponent {
25
25
  super(props, DEFAULT_CLASS, new WmVideoProps(), new WmVideoState());
26
26
  _defineProperty(this, "player", void 0);
27
27
  _defineProperty(this, "videoService", null);
28
+ _defineProperty(this, "isPlayerInitialized", false);
28
29
  }
29
30
  getSource(path) {
30
31
  if (!path) {
@@ -48,7 +49,10 @@ export default class WmVideo extends BaseComponent {
48
49
  accessibilityrole: 'image'
49
50
  };
50
51
  return /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
51
- onPress: () => this.player.play()
52
+ onPress: () => {
53
+ var _this$player;
54
+ return (_this$player = this.player) === null || _this$player === void 0 ? void 0 : _this$player.play();
55
+ }
52
56
  }, /*#__PURE__*/React.createElement(Image, _extends({}, this.getTestProps('video_poster'), {
53
57
  style: {
54
58
  position: 'absolute',
@@ -77,7 +81,7 @@ export default class WmVideo extends BaseComponent {
77
81
  }
78
82
  playerReadyStatusChange(statusObj) {
79
83
  const videoReady = statusObj.status === 'readyToPlay';
80
- if (this.state.props.autoplay && videoReady) {
84
+ if (this.state.props.autoplay && videoReady && this.player) {
81
85
  this.player.play();
82
86
  }
83
87
  this.updateState({
@@ -85,6 +89,9 @@ export default class WmVideo extends BaseComponent {
85
89
  });
86
90
  }
87
91
  initializeProps() {
92
+ if (!this.player) {
93
+ return;
94
+ }
88
95
  const {
89
96
  loop,
90
97
  muted,
@@ -95,30 +102,41 @@ export default class WmVideo extends BaseComponent {
95
102
  this.player.showNowPlayingNotification = showNowPlayingNotification;
96
103
  }
97
104
  componentDidMount() {
98
- var _this$videoService;
99
105
  super.componentDidMount();
106
+ }
107
+ initializePlayer(videoService) {
108
+ if (this.isPlayerInitialized || !videoService) {
109
+ return; // Player already initialized or videoService not available
110
+ }
100
111
  const {
101
112
  mp4format,
102
- webmformat,
103
- autoplay
113
+ webmformat
104
114
  } = this.state.props;
105
115
  const videoSource = this.getSource(mp4format || webmformat);
106
- this.player = (_this$videoService = this.videoService) === null || _this$videoService === void 0 ? void 0 : _this$videoService.createVideoPlayer(videoSource);
116
+ this.player = videoService.createVideoPlayer(videoSource);
107
117
  this.player.addListener('playingChange', this.playingStatusChange.bind(this));
108
118
  this.player.addListener('statusChange', this.playerReadyStatusChange.bind(this));
109
119
  this.initializeProps();
120
+ this.isPlayerInitialized = true;
110
121
  }
111
122
  onPlayIconTap() {
112
123
  this.updateState({
113
124
  videoPosterDismissed: true
114
125
  });
115
- this.player.play();
126
+ if (this.player) {
127
+ this.player.play();
128
+ }
116
129
  }
117
130
  componentWillUnmount() {
118
131
  super.componentWillUnmount();
119
- this.player.removeListener('playingChange', this.playingStatusChange);
120
- this.player.removeListener('statusChange', this.playerReadyStatusChange);
121
- 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;
122
140
  }
123
141
 
124
142
  //TASK: Overlay on video widged should be removed once upgraded to expo 53.
@@ -138,7 +156,11 @@ export default class WmVideo extends BaseComponent {
138
156
  const isPlaying = playStarted || this.state.props.autoplay;
139
157
  const showOverlay = !showdefaultvideoposter && !this.state.videoPosterDismissed;
140
158
  return /*#__PURE__*/React.createElement(VideoConsumer, null, videoService => {
141
- this.videoService = videoService;
159
+ // Only set videoService and initialize player once
160
+ if (videoService && !this.videoService) {
161
+ this.videoService = videoService;
162
+ this.initializePlayer(videoService);
163
+ }
142
164
  const VideoView = videoService === null || videoService === void 0 ? void 0 : videoService.VideoView;
143
165
  return /*#__PURE__*/React.createElement(View, {
144
166
  style: this.styles.root,
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Image","TouchableWithoutFeedback","Platform","Text","BaseComponent","BaseComponentState","WmVideoProps","DEFAULT_CLASS","AccessibilityWidgetType","getAccessibilityProps","isFullPathUrl","createSkeleton","VideoConsumer","Tappable","WmVideoState","constructor","args","_defineProperty","WmVideo","props","getSource","path","resource","loadAsset","uri","renderVideoPoster","accessibilityImageProps","accessibilitylabel","hint","accessibilityrole","createElement","onPress","player","play","_extends","getTestProps","style","position","top","bottom","left","right","width","height","resizeMode","source","videoposter","PICTURE","renderSkeleton","theme","styles","skeleton","root","playingStatusChange","isPlaying","state","playStarted","updateState","autoplay","playerReadyStatusChange","statusObj","videoReady","status","isVideoReady","initializeProps","loop","muted","showNowPlayingNotification","componentDidMount","_this$videoService","mp4format","webmformat","videoSource","videoService","createVideoPlayer","addListener","bind","onPlayIconTap","videoPosterDismissed","componentWillUnmount","removeListener","release","renderWidget","allowsPictureInPicture","onFullscreenEnter","onFullscreenExit","requiresLinearPlayback","showdefaultvideoposter","showOverlay","VideoView","onLayout","event","handleLayout","_background","VIDEO","flex","nativeControls","controls","contentFit","testID","getTestId","OS","onTap","zIndex","backgroundColor","Fragment","playIconContainer","fontSize","fontWeight","color"],"sources":["video.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Image, TouchableWithoutFeedback, Platform, Text } from 'react-native';\nimport { VideoView, createVideoPlayer } from 'expo-video';\nimport {\n BaseComponent,\n BaseComponentState,\n} from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmVideoProps from './video.props';\nimport { DEFAULT_CLASS, WmVideoStyles } from './video.styles';\nimport {\n AccessibilityWidgetType,\n getAccessibilityProps,\n} from '@wavemaker/app-rn-runtime/core/accessibility';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { VideoConsumer } from '@wavemaker/app-rn-runtime/core/device/av-service';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\n\nexport class WmVideoState extends BaseComponentState<WmVideoProps> {\n isVideoReady: boolean = false;\n playStarted: boolean = false;\n videoPosterDismissed: boolean = false;\n}\n\nexport default class WmVideo extends BaseComponent<\n WmVideoProps,\n WmVideoState,\n WmVideoStyles\n> {\n private player: any;\n private videoService: any = null as any;\n\n constructor(props: WmVideoProps) {\n super(props, DEFAULT_CLASS, new WmVideoProps(), new WmVideoState());\n }\n\n getSource(path: string) {\n if (!path) {\n return null;\n }\n const resource = this.loadAsset && this.loadAsset(path);\n if (isFullPathUrl(resource as string)) {\n return {\n uri: resource as string,\n };\n }\n return resource || {\n uri: ''\n };\n }\n\n renderVideoPoster(props: WmVideoProps) {\n const accessibilityImageProps = {...props, \n accessibilitylabel : `${props.accessibilitylabel}_poster`,\n hint: `${props.hint}_poster`,\n accessibilityrole: 'image'\n }\n return (\n <TouchableWithoutFeedback onPress={() => this.player.play()}>\n <Image\n {...this.getTestProps('video_poster')}\n style={{\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: '100%',\n height: '100%',\n }}\n resizeMode={'cover'}\n source={this.getSource(props.videoposter) as any}\n {...getAccessibilityProps(AccessibilityWidgetType.PICTURE, accessibilityImageProps)}\n />\n </TouchableWithoutFeedback>\n );\n }\n\n\n public renderSkeleton(props: WmVideoProps): React.ReactNode {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n });\n }\n\n public playingStatusChange(isPlaying: boolean) {\n if (!this.state.playStarted) {\n this.updateState({\n playStarted: this.state.props.autoplay || isPlaying,\n } as WmVideoState);\n }\n }\n\n playerReadyStatusChange(statusObj: any) {\n const videoReady = statusObj.status === 'readyToPlay'\n if (this.state.props.autoplay && videoReady) {\n this.player.play();\n }\n this.updateState({\n isVideoReady: videoReady,\n } as WmVideoState);\n }\n\n initializeProps(){\n const {\n loop,\n muted,\n showNowPlayingNotification,\n } = this.state.props\n\n this.player.muted = muted; \n this.player.loop = loop; \n this.player.showNowPlayingNotification = showNowPlayingNotification; \n }\n\n componentDidMount(): void {\n super.componentDidMount();\n const { mp4format, webmformat, autoplay } = this.state.props;\n const videoSource = this.getSource(mp4format || webmformat) ;\n\n this.player = this.videoService?.createVideoPlayer(videoSource);\n this.player.addListener(\n 'playingChange',\n this.playingStatusChange.bind(this)\n );\n this.player.addListener(\n 'statusChange',\n this.playerReadyStatusChange.bind(this)\n ); \n this.initializeProps()\n }\n\n onPlayIconTap() {\n this.updateState({\n videoPosterDismissed: true\n } as WmVideoState)\n this.player.play()\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.player.removeListener('playingChange', this.playingStatusChange);\n this.player.removeListener('statusChange', this.playerReadyStatusChange);\n this.player.release();\n }\n\n //TASK: Overlay on video widged should be removed once upgraded to expo 53.\n\n renderWidget(props: WmVideoProps) {\n const {\n allowsPictureInPicture,\n videoposter,\n onFullscreenEnter,\n onFullscreenExit,\n requiresLinearPlayback,\n showdefaultvideoposter\n } = props;\n\n const { playStarted } = this.state;\n const isPlaying = playStarted || this.state.props.autoplay;\n const showOverlay = !showdefaultvideoposter && !this.state.videoPosterDismissed\n\n \n return (\n <VideoConsumer>\n {(videoService: any) => {\n this.videoService = videoService;\n const VideoView = videoService?.VideoView;\n return (\n <View \n style={this.styles.root}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this._background}\n <VideoView\n {...getAccessibilityProps(AccessibilityWidgetType.VIDEO, props)}\n style={{ width: '100%', height: '100%', flex: 1 }}\n player={this.player}\n nativeControls={props.controls || showOverlay}\n contentFit={'contain'}\n testID={this.getTestId('video')}\n allowsPictureInPicture={allowsPictureInPicture}\n onFullscreenEnter={onFullscreenEnter}\n onFullscreenExit={onFullscreenExit}\n requiresLinearPlayback={requiresLinearPlayback}\n />\n {Platform.OS === 'android' && !(props.controls && showOverlay ) && <Tappable onTap={() => {}} styles={{zIndex: 10, position:\"absolute\", width: '100%', height: '100%', flex: 1 }}>\n <View testID={this.getTestId('video_overlay')} style={{backgroundColor:'transparent', width: '100%', height: '100%', flex: 1}}>\n </View>\n </Tappable>}\n {!isPlaying && videoposter && showdefaultvideoposter ? (\n this.renderVideoPoster(props)\n ) : (\n <></>\n )}\n {\n !isPlaying && !showdefaultvideoposter && !this.state.videoPosterDismissed ? (\n <View style={this.styles.playIconContainer}>\n <TouchableWithoutFeedback style={{width: 80, height: 80 }} onPress={this.onPlayIconTap.bind(this)}>\n {Platform.OS === 'android' ? <Image\n {...this.getTestProps('video_play_button')}\n style={{\n width: 80, \n height: 80,\n }}\n resizeMode={'contain'}\n source={this.getSource('resources/images/imagelists/play.png') as any}\n /> : <Text style={{ fontSize: 80, fontWeight: 'bold', color: 'white'}} >▶</Text> } \n </TouchableWithoutFeedback>\n </View> \n ) : (\n <></>\n )\n }\n </View>\n )}}\n </VideoConsumer>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Image","TouchableWithoutFeedback","Platform","Text","BaseComponent","BaseComponentState","WmVideoProps","DEFAULT_CLASS","AccessibilityWidgetType","getAccessibilityProps","isFullPathUrl","createSkeleton","VideoConsumer","Tappable","WmVideoState","constructor","args","_defineProperty","WmVideo","props","getSource","path","resource","loadAsset","uri","renderVideoPoster","accessibilityImageProps","accessibilitylabel","hint","accessibilityrole","createElement","onPress","_this$player","player","play","_extends","getTestProps","style","position","top","bottom","left","right","width","height","resizeMode","source","videoposter","PICTURE","renderSkeleton","theme","styles","skeleton","root","playingStatusChange","isPlaying","state","playStarted","updateState","autoplay","playerReadyStatusChange","statusObj","videoReady","status","isVideoReady","initializeProps","loop","muted","showNowPlayingNotification","componentDidMount","initializePlayer","videoService","isPlayerInitialized","mp4format","webmformat","videoSource","createVideoPlayer","addListener","bind","onPlayIconTap","videoPosterDismissed","componentWillUnmount","removeListener","release","renderWidget","allowsPictureInPicture","onFullscreenEnter","onFullscreenExit","requiresLinearPlayback","showdefaultvideoposter","showOverlay","VideoView","onLayout","event","handleLayout","_background","VIDEO","flex","nativeControls","controls","contentFit","testID","getTestId","OS","onTap","zIndex","backgroundColor","Fragment","playIconContainer","fontSize","fontWeight","color"],"sources":["video.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Image, TouchableWithoutFeedback, Platform, Text } from 'react-native';\nimport {\n BaseComponent,\n BaseComponentState,\n} from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmVideoProps from './video.props';\nimport { DEFAULT_CLASS, WmVideoStyles } from './video.styles';\nimport {\n AccessibilityWidgetType,\n getAccessibilityProps,\n} from '@wavemaker/app-rn-runtime/core/accessibility';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { VideoConsumer } from '@wavemaker/app-rn-runtime/core/device/av-service';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\n\nexport class WmVideoState extends BaseComponentState<WmVideoProps> {\n isVideoReady: boolean = false;\n playStarted: boolean = false;\n videoPosterDismissed: boolean = false;\n}\n\nexport default class WmVideo extends BaseComponent<\n WmVideoProps,\n WmVideoState,\n WmVideoStyles\n> {\n private player: any;\n private videoService: any = null as any;\n private isPlayerInitialized: boolean = false;\n\n constructor(props: WmVideoProps) {\n super(props, DEFAULT_CLASS, new WmVideoProps(), new WmVideoState());\n }\n\n getSource(path: string) {\n if (!path) {\n return null;\n }\n const resource = this.loadAsset && this.loadAsset(path);\n if (isFullPathUrl(resource as string)) {\n return {\n uri: resource as string,\n };\n }\n return resource || {\n uri: ''\n };\n }\n\n renderVideoPoster(props: WmVideoProps) {\n const accessibilityImageProps = {...props, \n accessibilitylabel : `${props.accessibilitylabel}_poster`,\n hint: `${props.hint}_poster`,\n accessibilityrole: 'image'\n }\n return (\n <TouchableWithoutFeedback onPress={() => this.player?.play()}>\n <Image\n {...this.getTestProps('video_poster')}\n style={{\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: '100%',\n height: '100%',\n }}\n resizeMode={'cover'}\n source={this.getSource(props.videoposter) as any}\n {...getAccessibilityProps(AccessibilityWidgetType.PICTURE, accessibilityImageProps)}\n />\n </TouchableWithoutFeedback>\n );\n }\n\n\n public renderSkeleton(props: WmVideoProps): React.ReactNode {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n });\n }\n\n public playingStatusChange(isPlaying: boolean) {\n if (!this.state.playStarted) {\n this.updateState({\n playStarted: this.state.props.autoplay || isPlaying,\n } as WmVideoState);\n }\n }\n\n playerReadyStatusChange(statusObj: any) {\n const videoReady = statusObj.status === 'readyToPlay'\n if (this.state.props.autoplay && videoReady && this.player) {\n this.player.play();\n }\n this.updateState({\n isVideoReady: videoReady,\n } as WmVideoState);\n }\n\n initializeProps(){\n if (!this.player) {\n return;\n }\n \n const {\n loop,\n muted,\n showNowPlayingNotification,\n } = this.state.props\n\n this.player.muted = muted; \n this.player.loop = loop; \n this.player.showNowPlayingNotification = showNowPlayingNotification; \n }\n\n componentDidMount(): void {\n super.componentDidMount();\n }\n\n initializePlayer(videoService: any) {\n if (this.isPlayerInitialized || !videoService) {\n return; // Player already initialized or videoService not available\n }\n\n const { mp4format, webmformat } = this.state.props;\n const videoSource = this.getSource(mp4format || webmformat);\n\n this.player = videoService.createVideoPlayer(videoSource);\n this.player.addListener(\n 'playingChange',\n this.playingStatusChange.bind(this)\n );\n this.player.addListener(\n 'statusChange',\n this.playerReadyStatusChange.bind(this)\n ); \n this.initializeProps();\n this.isPlayerInitialized = true;\n }\n\n onPlayIconTap() {\n this.updateState({\n videoPosterDismissed: true\n } as WmVideoState)\n if (this.player) {\n this.player.play()\n }\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n if (this.player) {\n this.player.removeListener('playingChange', this.playingStatusChange);\n this.player.removeListener('statusChange', this.playerReadyStatusChange);\n this.player.release();\n }\n this.player = null;\n this.videoService = null;\n this.isPlayerInitialized = false;\n }\n\n //TASK: Overlay on video widged should be removed once upgraded to expo 53.\n\n renderWidget(props: WmVideoProps) {\n const {\n allowsPictureInPicture,\n videoposter,\n onFullscreenEnter,\n onFullscreenExit,\n requiresLinearPlayback,\n showdefaultvideoposter\n } = props;\n\n const { playStarted } = this.state;\n const isPlaying = playStarted || this.state.props.autoplay;\n const showOverlay = !showdefaultvideoposter && !this.state.videoPosterDismissed\n\n \n return (\n <VideoConsumer>\n {(videoService: any) => {\n // Only set videoService and initialize player once\n if (videoService && !this.videoService) {\n this.videoService = videoService;\n this.initializePlayer(videoService);\n }\n const VideoView = videoService?.VideoView;\n return (\n <View \n style={this.styles.root}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this._background}\n <VideoView\n {...getAccessibilityProps(AccessibilityWidgetType.VIDEO, props)}\n style={{ width: '100%', height: '100%', flex: 1 }}\n player={this.player}\n nativeControls={props.controls || showOverlay}\n contentFit={'contain'}\n testID={this.getTestId('video')}\n allowsPictureInPicture={allowsPictureInPicture}\n onFullscreenEnter={onFullscreenEnter}\n onFullscreenExit={onFullscreenExit}\n requiresLinearPlayback={requiresLinearPlayback}\n />\n {Platform.OS === 'android' && !(props.controls && showOverlay ) && <Tappable onTap={() => {}} styles={{zIndex: 10, position:\"absolute\", width: '100%', height: '100%', flex: 1 }}>\n <View testID={this.getTestId('video_overlay')} style={{backgroundColor:'transparent', width: '100%', height: '100%', flex: 1}}>\n </View>\n </Tappable>}\n {!isPlaying && videoposter && showdefaultvideoposter ? (\n this.renderVideoPoster(props)\n ) : (\n <></>\n )}\n {\n !isPlaying && !showdefaultvideoposter && !this.state.videoPosterDismissed ? (\n <View style={this.styles.playIconContainer}>\n <TouchableWithoutFeedback style={{width: 80, height: 80 }} onPress={this.onPlayIconTap.bind(this)}>\n {Platform.OS === 'android' ? <Image\n {...this.getTestProps('video_play_button')}\n style={{\n width: 80, \n height: 80,\n }}\n resizeMode={'contain'}\n source={this.getSource('resources/images/imagelists/play.png') as any}\n /> : <Text style={{ fontSize: 80, fontWeight: 'bold', color: 'white'}} >▶</Text> } \n </TouchableWithoutFeedback>\n </View> \n ) : (\n <></>\n )\n }\n </View>\n )}}\n </VideoConsumer>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
@@ -77,15 +77,12 @@ export default class WmContainer extends PartialHost {
77
77
  }
78
78
  getStickyHeaderTranslateY() {
79
79
  var _this$appConfig, _this$containerRef;
80
- const {
81
- stickyContainerTranslateY
82
- } = this.context;
83
80
  const isEdgeToEdgeApp = !!((_this$appConfig = this.appConfig) !== null && _this$appConfig !== void 0 && (_this$appConfig = _this$appConfig.edgeToEdgeConfig) !== null && _this$appConfig !== void 0 && _this$appConfig.isEdgeToEdgeApp);
84
81
  (_this$containerRef = this.containerRef) === null || _this$containerRef === void 0 || (_this$containerRef = _this$containerRef.current) === null || _this$containerRef === void 0 || _this$containerRef.measure((_x = 0, _y = 0, _width = 0, _height = 0, px = 0, py = 0) => {
85
82
  var _this$insets;
86
83
  const topInsetsInYposition = Platform.OS == 'ios' && !isEdgeToEdgeApp ? ((_this$insets = this.insets) === null || _this$insets === void 0 ? void 0 : _this$insets.top) || 0 : 0;
87
- if (stickyContainerTranslateY) {
88
- stickyContainerTranslateY.value = py - topInsetsInYposition;
84
+ if (this.context && this.context.stickyContainerTranslateY) {
85
+ this.context.stickyContainerTranslateY.value = py - topInsetsInYposition;
89
86
  this.updateState({
90
87
  stickyContainerVisibility: true
91
88
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Platform","Animated","WmContainerProps","DEFAULT_CLASS","Tappable","Animatedview","PartialHost","PartialHostState","createSkeleton","ScrollView","StickyWrapperContext","SafeAreaInsetsContext","StickyContainer","getParentStyles","injector","WmContainerState","constructor","args","_defineProperty","WmContainer","props","get","top","bottom","left","right","containerRef","createRef","stickyContainerOpacity","Value","subscribe","_event","sticky","setTimeout","getStickyHeaderTranslateY","getBackground","_showSkeleton","_background","renderSkeleton","showskeletonchildren","_this$props","dimensions","width","styles","root","undefined","height","skeletonStyles","skeleton","text","theme","createElement","style","opacity","_extends","getTestPropsForAction","target","disableTouchEffect","state","disabletoucheffect","content","renderContent","_this$appConfig","_this$containerRef","stickyContainerTranslateY","context","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","current","measure","_x","_y","_width","_height","px","py","_this$insets","topInsetsInYposition","OS","insets","value","updateState","stickyContainerVisibility","componentDidUpdate","_prevProps","prevState","timing","toValue","delay","useNativeDriver","start","renderStickyContent","positioningStyles","Fragment","component","backgroundColor","positionStyles","show","ref","renderWidget","isSticky","Consumer","entryanimation","animation","animationdelay","onLayout","event","handleLayout","scrollable","onScroll","notify","scrollEventThrottle"],"sources":["container.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, View, ViewStyle, Platform, Animated } from 'react-native';\nimport WmContainerProps from './container.props';\nimport { DEFAULT_CLASS, WmContainerStyles } from './container.styles';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport { PartialHost, PartialHostState } from './partial-host.component';\nimport { createSkeleton } from '../basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../basic/skeleton/skeleton.styles';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { StickyWrapperContextType, StickyWrapperContext } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { EdgeInsets, SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport { StickyContainer } from '@wavemaker/app-rn-runtime/core/components/sticky-container.component';\nimport { getParentStyles } from '@wavemaker/app-rn-runtime/core/components/sticky-container.styles';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\nexport class WmContainerState extends PartialHostState<WmContainerProps> {\n isPartialLoaded = false;\n stickyContainerVisibility = false;\n}\n\nexport default class WmContainer extends PartialHost<WmContainerProps, WmContainerState, WmContainerStyles> {\n static contextType = StickyWrapperContext;\n private containerRef: React.RefObject<View>;\n private stickyContainerOpacity: Animated.Value;\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n insets: EdgeInsets | null = {\n top: 0, bottom: 0, left: 0, right: 0\n };\n\n constructor(props: WmContainerProps) {\n super(props, DEFAULT_CLASS, new WmContainerProps(), new WmContainerState());\n this.containerRef = React.createRef();\n this.stickyContainerOpacity = new Animated.Value(1);\n\n this.subscribe('updateStickyHeaders', (_event: any) => {\n if(this.props.sticky){\n setTimeout(()=>{\n this.getStickyHeaderTranslateY();\n }, 500);\n }\n })\n }\n\n getBackground(): React.JSX.Element | null {\n return this._showSkeleton ? null : this._background\n } \n \n public renderSkeleton(props: WmContainerProps): React.ReactNode {\n if(!props.showskeletonchildren) {\n const dimensions = {\n width: this.styles.root.width ? '100%' : undefined,\n height: this.styles.root.height ? '100%' : undefined\n }; \n const skeletonStyles: WmSkeletonStyles = this.props?.styles?.skeleton || { root: {}, text: {} } as WmSkeletonStyles\n return createSkeleton(this.theme, skeletonStyles, {\n ...this.styles.root\n }, (<View style={[this.styles.root, { opacity: 0 }]}>\n <Tappable {...this.getTestPropsForAction()} target={this} styles={dimensions} disableTouchEffect={this.state.props.disabletoucheffect}>\n <View style={[dimensions as ViewStyle, this.styles.content]}>{this.renderContent(props)}</View>\n </Tappable>\n\n </View>))\n }\n return null;\n }\n\n public getStickyHeaderTranslateY(){\n const { stickyContainerTranslateY } = this.context as StickyWrapperContextType;\n const isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n this.containerRef?.current?.measure((_x = 0, _y = 0, _width = 0, _height = 0, px = 0, py = 0)=>{\n const topInsetsInYposition = (Platform.OS == 'ios' && !isEdgeToEdgeApp) ? (this.insets?.top || 0): 0\n if(stickyContainerTranslateY) {\n stickyContainerTranslateY.value = py - topInsetsInYposition ;\n this.updateState({ stickyContainerVisibility: true} as WmContainerState); \n }\n })\n }\n\n componentDidUpdate(_prevProps: any, prevState: any) {\n if (prevState.stickyContainerVisibility !== this.state.stickyContainerVisibility) {\n Animated.timing(this.stickyContainerOpacity, {\n toValue: this.state.stickyContainerVisibility ? 0 : 1,\n delay: 500,\n useNativeDriver: true\n }).start();\n }\n }\n\n private renderStickyContent(props: WmContainerProps, dimensions: ViewStyle, styles: ViewStyle) {\n const { stickyContainerVisibility } = this.state;\n const { positioningStyles } = getParentStyles(this);\n\n return (\n <>\n {stickyContainerVisibility ? (\n <StickyContainer\n component={this}\n theme={this.theme}\n style={[\n this.styles.sticky,\n { backgroundColor: styles.backgroundColor }\n ]}\n positionStyles={positioningStyles}\n show={props.show as boolean}\n >\n <View style={[dimensions as ViewStyle, { backgroundColor: styles.backgroundColor }, this.styles.content]}>\n {this.renderContent(props)}\n </View>\n </StickyContainer>\n ) : <></>}\n <Animated.View \n style={[\n dimensions as ViewStyle, \n { opacity: this.stickyContainerOpacity }, \n this.styles.content\n ]} \n ref={this.containerRef}\n >\n {this.renderContent(props)}\n </Animated.View>\n </>\n );\n }\n\n renderWidget(props: WmContainerProps) {\n const dimensions: ViewStyle = {\n width: this.styles.root.width ? '100%' : undefined,\n height: this.styles.root.height ? '100%' : undefined\n };\n\n const styles = this._showSkeleton ? {\n ...this.styles.root,\n ...this.styles.skeleton.root\n } : this.styles.root;\n\n if (props.sticky) {\n this.isSticky = true;\n }\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n this.insets = insets;\n return (\n <Animatedview \n entryanimation={props.animation} \n delay={props.animationdelay} \n style={styles}\n onLayout={(event: LayoutChangeEvent, ref: React.RefObject<View>) => {\n this.handleLayout(event, ref);\n }}\n >\n {this.getBackground()}\n <Tappable \n {...this.getTestPropsForAction()} \n target={this} \n styles={dimensions} \n disableTouchEffect={this.state.props.disabletoucheffect}\n >\n {props.sticky ? (\n this.renderStickyContent(props, dimensions, styles)\n ) : !props.scrollable ? (\n <View style={[dimensions as ViewStyle, this.styles.content]}>\n {this.renderContent(props)}\n </View>\n ) : (\n <ScrollView \n style={[dimensions as ViewStyle, this.styles.content]}\n onScroll={(event) => this.notify('scroll', [event])}\n scrollEventThrottle={48}\n >\n {this.renderContent(props)}\n </ScrollView>\n )}\n </Tappable>\n </Animatedview>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","Platform","Animated","WmContainerProps","DEFAULT_CLASS","Tappable","Animatedview","PartialHost","PartialHostState","createSkeleton","ScrollView","StickyWrapperContext","SafeAreaInsetsContext","StickyContainer","getParentStyles","injector","WmContainerState","constructor","args","_defineProperty","WmContainer","props","get","top","bottom","left","right","containerRef","createRef","stickyContainerOpacity","Value","subscribe","_event","sticky","setTimeout","getStickyHeaderTranslateY","getBackground","_showSkeleton","_background","renderSkeleton","showskeletonchildren","_this$props","dimensions","width","styles","root","undefined","height","skeletonStyles","skeleton","text","theme","createElement","style","opacity","_extends","getTestPropsForAction","target","disableTouchEffect","state","disabletoucheffect","content","renderContent","_this$appConfig","_this$containerRef","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","current","measure","_x","_y","_width","_height","px","py","_this$insets","topInsetsInYposition","OS","insets","context","stickyContainerTranslateY","value","updateState","stickyContainerVisibility","componentDidUpdate","_prevProps","prevState","timing","toValue","delay","useNativeDriver","start","renderStickyContent","positioningStyles","Fragment","component","backgroundColor","positionStyles","show","ref","renderWidget","isSticky","Consumer","entryanimation","animation","animationdelay","onLayout","event","handleLayout","scrollable","onScroll","notify","scrollEventThrottle"],"sources":["container.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, View, ViewStyle, Platform, Animated } from 'react-native';\nimport WmContainerProps from './container.props';\nimport { DEFAULT_CLASS, WmContainerStyles } from './container.styles';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport { PartialHost, PartialHostState } from './partial-host.component';\nimport { createSkeleton } from '../basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../basic/skeleton/skeleton.styles';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { StickyWrapperContextType, StickyWrapperContext } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { EdgeInsets, SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport { StickyContainer } from '@wavemaker/app-rn-runtime/core/components/sticky-container.component';\nimport { getParentStyles } from '@wavemaker/app-rn-runtime/core/components/sticky-container.styles';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\nexport class WmContainerState extends PartialHostState<WmContainerProps> {\n isPartialLoaded = false;\n stickyContainerVisibility = false;\n}\n\nexport default class WmContainer extends PartialHost<WmContainerProps, WmContainerState, WmContainerStyles> {\n static contextType = StickyWrapperContext;\n private containerRef: React.RefObject<View>;\n private stickyContainerOpacity: Animated.Value;\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n insets: EdgeInsets | null = {\n top: 0, bottom: 0, left: 0, right: 0\n };\n\n constructor(props: WmContainerProps) {\n super(props, DEFAULT_CLASS, new WmContainerProps(), new WmContainerState());\n this.containerRef = React.createRef();\n this.stickyContainerOpacity = new Animated.Value(1);\n\n this.subscribe('updateStickyHeaders', (_event: any) => {\n if(this.props.sticky){\n setTimeout(()=>{\n this.getStickyHeaderTranslateY();\n }, 500);\n }\n })\n }\n\n getBackground(): React.JSX.Element | null {\n return this._showSkeleton ? null : this._background\n } \n \n public renderSkeleton(props: WmContainerProps): React.ReactNode {\n if(!props.showskeletonchildren) {\n const dimensions = {\n width: this.styles.root.width ? '100%' : undefined,\n height: this.styles.root.height ? '100%' : undefined\n }; \n const skeletonStyles: WmSkeletonStyles = this.props?.styles?.skeleton || { root: {}, text: {} } as WmSkeletonStyles\n return createSkeleton(this.theme, skeletonStyles, {\n ...this.styles.root\n }, (<View style={[this.styles.root, { opacity: 0 }]}>\n <Tappable {...this.getTestPropsForAction()} target={this} styles={dimensions} disableTouchEffect={this.state.props.disabletoucheffect}>\n <View style={[dimensions as ViewStyle, this.styles.content]}>{this.renderContent(props)}</View>\n </Tappable>\n\n </View>))\n }\n return null;\n }\n\n public getStickyHeaderTranslateY(){\n const isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n this.containerRef?.current?.measure((_x = 0, _y = 0, _width = 0, _height = 0, px = 0, py = 0)=>{\n const topInsetsInYposition = (Platform.OS == 'ios' && !isEdgeToEdgeApp) ? (this.insets?.top || 0): 0\n if((this.context) && (this.context as StickyWrapperContextType).stickyContainerTranslateY) {\n (this.context as StickyWrapperContextType).stickyContainerTranslateY.value = py - topInsetsInYposition ;\n this.updateState({ stickyContainerVisibility: true} as WmContainerState); \n }\n })\n }\n\n componentDidUpdate(_prevProps: any, prevState: any) {\n if (prevState.stickyContainerVisibility !== this.state.stickyContainerVisibility) {\n Animated.timing(this.stickyContainerOpacity, {\n toValue: this.state.stickyContainerVisibility ? 0 : 1,\n delay: 500,\n useNativeDriver: true\n }).start();\n }\n }\n\n private renderStickyContent(props: WmContainerProps, dimensions: ViewStyle, styles: ViewStyle) {\n const { stickyContainerVisibility } = this.state;\n const { positioningStyles } = getParentStyles(this);\n\n return (\n <>\n {stickyContainerVisibility ? (\n <StickyContainer\n component={this}\n theme={this.theme}\n style={[\n this.styles.sticky,\n { backgroundColor: styles.backgroundColor }\n ]}\n positionStyles={positioningStyles}\n show={props.show as boolean}\n >\n <View style={[dimensions as ViewStyle, { backgroundColor: styles.backgroundColor }, this.styles.content]}>\n {this.renderContent(props)}\n </View>\n </StickyContainer>\n ) : <></>}\n <Animated.View \n style={[\n dimensions as ViewStyle, \n { opacity: this.stickyContainerOpacity }, \n this.styles.content\n ]} \n ref={this.containerRef}\n >\n {this.renderContent(props)}\n </Animated.View>\n </>\n );\n }\n\n renderWidget(props: WmContainerProps) {\n const dimensions: ViewStyle = {\n width: this.styles.root.width ? '100%' : undefined,\n height: this.styles.root.height ? '100%' : undefined\n };\n\n const styles = this._showSkeleton ? {\n ...this.styles.root,\n ...this.styles.skeleton.root\n } : this.styles.root;\n\n if (props.sticky) {\n this.isSticky = true;\n }\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n this.insets = insets;\n return (\n <Animatedview \n entryanimation={props.animation} \n delay={props.animationdelay} \n style={styles}\n onLayout={(event: LayoutChangeEvent, ref: React.RefObject<View>) => {\n this.handleLayout(event, ref);\n }}\n >\n {this.getBackground()}\n <Tappable \n {...this.getTestPropsForAction()} \n target={this} \n styles={dimensions} \n disableTouchEffect={this.state.props.disabletoucheffect}\n >\n {props.sticky ? (\n this.renderStickyContent(props, dimensions, styles)\n ) : !props.scrollable ? (\n <View style={[dimensions as ViewStyle, this.styles.content]}>\n {this.renderContent(props)}\n </View>\n ) : (\n <ScrollView \n style={[dimensions as ViewStyle, this.styles.content]}\n onScroll={(event) => this.notify('scroll', [event])}\n scrollEventThrottle={48}\n >\n {this.renderContent(props)}\n </ScrollView>\n )}\n </Tappable>\n </Animatedview>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -39,9 +39,6 @@ export default class WmAppNavbar extends BaseComponent {
39
39
  const badge = props.badgevalue != undefined ? /*#__PURE__*/React.createElement(Badge, _extends({
40
40
  style: this.styles.badge
41
41
  }, this.getTestProps('badge')), props.badgevalue) : null;
42
- const {
43
- navHeight
44
- } = this.context;
45
42
  let navHeightValue;
46
43
  return /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, (insets = {
47
44
  top: 0,
@@ -62,10 +59,10 @@ export default class WmAppNavbar extends BaseComponent {
62
59
  this.baseView = ref;
63
60
  },
64
61
  onLayout: event => {
65
- if (navHeight) {
62
+ if (this.context && this.context.navHeight) {
66
63
  if (isEdgeToEdgeApp && insets !== null && insets !== void 0 && insets.top || !isEdgeToEdgeApp || isWebPreviewMode()) {
67
64
  navHeightValue = event.nativeEvent.layout.height || 0;
68
- navHeight.value = navHeightValue;
65
+ this.context.navHeight.value = navHeightValue;
69
66
  this.notify('updateNavHeight', [navHeightValue], true);
70
67
  }
71
68
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","Text","View","BackHandler","Badge","isAndroid","isWebPreviewMode","BaseComponent","BaseComponentState","WmIcon","WmPicture","WmAppNavbarProps","DEFAULT_CLASS","SafeAreaInsetsContext","injector","StickyWrapperContext","StickyNav","WmAppNavbarState","WmAppNavbar","constructor","props","_defineProperty","get","onDrawerBtnPress","invokeEventCallback","bind","onBackBtnPress","onSearchBtnPress","subscription","addEventListener","cleanup","push","remove","renderContent","badge","badgevalue","undefined","createElement","_extends","style","styles","getTestProps","navHeight","context","navHeightValue","Consumer","insets","top","bottom","left","right","_this$appConfig","paddingTopVal","root","paddingTop","padding","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","stylesWithFs","height","ref","baseView","onLayout","event","nativeEvent","layout","value","notify","handleLayout","_background","leftSection","showDrawerButton","id","getTestId","hint","theme","mergeStyle","action","leftnavIcon","iconclass","leftnavpaneliconclass","onTap","backbutton","backIcon","backbuttoniconclass","caption","backbuttonlabel","middleSection","imgsrc","image","picturesource","content","getTestPropsForLabel","accessibilityRole","title","rightSection","searchbutton","searchbuttoniconclass","children","renderWidget","hideonscroll","component"],"sources":["appnavbar.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, View, BackHandler } from 'react-native';\nimport { Badge } from 'react-native-paper';\n\nimport { isAndroid, isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport WmPicture from '@wavemaker/app-rn-runtime/components/basic/picture/picture.component';\n\nimport WmAppNavbarProps from './appnavbar.props';\nimport { DEFAULT_CLASS, WmAppNavbarStyles } from './appnavbar.styles';\n\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { StickyWrapperContext, StickyWrapperContextType } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { StickyNav } from '@wavemaker/app-rn-runtime/core/components/sticky-nav.component';\n\nexport class WmAppNavbarState extends BaseComponentState<WmAppNavbarProps> {}\n\nexport default class WmAppNavbar extends BaseComponent<WmAppNavbarProps, WmAppNavbarState, WmAppNavbarStyles> {\n\n private onDrawerBtnPress: Function;\n private onBackBtnPress: Function;\n private onSearchBtnPress: Function;\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n static contextType = StickyWrapperContext;\n\n constructor(props: WmAppNavbarProps) {\n super(props, DEFAULT_CLASS, new WmAppNavbarProps());\n this.onDrawerBtnPress = (() => this.invokeEventCallback('onDrawerbuttonpress', [null, this])).bind(this);\n this.onBackBtnPress = (() => this.invokeEventCallback('onBackbtnclick', [null, this])).bind(this);\n this.onSearchBtnPress = (() => this.invokeEventCallback('onSearchbuttonpress', [null, this])).bind(this);\n if (isAndroid() && !isWebPreviewMode()) {\n const subscription = BackHandler.addEventListener('hardwareBackPress', () => {\n this.onBackBtnPress();\n return true;\n });\n this.cleanup.push(() => subscription.remove());\n }\n }\n\n renderContent(props: WmAppNavbarProps) {\n //@ts-ignore\n const badge = props.badgevalue != undefined ? (<Badge style={this.styles.badge} {...this.getTestProps('badge')}>{props.badgevalue}</Badge>): null;\n const { navHeight } = this.context as StickyWrapperContextType;\n let navHeightValue;\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const paddingTopVal = this.styles.root.paddingTop || this.styles.root.padding;\n const isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n const stylesWithFs = isEdgeToEdgeApp ? {height: this.styles.root.height as number + (insets?.top || 0) as number, \n paddingTop: (paddingTopVal || 0) as number + (insets?.top || 0) as number} : {}\n return (\n <View style={[this.styles.root, stylesWithFs]} ref={ref => {this.baseView = ref as View}} onLayout={(event) => {\n if(navHeight) {\n if((isEdgeToEdgeApp && insets?.top) || !isEdgeToEdgeApp || isWebPreviewMode()){\n navHeightValue = event.nativeEvent.layout.height || 0;\n navHeight.value = navHeightValue;\n this.notify('updateNavHeight', [navHeightValue], true);\n }\n }\n this.handleLayout(event);\n }}>\n {this._background}\n <View style={this.styles.leftSection}>\n {props.showDrawerButton && (<WmIcon\n id={this.getTestId('leftnavbtn')}\n hint={'menu'}\n styles={this.theme.mergeStyle({}, this.styles.action, this.styles.leftnavIcon)}\n iconclass={props.leftnavpaneliconclass}\n onTap={this.onDrawerBtnPress}\n />)}\n {props.backbutton && (<WmIcon\n id={this.getTestId('backbtn')}\n hint={'back'}\n styles={this.theme.mergeStyle({}, this.styles.action, this.styles.backIcon)}\n iconclass={props.backbuttoniconclass}\n caption={props.backbuttonlabel}\n onTap={this.onBackBtnPress}/>)}\n </View>\n <View style={this.styles.middleSection}>\n {props.imgsrc && (\n <WmPicture\n id={this.getTestId('picture')}\n styles={this.styles.image}\n picturesource={props.imgsrc} />)}\n <Text style={this.styles.content} {...this.getTestPropsForLabel('title')} accessibilityRole='header'>{props.title}</Text>\n {badge}\n </View>\n <View style={this.styles.rightSection}>\n {props.searchbutton && (<WmIcon\n id={this.getTestId('searchbtn')}\n styles={this.theme.mergeStyle({}, this.styles.action, this.styles.leftnavIcon)}\n iconclass={props.searchbuttoniconclass}\n onTap={this.onSearchBtnPress}\n />)}\n {props.children}\n </View>\n </View>\n )}}\n </SafeAreaInsetsContext.Consumer>\n )\n }\n\n renderWidget(props: WmAppNavbarProps){\n return this.props.hideonscroll ? (\n <StickyNav\n component={this}\n theme={this.theme}\n >\n {this.renderContent(props)}\n </StickyNav>\n ) : this.renderContent(props)\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Text","View","BackHandler","Badge","isAndroid","isWebPreviewMode","BaseComponent","BaseComponentState","WmIcon","WmPicture","WmAppNavbarProps","DEFAULT_CLASS","SafeAreaInsetsContext","injector","StickyWrapperContext","StickyNav","WmAppNavbarState","WmAppNavbar","constructor","props","_defineProperty","get","onDrawerBtnPress","invokeEventCallback","bind","onBackBtnPress","onSearchBtnPress","subscription","addEventListener","cleanup","push","remove","renderContent","badge","badgevalue","undefined","createElement","_extends","style","styles","getTestProps","navHeightValue","Consumer","insets","top","bottom","left","right","_this$appConfig","paddingTopVal","root","paddingTop","padding","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","stylesWithFs","height","ref","baseView","onLayout","event","context","navHeight","nativeEvent","layout","value","notify","handleLayout","_background","leftSection","showDrawerButton","id","getTestId","hint","theme","mergeStyle","action","leftnavIcon","iconclass","leftnavpaneliconclass","onTap","backbutton","backIcon","backbuttoniconclass","caption","backbuttonlabel","middleSection","imgsrc","image","picturesource","content","getTestPropsForLabel","accessibilityRole","title","rightSection","searchbutton","searchbuttoniconclass","children","renderWidget","hideonscroll","component"],"sources":["appnavbar.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, View, BackHandler } from 'react-native';\nimport { Badge } from 'react-native-paper';\n\nimport { isAndroid, isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport WmPicture from '@wavemaker/app-rn-runtime/components/basic/picture/picture.component';\n\nimport WmAppNavbarProps from './appnavbar.props';\nimport { DEFAULT_CLASS, WmAppNavbarStyles } from './appnavbar.styles';\n\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { StickyWrapperContext, StickyWrapperContextType } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { StickyNav } from '@wavemaker/app-rn-runtime/core/components/sticky-nav.component';\n\nexport class WmAppNavbarState extends BaseComponentState<WmAppNavbarProps> {}\n\nexport default class WmAppNavbar extends BaseComponent<WmAppNavbarProps, WmAppNavbarState, WmAppNavbarStyles> {\n\n private onDrawerBtnPress: Function;\n private onBackBtnPress: Function;\n private onSearchBtnPress: Function;\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n static contextType = StickyWrapperContext;\n\n constructor(props: WmAppNavbarProps) {\n super(props, DEFAULT_CLASS, new WmAppNavbarProps());\n this.onDrawerBtnPress = (() => this.invokeEventCallback('onDrawerbuttonpress', [null, this])).bind(this);\n this.onBackBtnPress = (() => this.invokeEventCallback('onBackbtnclick', [null, this])).bind(this);\n this.onSearchBtnPress = (() => this.invokeEventCallback('onSearchbuttonpress', [null, this])).bind(this);\n if (isAndroid() && !isWebPreviewMode()) {\n const subscription = BackHandler.addEventListener('hardwareBackPress', () => {\n this.onBackBtnPress();\n return true;\n });\n this.cleanup.push(() => subscription.remove());\n }\n }\n\n renderContent(props: WmAppNavbarProps) {\n //@ts-ignore\n const badge = props.badgevalue != undefined ? (<Badge style={this.styles.badge} {...this.getTestProps('badge')}>{props.badgevalue}</Badge>): null;\n\n let navHeightValue;\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const paddingTopVal = this.styles.root.paddingTop || this.styles.root.padding;\n const isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n const stylesWithFs = isEdgeToEdgeApp ? {height: this.styles.root.height as number + (insets?.top || 0) as number, \n paddingTop: (paddingTopVal || 0) as number + (insets?.top || 0) as number} : {}\n return (\n <View style={[this.styles.root, stylesWithFs]} ref={ref => {this.baseView = ref as View}} onLayout={(event) => {\n if((this.context) && (this.context as StickyWrapperContextType).navHeight) {\n if((isEdgeToEdgeApp && insets?.top) || !isEdgeToEdgeApp || isWebPreviewMode()){\n navHeightValue = event.nativeEvent.layout.height || 0;\n (this.context as StickyWrapperContextType).navHeight.value = navHeightValue;\n this.notify('updateNavHeight', [navHeightValue], true);\n }\n }\n this.handleLayout(event);\n }}>\n {this._background}\n <View style={this.styles.leftSection}>\n {props.showDrawerButton && (<WmIcon\n id={this.getTestId('leftnavbtn')}\n hint={'menu'}\n styles={this.theme.mergeStyle({}, this.styles.action, this.styles.leftnavIcon)}\n iconclass={props.leftnavpaneliconclass}\n onTap={this.onDrawerBtnPress}\n />)}\n {props.backbutton && (<WmIcon\n id={this.getTestId('backbtn')}\n hint={'back'}\n styles={this.theme.mergeStyle({}, this.styles.action, this.styles.backIcon)}\n iconclass={props.backbuttoniconclass}\n caption={props.backbuttonlabel}\n onTap={this.onBackBtnPress}/>)}\n </View>\n <View style={this.styles.middleSection}>\n {props.imgsrc && (\n <WmPicture\n id={this.getTestId('picture')}\n styles={this.styles.image}\n picturesource={props.imgsrc} />)}\n <Text style={this.styles.content} {...this.getTestPropsForLabel('title')} accessibilityRole='header'>{props.title}</Text>\n {badge}\n </View>\n <View style={this.styles.rightSection}>\n {props.searchbutton && (<WmIcon\n id={this.getTestId('searchbtn')}\n styles={this.theme.mergeStyle({}, this.styles.action, this.styles.leftnavIcon)}\n iconclass={props.searchbuttoniconclass}\n onTap={this.onSearchBtnPress}\n />)}\n {props.children}\n </View>\n </View>\n )}}\n </SafeAreaInsetsContext.Consumer>\n )\n }\n\n renderWidget(props: WmAppNavbarProps){\n return this.props.hideonscroll ? (\n <StickyNav\n component={this}\n theme={this.theme}\n >\n {this.renderContent(props)}\n </StickyNav>\n ) : this.renderContent(props)\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,6 @@ import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/cor
6
6
  import WmLeftPanelProps from './left-panel.props';
7
7
  import { DEFAULT_CLASS } from './left-panel.styles';
8
8
  import { ScrollView } from 'react-native-gesture-handler';
9
- import { FixedViewContainer } from '@wavemaker/app-rn-runtime/core/fixed-view.component';
10
9
  import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
11
10
  import injector from '@wavemaker/app-rn-runtime/core/injector';
12
11
  export class WmLeftPanelState extends BaseComponentState {
@@ -49,7 +48,7 @@ export default class WmLeftPanel extends BaseComponent {
49
48
  const stylesWithFs = isEdgeToEdgeApp ? {
50
49
  paddingTop: (paddingTopVal || 0) + ((insets === null || insets === void 0 ? void 0 : insets.top) || 0)
51
50
  } : {};
52
- return /*#__PURE__*/React.createElement(FixedViewContainer, null, /*#__PURE__*/React.createElement(ScrollView, {
51
+ return /*#__PURE__*/React.createElement(ScrollView, {
53
52
  onScroll: event => {
54
53
  this.notify('scroll', [event]);
55
54
  },
@@ -58,7 +57,7 @@ export default class WmLeftPanel extends BaseComponent {
58
57
  width: "100%",
59
58
  maxWidth: "100%"
60
59
  }, stylesWithFs]
61
- }, this._background, this.renderContent(props)));
60
+ }, this._background, this.renderContent(props));
62
61
  });
63
62
  }
64
63
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","BaseComponent","BaseComponentState","WmLeftPanelProps","DEFAULT_CLASS","ScrollView","FixedViewContainer","SafeAreaInsetsContext","injector","WmLeftPanelState","constructor","args","_defineProperty","WmLeftPanel","props","get","onPartialLoad","invokeEventCallback","renderContent","renderPartial","state","isPartialLoaded","setTimeout","updateState","bind","children","renderWidget","createElement","Consumer","insets","top","bottom","left","right","_this$appConfig","paddingTopVal","styles","root","paddingTop","padding","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","stylesWithFs","onScroll","event","notify","scrollEventThrottle","contentContainerStyle","width","maxWidth","_background"],"sources":["left-panel.component.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmLeftPanelProps from './left-panel.props';\nimport { DEFAULT_CLASS, WmLeftPanelStyles } from './left-panel.styles';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { FixedViewContainer } from '@wavemaker/app-rn-runtime/core/fixed-view.component';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\nexport class WmLeftPanelState extends BaseComponentState<WmLeftPanelProps> {\n isPartialLoaded = false;\n}\n\nexport default class WmLeftPanel extends BaseComponent<WmLeftPanelProps, WmLeftPanelState, WmLeftPanelStyles> {\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n \n constructor(props: WmLeftPanelProps) {\n super(props, DEFAULT_CLASS, new WmLeftPanelProps());\n }\n\n onPartialLoad() {\n this.invokeEventCallback('onLoad', [null, this]);\n }\n\n renderContent(props: WmLeftPanelProps) {\n if (props.renderPartial) {\n if (!this.state.isPartialLoaded) {\n setTimeout(() => {\n this.updateState({\n isPartialLoaded: true\n } as WmLeftPanelState);\n });\n }\n return props.renderPartial(props, this.onPartialLoad.bind(this));\n }\n return props.children;\n }\n\n renderWidget(props: WmLeftPanelProps) {\n return (\n <SafeAreaInsetsContext.Consumer>{(insets = { top: 0, bottom: 0, left: 0, right: 0 })=>{\n const paddingTopVal = this.styles.root.paddingTop || this.styles.root.padding;\n const isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n const stylesWithFs = isEdgeToEdgeApp ? {paddingTop: (paddingTopVal || 0) as number + (insets?.top || 0) as number} : {}\n return (\n <FixedViewContainer>\n <ScrollView \n onScroll={(event) => {this.notify('scroll', [event])}}\n scrollEventThrottle={48}\n contentContainerStyle={[this.styles.root, {width: \"100%\", maxWidth: \"100%\"},stylesWithFs]}>\n {this._background}\n {this.renderContent(props)}\n </ScrollView>\n </FixedViewContainer>)\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","BaseComponent","BaseComponentState","WmLeftPanelProps","DEFAULT_CLASS","ScrollView","SafeAreaInsetsContext","injector","WmLeftPanelState","constructor","args","_defineProperty","WmLeftPanel","props","get","onPartialLoad","invokeEventCallback","renderContent","renderPartial","state","isPartialLoaded","setTimeout","updateState","bind","children","renderWidget","createElement","Consumer","insets","top","bottom","left","right","_this$appConfig","paddingTopVal","styles","root","paddingTop","padding","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","stylesWithFs","onScroll","event","notify","scrollEventThrottle","contentContainerStyle","width","maxWidth","_background"],"sources":["left-panel.component.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmLeftPanelProps from './left-panel.props';\nimport { DEFAULT_CLASS, WmLeftPanelStyles } from './left-panel.styles';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { FixedViewContainer } from '@wavemaker/app-rn-runtime/core/fixed-view.component';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\nexport class WmLeftPanelState extends BaseComponentState<WmLeftPanelProps> {\n isPartialLoaded = false;\n}\n\nexport default class WmLeftPanel extends BaseComponent<WmLeftPanelProps, WmLeftPanelState, WmLeftPanelStyles> {\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n \n constructor(props: WmLeftPanelProps) {\n super(props, DEFAULT_CLASS, new WmLeftPanelProps());\n }\n\n onPartialLoad() {\n this.invokeEventCallback('onLoad', [null, this]);\n }\n\n renderContent(props: WmLeftPanelProps) {\n if (props.renderPartial) {\n if (!this.state.isPartialLoaded) {\n setTimeout(() => {\n this.updateState({\n isPartialLoaded: true\n } as WmLeftPanelState);\n });\n }\n return props.renderPartial(props, this.onPartialLoad.bind(this));\n }\n return props.children;\n }\n\n renderWidget(props: WmLeftPanelProps) {\n return (\n <SafeAreaInsetsContext.Consumer>{(insets = { top: 0, bottom: 0, left: 0, right: 0 })=>{\n const paddingTopVal = this.styles.root.paddingTop || this.styles.root.padding;\n const isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n const stylesWithFs = isEdgeToEdgeApp ? {paddingTop: (paddingTopVal || 0) as number + (insets?.top || 0) as number} : {}\n return (\n <ScrollView \n onScroll={(event) => {this.notify('scroll', [event])}}\n scrollEventThrottle={48}\n contentContainerStyle={[this.styles.root, {width: \"100%\", maxWidth: \"100%\"},stylesWithFs]}>\n {this._background}\n {this.renderContent(props)}\n </ScrollView>\n )\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,aAAa,QAA2B,qBAAqB;AACtE,SAASC,UAAU,QAAQ,8BAA8B;AAEzD,SAASC,qBAAqB,QAAQ,gCAAgC;AACtE,OAAOC,QAAQ,MAAM,yCAAyC;AAG9D,OAAO,MAAMC,gBAAgB,SAASN,kBAAkB,CAAmB;EAAAO,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,0BACvD,KAAK;EAAA;AACzB;AAEA,eAAe,MAAMC,WAAW,SAASX,aAAa,CAAwD;EAG5GQ,WAAWA,CAACI,KAAuB,EAAE;IACnC,KAAK,CAACA,KAAK,EAAET,aAAa,EAAE,IAAID,gBAAgB,CAAC,CAAC,CAAC;IAACQ,eAAA,oBAHlCJ,QAAQ,CAACO,GAAG,CAAY,YAAY,CAAC;EAIzD;EAEAC,aAAaA,CAAA,EAAG;IACd,IAAI,CAACC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EAClD;EAEAC,aAAaA,CAACJ,KAAuB,EAAE;IACrC,IAAIA,KAAK,CAACK,aAAa,EAAE;MACvB,IAAI,CAAC,IAAI,CAACC,KAAK,CAACC,eAAe,EAAE;QAC/BC,UAAU,CAAC,MAAM;UACf,IAAI,CAACC,WAAW,CAAC;YACfF,eAAe,EAAE;UACnB,CAAqB,CAAC;QACxB,CAAC,CAAC;MACJ;MACA,OAAOP,KAAK,CAACK,aAAa,CAACL,KAAK,EAAE,IAAI,CAACE,aAAa,CAACQ,IAAI,CAAC,IAAI,CAAC,CAAC;IAClE;IACA,OAAOV,KAAK,CAACW,QAAQ;EACvB;EAEAC,YAAYA,CAACZ,KAAuB,EAAE;IACpC,oBACEb,KAAA,CAAA0B,aAAA,CAACpB,qBAAqB,CAACqB,QAAQ,QAAE,CAACC,MAAM,GAAG;MAAEC,GAAG,EAAE,CAAC;MAAEC,MAAM,EAAE,CAAC;MAAEC,IAAI,EAAE,CAAC;MAAEC,KAAK,EAAE;IAAE,CAAC,KAAG;MAAA,IAAAC,eAAA;MACpF,MAAMC,aAAa,GAAG,IAAI,CAACC,MAAM,CAACC,IAAI,CAACC,UAAU,IAAI,IAAI,CAACF,MAAM,CAACC,IAAI,CAACE,OAAO;MAC7E,MAAMC,eAAe,GAAG,CAAC,GAAAN,eAAA,GAAC,IAAI,CAACO,SAAS,cAAAP,eAAA,gBAAAA,eAAA,GAAdA,eAAA,CAAgBQ,gBAAgB,cAAAR,eAAA,eAAhCA,eAAA,CAAkCM,eAAe;MAC3E,MAAMG,YAAY,GAAGH,eAAe,GAAG;QAACF,UAAU,EAAE,CAACH,aAAa,IAAI,CAAC,KAAe,CAAAN,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,GAAG,KAAI,CAAC;MAAW,CAAC,GAAG,CAAC,CAAC;MACxH,oBACG7B,KAAA,CAAA0B,aAAA,CAACrB,UAAU;QACTsC,QAAQ,EAAGC,KAAK,IAAK;UAAC,IAAI,CAACC,MAAM,CAAC,QAAQ,EAAE,CAACD,KAAK,CAAC,CAAC;QAAA,CAAE;QACtDE,mBAAmB,EAAE,EAAG;QACxBC,qBAAqB,EAAE,CAAC,IAAI,CAACZ,MAAM,CAACC,IAAI,EAAE;UAACY,KAAK,EAAE,MAAM;UAAEC,QAAQ,EAAE;QAAM,CAAC,EAACP,YAAY;MAAE,GACzF,IAAI,CAACQ,WAAW,EAChB,IAAI,CAACjC,aAAa,CAACJ,KAAK,CACf,CAAC;IAEjB,CACgC,CAAC;EAErC;AACF","ignoreList":[]}
@@ -25,19 +25,21 @@ export default class WmPageContent extends BaseComponent {
25
25
  _defineProperty(this, "scrollRef", void 0);
26
26
  _defineProperty(this, "_unsubscribeNavHeight", void 0);
27
27
  _defineProperty(this, "handleOnScrollEndDrag", event => {
28
- var _event$nativeEvent;
29
- const {
30
- onScrollEndDrag,
31
- scrollDirection
32
- } = this.context;
33
- const scrollPosition = event === null || event === void 0 || (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 || (_event$nativeEvent = _event$nativeEvent.contentOffset) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.y;
34
- if (scrollPosition >= 0) {
35
- if (scrollDirection.value > 0) {
36
- this.invokeEventCallback('onSwipeup', [null, this.proxy]);
37
- } else {
38
- this.invokeEventCallback('onSwipedown', [null, this.proxy]);
28
+ if (this.context) {
29
+ var _event$nativeEvent;
30
+ const {
31
+ onScrollEndDrag,
32
+ scrollDirection
33
+ } = this.context;
34
+ const scrollPosition = event === null || event === void 0 || (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 || (_event$nativeEvent = _event$nativeEvent.contentOffset) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.y;
35
+ if (scrollPosition >= 0) {
36
+ if (scrollDirection.value > 0) {
37
+ this.invokeEventCallback('onSwipeup', [null, this.proxy]);
38
+ } else {
39
+ this.invokeEventCallback('onSwipedown', [null, this.proxy]);
40
+ }
41
+ onScrollEndDrag(this.scrollRef);
39
42
  }
40
- onScrollEndDrag(this.scrollRef);
41
43
  }
42
44
  });
43
45
  _defineProperty(this, "handleScrollViewLayout", () => {
@@ -61,9 +63,6 @@ export default class WmPageContent extends BaseComponent {
61
63
  }
62
64
  componentDidMount() {
63
65
  super.componentDidMount();
64
- const {
65
- navHeight
66
- } = this.context;
67
66
  this._unsubscribeNavHeight = this.subscribe('updateNavHeight', navHeightValue => {
68
67
  if (this.state.navHeightForRender !== navHeightValue) {
69
68
  this.setState({
@@ -72,9 +71,9 @@ export default class WmPageContent extends BaseComponent {
72
71
  }
73
72
  return null;
74
73
  });
75
- if (navHeight) {
74
+ if (this.context && this.context.navHeight) {
76
75
  this.setState({
77
- navHeightForRender: navHeight.value
76
+ navHeightForRender: this.context.navHeight.value
78
77
  });
79
78
  }
80
79
  }
@@ -113,10 +112,6 @@ export default class WmPageContent extends BaseComponent {
113
112
  }
114
113
  renderWidget(props) {
115
114
  const showScrollbar = this.styles.root.scrollbarColor != 'transparent';
116
- const {
117
- bottomTabHeight,
118
- onScroll
119
- } = this.context;
120
115
  const borderRadiusStyles = {
121
116
  borderRadius: this.styles.root.borderRadius,
122
117
  borderTopLeftRadius: this.styles.root.borderTopLeftRadius,
@@ -158,11 +153,11 @@ export default class WmPageContent extends BaseComponent {
158
153
  contentContainerStyle: [this.styles.root, {
159
154
  backgroundColor: 'transparent',
160
155
  paddingTop: navHeightVal + paddingTopVal,
161
- paddingBottom: bottomTabHeight.value + paddingBottomVal
156
+ paddingBottom: this.context && this.context.bottomTabHeight ? this.context.bottomTabHeight.value + paddingBottomVal : paddingBottomVal
162
157
  }],
163
158
  onLayout: this.handleScrollViewLayout,
164
159
  showsVerticalScrollIndicator: showScrollbar,
165
- onScroll: onScroll,
160
+ onScroll: this.context && this.context.onScroll ? this.context.onScroll : () => {},
166
161
  alwaysBounceVertical: false,
167
162
  alwaysBounceHorizontal: false,
168
163
  bounces: false,
@@ -1 +1 @@
1
- {"version":3,"names":["React","createRef","KeyboardAvoidingView","Platform","View","isWebPreviewMode","HideMode","BaseComponent","BaseComponentState","WmPageContentProps","DEFAULT_CLASS","WmLottie","SafeAreaInsetsContext","Animated","StickyWrapperContext","isNumber","WmPageContentState","constructor","args","_defineProperty","WmPageContent","props","event","_event$nativeEvent","onScrollEndDrag","scrollDirection","context","scrollPosition","nativeEvent","contentOffset","y","value","invokeEventCallback","proxy","scrollRef","requestAnimationFrame","notify","hideMode","DONOT_ADD_TO_DOM","state","navHeightForRender","subscribe","scrollTo","_this$scrollRef","current","scrollToEnd","componentDidMount","navHeight","_unsubscribeNavHeight","navHeightValue","setState","componentWillUnmount","position","_this$scrollRef2","x","animated","renderSkeleton","skeletonanimationresource","createElement","style","width","styles","root","content","skeleton","source","loop","autoplay","speed","skeletonanimationspeed","renderWidget","showScrollbar","scrollbarColor","bottomTabHeight","onScroll","borderRadiusStyles","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","scrollable","height","backgroundColor","_showSkeleton","_background","Consumer","insets","top","bottom","left","right","_this$styles","_this$styles2","_this$styles3","_this$styles4","keyboardOffset","consumenotch","verticalOffset","OS","keyboardverticaloffset","paddingTop","padding","paddingBottom","paddingTopVal","paddingBottomVal","navHeightVal","onscroll","behavior","undefined","keyboardVerticalOffset","flex","ScrollView","keyboardShouldPersistTaps","keyboardpersisttaps","testID","getTestId","ref","contentContainerStyle","onLayout","handleScrollViewLayout","showsVerticalScrollIndicator","alwaysBounceVertical","alwaysBounceHorizontal","bounces","overScrollMode","removeClippedSubviews","handleOnScrollEndDrag","children"],"sources":["page-content.component.tsx"],"sourcesContent":["import React, { createRef, RefObject, useEffect, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, View } from 'react-native';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { HideMode } from '@wavemaker/app-rn-runtime/core/if.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmPageContentProps from './page-content.props';\nimport { DEFAULT_CLASS, WmPageContentStyles } from './page-content.styles';\nimport WmLottie from '@wavemaker/app-rn-runtime/components/basic/lottie/lottie.component';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport Animated from 'react-native-reanimated';\nimport { StickyWrapperContextType, StickyWrapperContext } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { isNumber } from 'lodash-es';\n\nexport class WmPageContentState extends BaseComponentState<WmPageContentProps> {\n navHeightForRender = 0;\n}\nexport default class WmPageContent extends BaseComponent<WmPageContentProps, WmPageContentState, WmPageContentStyles> {\n private scrollRef: RefObject<any>;\n static contextType = StickyWrapperContext;\n private _unsubscribeNavHeight : any;\n\n constructor(props: WmPageContentProps) {\n super(props, DEFAULT_CLASS, new WmPageContentProps());\n this.hideMode = HideMode.DONOT_ADD_TO_DOM;\n this.scrollRef = createRef();\n \n this.state = {\n ...this.state,\n navHeightForRender: 0,\n };\n\n this.subscribe('scrollToPosition', (args: any) => {\n this.scrollTo(args);\n });\n\n this.subscribe('scrollToEnd', () => {\n this.scrollRef?.current?.scrollToEnd();\n });\n }\n\n componentDidMount() {\n super.componentDidMount();\n const { navHeight } = this.context as StickyWrapperContextType;\n this._unsubscribeNavHeight = this.subscribe('updateNavHeight', (navHeightValue: number) => {\n if (this.state.navHeightForRender !== navHeightValue) {\n this.setState({ navHeightForRender: navHeightValue });\n }\n return null;\n });\n if (navHeight) {\n this.setState({ navHeightForRender: navHeight.value });\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n if (this._unsubscribeNavHeight) this._unsubscribeNavHeight();\n }\n\n public scrollTo(position: {x: number, y: number}){\n this.scrollRef?.current?.scrollTo({\n x: position.x,\n y: position.y,\n animated: true\n });\n }\n\n private handleOnScrollEndDrag = (event: any) => {\n const { onScrollEndDrag, scrollDirection } = this.context as StickyWrapperContextType;\n const scrollPosition = event?.nativeEvent?.contentOffset?.y;\n if (scrollPosition >= 0) {\n if(scrollDirection.value > 0) {\n this.invokeEventCallback('onSwipeup', [null, this.proxy]);\n }else {\n this.invokeEventCallback('onSwipedown', [null, this.proxy]);\n }\n onScrollEndDrag(this.scrollRef);\n }\n }\n\n public renderSkeleton(props: WmPageContentProps): React.ReactNode {\n if(this.props.skeletonanimationresource) {\n return <View style={[{width: '100%'}, this.styles.root]}>\n <WmLottie styles={{ content: {...this.styles.root, ...this.styles.skeleton.root} }} source={this.props.skeletonanimationresource} loop={true} autoplay={true} speed={this.props.skeletonanimationspeed}/>\n </View>\n } \n return null;\n }\n\n private handleScrollViewLayout = () => {\n requestAnimationFrame(() => {\n this.notify('updateStickyHeaders', []);\n });\n }\n\n renderWidget(props: WmPageContentProps) {\n const showScrollbar = (this.styles.root as any).scrollbarColor != 'transparent';\n const { bottomTabHeight, onScroll } = this.context as StickyWrapperContextType;\n const borderRadiusStyles = {\n borderRadius: this.styles.root.borderRadius,\n borderTopLeftRadius: this.styles.root.borderTopLeftRadius,\n borderTopRightRadius: this.styles.root.borderTopRightRadius,\n borderBottomLeftRadius: this.styles.root.borderBottomLeftRadius,\n borderBottomRightRadius: this.styles.root.borderBottomRightRadius,\n };\n return (props.scrollable || isWebPreviewMode()) ? (\n <View style={{height: '100%', width: '100%',\n ...borderRadiusStyles,\n backgroundColor: this._showSkeleton && this.styles.skeleton.root.backgroundColor ? this.styles.skeleton.root.backgroundColor : this.styles.root.backgroundColor\n \n }}>\n {this._background}\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = props.consumenotch ? (insets?.bottom || 0) : 0;\n const verticalOffset = Platform.OS === 'ios' ? keyboardOffset + props.keyboardverticaloffset : keyboardOffset;\n const paddingTop = this.styles?.root?.paddingTop || this.styles?.root?.padding;\n const paddingBottom = this.styles?.root?.paddingBottom || this.styles?.root?.padding;\n const paddingTopVal = isNumber(paddingTop) ? paddingTop : 0;\n const paddingBottomVal = isNumber(paddingBottom) ? paddingBottom : 0;\n const navHeightVal = (this.props.onscroll == 'topnav' || this.props.onscroll == 'topnav-bottomnav') ? this.state.navHeightForRender : 0;\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : undefined}\n keyboardVerticalOffset={verticalOffset}\n style={{ flex: 1 }}>\n <Animated.ScrollView\n keyboardShouldPersistTaps={props.keyboardpersisttaps}\n testID={this.getTestId(\"page_content_scrollview\")}\n ref={this.scrollRef}\n contentContainerStyle={[\n this.styles.root, {backgroundColor: 'transparent', \n paddingTop: navHeightVal + paddingTopVal, \n paddingBottom: bottomTabHeight.value + paddingBottomVal\n }\n ]}\n onLayout={this.handleScrollViewLayout}\n showsVerticalScrollIndicator={showScrollbar}\n onScroll={onScroll}\n alwaysBounceVertical={false}\n alwaysBounceHorizontal={false}\n bounces={false}\n overScrollMode=\"never\"\n removeClippedSubviews={Platform.OS == 'android'}\n onScrollEndDrag={this.handleOnScrollEndDrag}\n >\n {props.children}\n </Animated.ScrollView>\n </KeyboardAvoidingView>\n )\n }}\n </SafeAreaInsetsContext.Consumer>\n </View> \n ) : (\n <View style={[this.styles.root,\n {backgroundColor: this._showSkeleton ?\n this.styles.skeleton.root.backgroundColor : \n this.styles.root.backgroundColor}]}>\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = props.consumenotch ? (insets?.bottom || 0) : 0;\n const verticalOffset = Platform.OS === 'ios' ? keyboardOffset + props.keyboardverticaloffset : keyboardOffset;\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : undefined}\n keyboardVerticalOffset={verticalOffset}\n style={{ flex: 1 }}>\n {this._background}\n {props.children}\n </KeyboardAvoidingView>\n )}}\n </SafeAreaInsetsContext.Consumer>\n </View>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createRef","KeyboardAvoidingView","Platform","View","isWebPreviewMode","HideMode","BaseComponent","BaseComponentState","WmPageContentProps","DEFAULT_CLASS","WmLottie","SafeAreaInsetsContext","Animated","StickyWrapperContext","isNumber","WmPageContentState","constructor","args","_defineProperty","WmPageContent","props","event","context","_event$nativeEvent","onScrollEndDrag","scrollDirection","scrollPosition","nativeEvent","contentOffset","y","value","invokeEventCallback","proxy","scrollRef","requestAnimationFrame","notify","hideMode","DONOT_ADD_TO_DOM","state","navHeightForRender","subscribe","scrollTo","_this$scrollRef","current","scrollToEnd","componentDidMount","_unsubscribeNavHeight","navHeightValue","setState","navHeight","componentWillUnmount","position","_this$scrollRef2","x","animated","renderSkeleton","skeletonanimationresource","createElement","style","width","styles","root","content","skeleton","source","loop","autoplay","speed","skeletonanimationspeed","renderWidget","showScrollbar","scrollbarColor","borderRadiusStyles","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","scrollable","height","backgroundColor","_showSkeleton","_background","Consumer","insets","top","bottom","left","right","_this$styles","_this$styles2","_this$styles3","_this$styles4","keyboardOffset","consumenotch","verticalOffset","OS","keyboardverticaloffset","paddingTop","padding","paddingBottom","paddingTopVal","paddingBottomVal","navHeightVal","onscroll","behavior","undefined","keyboardVerticalOffset","flex","ScrollView","keyboardShouldPersistTaps","keyboardpersisttaps","testID","getTestId","ref","contentContainerStyle","bottomTabHeight","onLayout","handleScrollViewLayout","showsVerticalScrollIndicator","onScroll","alwaysBounceVertical","alwaysBounceHorizontal","bounces","overScrollMode","removeClippedSubviews","handleOnScrollEndDrag","children"],"sources":["page-content.component.tsx"],"sourcesContent":["import React, { createRef, RefObject, useEffect, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, View } from 'react-native';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { HideMode } from '@wavemaker/app-rn-runtime/core/if.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmPageContentProps from './page-content.props';\nimport { DEFAULT_CLASS, WmPageContentStyles } from './page-content.styles';\nimport WmLottie from '@wavemaker/app-rn-runtime/components/basic/lottie/lottie.component';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport Animated from 'react-native-reanimated';\nimport { StickyWrapperContextType, StickyWrapperContext } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { isNumber } from 'lodash-es';\n\nexport class WmPageContentState extends BaseComponentState<WmPageContentProps> {\n navHeightForRender = 0;\n}\nexport default class WmPageContent extends BaseComponent<WmPageContentProps, WmPageContentState, WmPageContentStyles> {\n private scrollRef: RefObject<any>;\n static contextType = StickyWrapperContext;\n private _unsubscribeNavHeight : any;\n\n constructor(props: WmPageContentProps) {\n super(props, DEFAULT_CLASS, new WmPageContentProps());\n this.hideMode = HideMode.DONOT_ADD_TO_DOM;\n this.scrollRef = createRef();\n \n this.state = {\n ...this.state,\n navHeightForRender: 0,\n };\n\n this.subscribe('scrollToPosition', (args: any) => {\n this.scrollTo(args);\n });\n\n this.subscribe('scrollToEnd', () => {\n this.scrollRef?.current?.scrollToEnd();\n });\n }\n\n componentDidMount() {\n super.componentDidMount();\n this._unsubscribeNavHeight = this.subscribe('updateNavHeight', (navHeightValue: number) => {\n if (this.state.navHeightForRender !== navHeightValue) {\n this.setState({ navHeightForRender: navHeightValue });\n }\n return null;\n });\n if (this.context && (this.context as StickyWrapperContextType).navHeight) {\n this.setState({ navHeightForRender: (this.context as StickyWrapperContextType).navHeight.value });\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n if (this._unsubscribeNavHeight) this._unsubscribeNavHeight();\n }\n\n public scrollTo(position: {x: number, y: number}){\n this.scrollRef?.current?.scrollTo({\n x: position.x,\n y: position.y,\n animated: true\n });\n }\n\n private handleOnScrollEndDrag = (event: any) => {\n if(this.context) {\n const { onScrollEndDrag, scrollDirection } = this.context as StickyWrapperContextType;\n const scrollPosition = event?.nativeEvent?.contentOffset?.y;\n if (scrollPosition >= 0) {\n if(scrollDirection.value > 0) {\n this.invokeEventCallback('onSwipeup', [null, this.proxy]);\n }else {\n this.invokeEventCallback('onSwipedown', [null, this.proxy]);\n }\n onScrollEndDrag(this.scrollRef);\n }\n }\n }\n\n public renderSkeleton(props: WmPageContentProps): React.ReactNode {\n if(this.props.skeletonanimationresource) {\n return <View style={[{width: '100%'}, this.styles.root]}>\n <WmLottie styles={{ content: {...this.styles.root, ...this.styles.skeleton.root} }} source={this.props.skeletonanimationresource} loop={true} autoplay={true} speed={this.props.skeletonanimationspeed}/>\n </View>\n } \n return null;\n }\n\n private handleScrollViewLayout = () => {\n requestAnimationFrame(() => {\n this.notify('updateStickyHeaders', []);\n });\n }\n\n renderWidget(props: WmPageContentProps) {\n const showScrollbar = (this.styles.root as any).scrollbarColor != 'transparent';\n const borderRadiusStyles = {\n borderRadius: this.styles.root.borderRadius,\n borderTopLeftRadius: this.styles.root.borderTopLeftRadius,\n borderTopRightRadius: this.styles.root.borderTopRightRadius,\n borderBottomLeftRadius: this.styles.root.borderBottomLeftRadius,\n borderBottomRightRadius: this.styles.root.borderBottomRightRadius,\n };\n return (props.scrollable || isWebPreviewMode()) ? (\n <View style={{height: '100%', width: '100%',\n ...borderRadiusStyles,\n backgroundColor: this._showSkeleton && this.styles.skeleton.root.backgroundColor ? this.styles.skeleton.root.backgroundColor : this.styles.root.backgroundColor\n \n }}>\n {this._background}\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = props.consumenotch ? (insets?.bottom || 0) : 0;\n const verticalOffset = Platform.OS === 'ios' ? keyboardOffset + props.keyboardverticaloffset : keyboardOffset;\n const paddingTop = this.styles?.root?.paddingTop || this.styles?.root?.padding;\n const paddingBottom = this.styles?.root?.paddingBottom || this.styles?.root?.padding;\n const paddingTopVal = isNumber(paddingTop) ? paddingTop : 0;\n const paddingBottomVal = isNumber(paddingBottom) ? paddingBottom : 0;\n const navHeightVal = (this.props.onscroll == 'topnav' || this.props.onscroll == 'topnav-bottomnav') ? this.state.navHeightForRender : 0;\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : undefined}\n keyboardVerticalOffset={verticalOffset}\n style={{ flex: 1 }}>\n <Animated.ScrollView\n keyboardShouldPersistTaps={props.keyboardpersisttaps}\n testID={this.getTestId(\"page_content_scrollview\")}\n ref={this.scrollRef}\n contentContainerStyle={[\n this.styles.root, {backgroundColor: 'transparent', \n paddingTop: navHeightVal + paddingTopVal, \n paddingBottom: this.context && (this.context as StickyWrapperContextType).bottomTabHeight ? \n (this.context as StickyWrapperContextType).bottomTabHeight.value + paddingBottomVal\n : paddingBottomVal\n }\n ]}\n onLayout={this.handleScrollViewLayout}\n showsVerticalScrollIndicator={showScrollbar}\n onScroll={this.context && (this.context as StickyWrapperContextType).onScroll ? \n (this.context as StickyWrapperContextType).onScroll \n : ()=>{}\n }\n alwaysBounceVertical={false}\n alwaysBounceHorizontal={false}\n bounces={false}\n overScrollMode=\"never\"\n removeClippedSubviews={Platform.OS == 'android'}\n onScrollEndDrag={this.handleOnScrollEndDrag}\n >\n {props.children}\n </Animated.ScrollView>\n </KeyboardAvoidingView>\n )\n }}\n </SafeAreaInsetsContext.Consumer>\n </View> \n ) : (\n <View style={[this.styles.root,\n {backgroundColor: this._showSkeleton ?\n this.styles.skeleton.root.backgroundColor : \n this.styles.root.backgroundColor}]}>\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = props.consumenotch ? (insets?.bottom || 0) : 0;\n const verticalOffset = Platform.OS === 'ios' ? keyboardOffset + props.keyboardverticaloffset : keyboardOffset;\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : undefined}\n keyboardVerticalOffset={verticalOffset}\n style={{ flex: 1 }}>\n {this._background}\n {props.children}\n </KeyboardAvoidingView>\n )}}\n </SafeAreaInsetsContext.Consumer>\n </View>\n );\n }\n}"],"mappings":"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","ignoreList":[]}