@wavemaker/app-rn-runtime 11.11.4-rc.6173 → 11.11.5-rc.6185

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 (70) hide show
  1. package/components/advanced/carousel/carousel.component.js +32 -17
  2. package/components/advanced/carousel/carousel.component.js.map +1 -1
  3. package/components/advanced/carousel/carousel.props.js +1 -0
  4. package/components/advanced/carousel/carousel.props.js.map +1 -1
  5. package/components/advanced/network-info-toaster/network-info-toaster.component.js +4 -0
  6. package/components/advanced/network-info-toaster/network-info-toaster.component.js.map +1 -1
  7. package/components/basic/bottomsheet/bottomsheet.component.js +119 -71
  8. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  9. package/components/basic/bottomsheet/bottomsheet.props.js +6 -4
  10. package/components/basic/bottomsheet/bottomsheet.props.js.map +1 -1
  11. package/components/basic/lottie/lottie.component.js +1 -1
  12. package/components/basic/lottie/lottie.component.js.map +1 -1
  13. package/components/basic/picture/picture.component.js +1 -1
  14. package/components/basic/picture/picture.component.js.map +1 -1
  15. package/components/basic/spinner/spinner.component.js +18 -10
  16. package/components/basic/spinner/spinner.component.js.map +1 -1
  17. package/components/chart/area-chart/area-chart.component.js +5 -4
  18. package/components/chart/area-chart/area-chart.component.js.map +1 -1
  19. package/components/chart/bar-chart/bar-chart.component.js +5 -4
  20. package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
  21. package/components/chart/pie-chart/pie-chart.component.js +5 -4
  22. package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  23. package/components/container/panel/panel.component.js +2 -2
  24. package/components/container/panel/panel.component.js.map +1 -1
  25. package/components/data/form/form-field/form-field.component.js +1 -1
  26. package/components/data/form/form-field/form-field.component.js.map +1 -1
  27. package/components/data/form/form.component.js +1 -1
  28. package/components/data/form/form.component.js.map +1 -1
  29. package/components/data/list/list.component.js +57 -45
  30. package/components/data/list/list.component.js.map +1 -1
  31. package/components/data/list/list.props.js +1 -0
  32. package/components/data/list/list.props.js.map +1 -1
  33. package/components/input/basedataset/basedataset.component.js +5 -2
  34. package/components/input/basedataset/basedataset.component.js.map +1 -1
  35. package/components/input/basenumber/basenumber.component.js +4 -2
  36. package/components/input/basenumber/basenumber.component.js.map +1 -1
  37. package/components/input/epoch/base-datetime.component.js +8 -4
  38. package/components/input/epoch/base-datetime.component.js.map +1 -1
  39. package/components/input/rating/rating.component.js +4 -2
  40. package/components/input/rating/rating.component.js.map +1 -1
  41. package/components/input/slider/slider.component.js +28 -9
  42. package/components/input/slider/slider.component.js.map +1 -1
  43. package/components/input/text/text.props.js +2 -0
  44. package/components/input/text/text.props.js.map +1 -1
  45. package/components/navigation/appnavbar/appnavbar.component.js +2 -3
  46. package/components/navigation/appnavbar/appnavbar.component.js.map +1 -1
  47. package/components/page/left-panel/left-panel.component.js +2 -3
  48. package/components/page/left-panel/left-panel.component.js.map +1 -1
  49. package/components/page/page-content/page-content.component.js +8 -0
  50. package/components/page/page-content/page-content.component.js.map +1 -1
  51. package/components/page/page.component.js +7 -6
  52. package/components/page/page.component.js.map +1 -1
  53. package/components/page/page.props.js +1 -0
  54. package/components/page/page.props.js.map +1 -1
  55. package/components/page/tabbar/tabbar.component.js +5 -5
  56. package/components/page/tabbar/tabbar.component.js.map +1 -1
  57. package/core/AppConfig.js.map +1 -1
  58. package/core/base.component.js +1 -1
  59. package/core/base.component.js.map +1 -1
  60. package/core/ui-preferences.context.js +4 -1
  61. package/core/ui-preferences.context.js.map +1 -1
  62. package/core/utils.js +26 -0
  63. package/core/utils.js.map +1 -1
  64. package/npm-shrinkwrap.json +116 -131
  65. package/package-lock.json +116 -131
  66. package/package.json +2 -2
  67. package/runtime/App.js +44 -18
  68. package/runtime/App.js.map +1 -1
  69. package/runtime/services/app-i18n.service.js +7 -0
  70. package/runtime/services/app-i18n.service.js.map +1 -1
@@ -4,11 +4,12 @@ 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, { createRef } from 'react';
6
6
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
7
- import { View, Animated, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, ScrollView, StatusBar, BackHandler } from 'react-native';
7
+ import { View, Animated, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, ScrollView, StatusBar, BackHandler, Keyboard } from 'react-native';
8
8
  import WmBottomsheetProps from './bottomsheet.props';
9
9
  import { DEFAULT_CLASS } from './bottomsheet.styles';
10
10
  import { createSkeleton } from '../skeleton/skeleton.component';
11
11
  import { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';
12
+ import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
12
13
  const {
13
14
  height: SCREEN_HEIGHT
14
15
  } = Dimensions.get('screen');
@@ -23,46 +24,77 @@ export class WmBottomsheetState extends BaseComponentState {
23
24
  _defineProperty(this, "isScrolling", false);
24
25
  _defineProperty(this, "scrollOffset", 0);
25
26
  _defineProperty(this, "isExpanded", false);
27
+ _defineProperty(this, "isBottomsheetVisible", false);
28
+ _defineProperty(this, "keyboardHeight", 0);
26
29
  }
27
30
  }
28
31
  export default class WmBottomsheet extends BaseComponent {
29
- calculateSheetHeight(sheetheightratio) {
30
- // Allow full range from 0.2 to 1.0 (100% of screen height)
31
- this.maxHeightRatio = Math.min(sheetheightratio >= this.defaultHeight ? sheetheightratio : this.defaultHeight, this.maxHeight);
32
- let calculatedHeight = SCREEN_HEIGHT * this.maxHeightRatio;
32
+ calculateSheetHeight(bottomsheetheightratio) {
33
+ // Use default height if ratio not provided, but ensure it's not below minimum
34
+ const effectiveRatio = bottomsheetheightratio || this.defaultHeight;
35
+ this.maxHeightRatio = Math.max(this.minimumHeight, Math.min(effectiveRatio, this.maxHeight));
36
+ const screenHeight = Dimensions.get('screen').height;
37
+ const windowHeight = Dimensions.get('window').height;
38
+ let calculatedHeight = screenHeight * this.maxHeightRatio;
33
39
  if (Platform.OS === 'ios') {
34
- // Subtract top inset bar height for ios only if sheetheightratio is 0.9
40
+ // Subtract top inset bar height for ios only if bottomsheetheightratio is 0.9
35
41
  if (this.maxHeightRatio >= 0.9) {
36
42
  calculatedHeight -= this.defaultTopInset;
37
43
  }
38
44
  } else if (Platform.OS === 'android') {
39
- // Subtract status bar height for Android only if sheetheightratio is 0.9
45
+ // Subtract status bar height for Android only if bottomsheetheightratio is 0.9
40
46
  if (this.maxHeightRatio >= 0.9) {
41
47
  calculatedHeight -= this.statusBarHeight;
42
48
  }
43
49
  }
44
50
  return calculatedHeight;
45
51
  }
52
+ open() {
53
+ if (!this.state.isBottomsheetVisible) this.updateState({
54
+ isBottomsheetVisible: true
55
+ });
56
+ this.openSheet();
57
+ }
58
+ close() {
59
+ if (this.state.isBottomsheetVisible) {
60
+ this.closeSheet();
61
+ }
62
+ }
46
63
  constructor(props) {
47
64
  super(props, DEFAULT_CLASS, new WmBottomsheetProps(), new WmBottomsheetState());
48
65
  _defineProperty(this, "calculatedHeight", void 0);
49
66
  _defineProperty(this, "expandedHeight", void 0);
50
- _defineProperty(this, "defaultHeight", 0.2);
51
- _defineProperty(this, "expandedDefaultHeight", 0.5);
67
+ _defineProperty(this, "defaultHeight", 0.5);
68
+ _defineProperty(this, "expandedDefaultHeight", 0.8);
69
+ _defineProperty(this, "minimumHeight", 0.2);
70
+ _defineProperty(this, "minimumExpandedHeight", 0.5);
52
71
  _defineProperty(this, "maxHeight", 1.0);
53
72
  // Allow full screen height
54
- _defineProperty(this, "isBottomsheetVisible", false);
55
73
  _defineProperty(this, "animationDuration", 400);
56
74
  _defineProperty(this, "statusBarHeight", StatusBar.currentHeight || 0);
57
75
  _defineProperty(this, "defaultTopInset", 44);
58
76
  _defineProperty(this, "maxHeightRatio", 0);
77
+ _defineProperty(this, "keyboardDidShowListener", void 0);
78
+ _defineProperty(this, "keyboardDidHideListener", void 0);
59
79
  _defineProperty(this, "handleBackPress", () => {
60
- if (this.isBottomsheetVisible) {
80
+ if (this.state.isBottomsheetVisible) {
61
81
  this.closeSheet();
62
82
  return true; // Prevent default back action
63
83
  }
64
84
  return false;
65
85
  });
86
+ _defineProperty(this, "onKeyboardShow", event => {
87
+ var _event$endCoordinates;
88
+ let keyboardHeight = ((_event$endCoordinates = event.endCoordinates) === null || _event$endCoordinates === void 0 ? void 0 : _event$endCoordinates.height) || 0;
89
+ this.updateState({
90
+ keyboardHeight: keyboardHeight
91
+ });
92
+ });
93
+ _defineProperty(this, "onKeyboardHide", () => {
94
+ this.updateState({
95
+ keyboardHeight: 0
96
+ });
97
+ });
66
98
  _defineProperty(this, "handleSwipeGesture", gestureState => {
67
99
  this.updateState({
68
100
  lastGestureDy: 0
@@ -130,7 +162,7 @@ export default class WmBottomsheet extends BaseComponent {
130
162
  // Handle downward drag
131
163
  const newTranslateY = Math.max(0, this.state.lastGestureDy + gestureState.dy);
132
164
  this.state.translateY.setValue(newTranslateY);
133
- } else if (gestureState.dy < 0 && this.props.bottompopup && this.props.sheetheightratio !== 1) {
165
+ } else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1) {
134
166
  // Handle upward drag - expand to full height
135
167
  // Allow expansion to full screen height
136
168
  const targetHeight = Math.min(this.expandedHeight, SCREEN_HEIGHT);
@@ -149,6 +181,7 @@ export default class WmBottomsheet extends BaseComponent {
149
181
  }
150
182
  }));
151
183
  _defineProperty(this, "handleScroll", event => {
184
+ if (this.state.keyboardHeight > 0) return null;
152
185
  const offsetY = event.nativeEvent.contentOffset.y;
153
186
  this.updateState({
154
187
  isScrolling: offsetY > 0,
@@ -167,12 +200,15 @@ export default class WmBottomsheet extends BaseComponent {
167
200
  toValue: 1,
168
201
  duration: this.animationDuration,
169
202
  useNativeDriver: false
170
- })]).start();
203
+ })]).start(() => {
204
+ this.invokeEventCallback('onOpened', [null, this]);
205
+ });
171
206
  });
172
207
  _defineProperty(this, "handleClose", () => {
173
- var _this$props$onClose, _this$props;
174
- this.isBottomsheetVisible = false;
175
- (_this$props$onClose = (_this$props = this.props).onClose) === null || _this$props$onClose === void 0 || _this$props$onClose.call(_this$props);
208
+ this.updateState({
209
+ isBottomsheetVisible: false
210
+ });
211
+ this.invokeEventCallback('onClose', [null, this]);
176
212
  });
177
213
  _defineProperty(this, "closeSheet", () => {
178
214
  Animated.parallel([Animated.timing(this.state.translateY, {
@@ -198,33 +234,34 @@ export default class WmBottomsheet extends BaseComponent {
198
234
  this.state.backdropOpacity.setValue(0);
199
235
  this.updateState({
200
236
  lastGestureDy: 0,
201
- isExpanded: false
237
+ isExpanded: false,
238
+ isBottomsheetVisible: false
202
239
  });
203
240
  requestAnimationFrame(() => {
204
241
  this.state.sheetHeight.setValue(this.calculatedHeight);
205
- this.handleClose();
206
242
  });
207
243
  });
208
- this.calculatedHeight = this.calculateSheetHeight(props.sheetheightratio);
244
+ this.calculatedHeight = this.calculateSheetHeight(props.bottomsheetheightratio);
209
245
 
210
- // Allow expanded height to be full screen
211
- const expandedRatio = props.expandedheightratio || this.expandedDefaultHeight;
212
- this.expandedHeight = SCREEN_HEIGHT * Math.max(this.expandedDefaultHeight, Math.min(expandedRatio, this.maxHeight));
246
+ // Use bottomsheetexpandedheightratio if provided, otherwise use expandedDefaultHeight
247
+ const expandedRatio = props.bottomsheetexpandedheightratio || this.expandedDefaultHeight;
248
+ const effectiveExpandedRatio = Math.max(this.minimumExpandedHeight, Math.min(expandedRatio, this.maxHeight));
249
+ this.expandedHeight = SCREEN_HEIGHT * effectiveExpandedRatio;
213
250
  if (Platform.OS === 'android') {
214
- // Subtract top inset bar height for ios only if sheetheightratio is 0.9
215
- if (expandedRatio >= 0.9) {
251
+ if (effectiveExpandedRatio >= 0.9) {
216
252
  this.expandedHeight -= this.statusBarHeight;
217
253
  }
218
254
  }
219
255
  if (Platform.OS === 'ios') {
220
- // Subtract status bar height for Android only if sheetheightratio is 0.9
221
- if (expandedRatio >= 0.9) {
256
+ if (effectiveExpandedRatio >= 0.9) {
222
257
  this.expandedHeight -= this.defaultTopInset;
223
258
  }
224
259
  }
225
260
  this.state.sheetHeight.setValue(this.calculatedHeight);
226
- this.isBottomsheetVisible = this.props.visible || false;
227
- if (this.isBottomsheetVisible) {
261
+ this.updateState({
262
+ isBottomsheetVisible: this.props.showonrender || false
263
+ });
264
+ if (this.state.isBottomsheetVisible) {
228
265
  this.openSheet();
229
266
  } else {
230
267
  this.closeSheetImmediate();
@@ -235,26 +272,32 @@ export default class WmBottomsheet extends BaseComponent {
235
272
  if (Platform.OS === 'android') {
236
273
  BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
237
274
  }
275
+ this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this.onKeyboardShow);
276
+ this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this.onKeyboardHide);
238
277
  }
239
278
  componentWillUnmount() {
240
279
  super.componentWillUnmount();
241
280
  if (Platform.OS === 'android') {
242
281
  BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);
243
282
  }
283
+ this.keyboardDidShowListener.remove();
284
+ this.keyboardDidHideListener.remove();
244
285
  }
245
286
  componentDidUpdate(prevProps) {
246
- if (prevProps.sheetheightratio !== this.props.sheetheightratio) {
247
- this.calculatedHeight = this.calculateSheetHeight(this.props.sheetheightratio);
287
+ if (prevProps.bottomsheetheightratio !== this.props.bottomsheetheightratio) {
288
+ this.calculatedHeight = this.calculateSheetHeight(this.props.bottomsheetheightratio);
248
289
  this.state.sheetHeight.setValue(this.calculatedHeight);
249
290
  }
250
291
  }
251
292
  onPropertyChange(name, $new, $old) {
252
293
  super.onPropertyChange(name, $new, $old);
253
294
  switch (name) {
254
- case "visible":
295
+ case "showonrender":
255
296
  if ($new) {
256
- this.isBottomsheetVisible = $new || false;
257
- if (this.isBottomsheetVisible) {
297
+ this.updateState({
298
+ isBottomsheetVisible: $new || false
299
+ });
300
+ if (this.state.isBottomsheetVisible) {
258
301
  this.openSheet && this.openSheet();
259
302
  }
260
303
  } else {
@@ -271,45 +314,50 @@ export default class WmBottomsheet extends BaseComponent {
271
314
  });
272
315
  }
273
316
  renderWidget(props) {
274
- if (!this.isBottomsheetVisible || !props.visible) return null;
275
- return /*#__PURE__*/React.createElement(View, _extends({
276
- style: this.styles.root,
277
- testID: this.getTestId('wm-bottom-sheet')
278
- }, getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)), this._background, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
279
- onPress: this.closeSheet
280
- }, /*#__PURE__*/React.createElement(Animated.View, {
281
- style: [this.styles.backdrop, {
282
- opacity: this.state.backdropOpacity
283
- }],
284
- testID: this.getTestId('wm-bottom-sheet-backdrop')
285
- })), /*#__PURE__*/React.createElement(Animated.View, _extends({
286
- style: [this.styles.container, {
287
- height: this.state.sheetHeight,
288
- transform: [{
289
- translateY: this.state.translateY
317
+ if (!this.state.isBottomsheetVisible) return null;
318
+ return /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, (insets = {
319
+ top: 0,
320
+ bottom: 0,
321
+ left: 0,
322
+ right: 0
323
+ }) => {
324
+ return /*#__PURE__*/React.createElement(View, _extends({
325
+ style: this.styles.root
326
+ }, this.getTestProps('keyboardview')), this._background, /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
327
+ onPress: this.closeSheet
328
+ }, /*#__PURE__*/React.createElement(Animated.View, _extends({
329
+ style: [this.styles.backdrop, {
330
+ opacity: this.state.backdropOpacity
290
331
  }]
291
- }]
292
- }, this.panResponder.panHandlers), /*#__PURE__*/React.createElement(View, _extends({
293
- style: this.styles.dragHandleContainer
294
- }, this.dragHandlePanResponder.panHandlers), /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
295
- onPress: this.closeSheet
296
- }, /*#__PURE__*/React.createElement(View, {
297
- style: this.styles.dragIconHandle,
298
- testID: this.getTestId('wm-bottomsheet-drag-handle')
299
- }))), /*#__PURE__*/React.createElement(ScrollView, {
300
- ref: this.state.scrollViewRef,
301
- style: this.styles.sheetContentContainer,
302
- contentContainerStyle: this.styles.sheetScrollContent,
303
- alwaysBounceVertical: false,
304
- alwaysBounceHorizontal: false,
305
- bounces: false,
306
- showsVerticalScrollIndicator: false,
307
- scrollEventThrottle: 16,
308
- onScroll: this.handleScroll,
309
- nestedScrollEnabled: true,
310
- scrollEnabled: true,
311
- testID: this.getTestId('wm-bottomsheet-scroll-view')
312
- }, props.children)));
332
+ }, this.getTestProps('backdrop'), getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)))), /*#__PURE__*/React.createElement(Animated.View, _extends({
333
+ style: [this.styles.container, {
334
+ height: this.state.sheetHeight,
335
+ transform: [{
336
+ translateY: this.state.translateY
337
+ }]
338
+ }]
339
+ }, this.panResponder.panHandlers), /*#__PURE__*/React.createElement(View, _extends({
340
+ style: this.styles.dragHandleContainer
341
+ }, this.dragHandlePanResponder.panHandlers), /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
342
+ onPress: this.closeSheet
343
+ }, /*#__PURE__*/React.createElement(View, _extends({
344
+ style: this.styles.dragIconHandle
345
+ }, this.getTestProps('draghandle'))))), /*#__PURE__*/React.createElement(ScrollView, _extends({
346
+ ref: this.state.scrollViewRef,
347
+ style: this.styles.sheetContentContainer,
348
+ contentContainerStyle: [this.styles.sheetScrollContent, {
349
+ paddingBottom: this.state.keyboardHeight
350
+ }],
351
+ alwaysBounceVertical: false,
352
+ alwaysBounceHorizontal: false,
353
+ bounces: false,
354
+ showsVerticalScrollIndicator: false,
355
+ scrollEventThrottle: 16,
356
+ onScroll: this.handleScroll,
357
+ nestedScrollEnabled: true,
358
+ scrollEnabled: true
359
+ }, this.getTestProps('scorllview')), props.children)));
360
+ });
313
361
  }
314
362
  }
315
363
  //# sourceMappingURL=bottomsheet.component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","createRef","BaseComponent","BaseComponentState","View","Animated","PanResponder","Dimensions","TouchableWithoutFeedback","Platform","ScrollView","StatusBar","BackHandler","WmBottomsheetProps","DEFAULT_CLASS","createSkeleton","AccessibilityWidgetType","getAccessibilityProps","height","SCREEN_HEIGHT","get","WmBottomsheetState","constructor","args","_defineProperty","Value","WmBottomsheet","calculateSheetHeight","sheetheightratio","maxHeightRatio","Math","min","defaultHeight","maxHeight","calculatedHeight","OS","defaultTopInset","statusBarHeight","props","currentHeight","isBottomsheetVisible","closeSheet","gestureState","updateState","lastGestureDy","dy","state","isExpanded","expandedHeight","parallel","timing","translateY","toValue","duration","animationDuration","useNativeDriver","sheetHeight","start","vy","openSheet","create","onStartShouldSetPanResponder","_","scrollOffset","onMoveShouldSetPanResponder","onPanResponderMove","newTranslateY","max","setValue","onPanResponderRelease","handleSwipeGesture","onPanResponderTerminate","bottompopup","targetHeight","event","offsetY","nativeEvent","contentOffset","y","isScrolling","backdropOpacity","_this$props$onClose","_this$props","onClose","call","requestAnimationFrame","handleClose","expandedRatio","expandedheightratio","expandedDefaultHeight","visible","closeSheetImmediate","componentDidMount","addEventListener","handleBackPress","componentWillUnmount","removeEventListener","componentDidUpdate","prevProps","onPropertyChange","name","$new","$old","renderSkeleton","theme","styles","skeleton","root","width","renderWidget","createElement","_extends","style","testID","getTestId","BOTTOMSHEET","_background","onPress","backdrop","opacity","container","transform","panResponder","panHandlers","dragHandleContainer","dragHandlePanResponder","dragIconHandle","ref","scrollViewRef","sheetContentContainer","contentContainerStyle","sheetScrollContent","alwaysBounceVertical","alwaysBounceHorizontal","bounces","showsVerticalScrollIndicator","scrollEventThrottle","onScroll","handleScroll","nestedScrollEnabled","scrollEnabled","children"],"sources":["bottomsheet.component.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { View, Animated, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, ScrollView, PanResponderGestureState, StatusBar, BackHandler, DimensionValue } from 'react-native';\nimport WmBottomsheetProps from './bottomsheet.props';\nimport { DEFAULT_CLASS, WmBottomsheetStyles } from './bottomsheet.styles';\nimport { createSkeleton } from '../skeleton/skeleton.component';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';\n\n\nconst { height: SCREEN_HEIGHT } = Dimensions.get('screen');\nexport class WmBottomsheetState extends BaseComponentState<WmBottomsheetProps> {\n translateY = new Animated.Value(SCREEN_HEIGHT);\n backdropOpacity = new Animated.Value(0);\n sheetHeight = new Animated.Value(0);\n lastGestureDy = 0;\n scrollViewRef = createRef<ScrollView>();\n isScrolling = false;\n scrollOffset = 0;\n isExpanded = false;\n}\n\nexport default class WmBottomsheet extends BaseComponent<WmBottomsheetProps, WmBottomsheetState, WmBottomsheetStyles> {\n private calculatedHeight: number;\n private expandedHeight: number;\n private defaultHeight: number = 0.2;\n private expandedDefaultHeight: number = 0.5;\n private maxHeight: number = 1.0; // Allow full screen height\n private isBottomsheetVisible: boolean = false;\n private animationDuration: number = 400\n private statusBarHeight: number = StatusBar.currentHeight || 0;\n private defaultTopInset: number = 44;\n private maxHeightRatio: number = 0;\n\n private calculateSheetHeight(sheetheightratio: number): number {\n // Allow full range from 0.2 to 1.0 (100% of screen height)\n this.maxHeightRatio = Math.min(\n sheetheightratio >= this.defaultHeight ? sheetheightratio : this.defaultHeight,\n this.maxHeight\n );\n\n let calculatedHeight = SCREEN_HEIGHT * this.maxHeightRatio;\n\n if (Platform.OS === 'ios') {\n // Subtract top inset bar height for ios only if sheetheightratio is 0.9\n if (this.maxHeightRatio >= 0.9) {\n calculatedHeight -= this.defaultTopInset;\n }\n }\n else if (Platform.OS === 'android') {\n // Subtract status bar height for Android only if sheetheightratio is 0.9\n if (this.maxHeightRatio >= 0.9) {\n calculatedHeight -= this.statusBarHeight;\n }\n\n }\n return calculatedHeight;\n }\n\n constructor(props: WmBottomsheetProps) {\n super(props, DEFAULT_CLASS, new WmBottomsheetProps(), new WmBottomsheetState());\n this.calculatedHeight = this.calculateSheetHeight(props.sheetheightratio);\n\n // Allow expanded height to be full screen\n const expandedRatio = props.expandedheightratio || this.expandedDefaultHeight;\n\n\n this.expandedHeight = SCREEN_HEIGHT * Math.max(\n this.expandedDefaultHeight,\n Math.min(expandedRatio, this.maxHeight)\n );\n\n if (Platform.OS === 'android') {\n // Subtract top inset bar height for ios only if sheetheightratio is 0.9\n if (expandedRatio >= 0.9) {\n this.expandedHeight -= this.statusBarHeight;\n }\n\n }\n if (Platform.OS === 'ios') {\n // Subtract status bar height for Android only if sheetheightratio is 0.9\n if (expandedRatio >= 0.9) {\n this.expandedHeight -= this.defaultTopInset;\n }\n }\n this.state.sheetHeight.setValue(this.calculatedHeight);\n\n this.isBottomsheetVisible = this.props.visible || false;\n if (this.isBottomsheetVisible) {\n this.openSheet();\n } else {\n this.closeSheetImmediate();\n }\n }\n\n componentDidMount() {\n super.componentDidMount();\n if (Platform.OS === 'android') {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n if (Platform.OS === 'android') {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);\n }\n }\n\n private handleBackPress = () => {\n if (this.isBottomsheetVisible) {\n this.closeSheet();\n return true; // Prevent default back action\n }\n return false;\n };\n\n componentDidUpdate(prevProps: WmBottomsheetProps) {\n if (prevProps.sheetheightratio !== this.props.sheetheightratio) {\n this.calculatedHeight = this.calculateSheetHeight(this.props.sheetheightratio);\n this.state.sheetHeight.setValue(this.calculatedHeight);\n }\n }\n\n handleSwipeGesture = (gestureState: PanResponderGestureState) => {\n this.updateState({\n lastGestureDy: 0\n } as WmBottomsheetState);\n if (gestureState.dy > 0) {\n if (this.state.isExpanded) {\n // Expand the bottom sheet threshold is 25% of the fully expanded height\n // If the user swipe distance is below the threshold, revert to the original sheet height\n if (gestureState.dy < this.expandedHeight / 4) {\n Animated.parallel([\n Animated.timing(this.state.translateY, {\n toValue: 0, // Keep sheet open\n duration: this.animationDuration,\n useNativeDriver: false,\n }),\n Animated.timing(this.state.sheetHeight, {\n toValue: this.calculatedHeight, // Back to original height\n duration: this.animationDuration,\n useNativeDriver: false,\n })\n ]).start();\n this.updateState({\n isExpanded: false\n } as WmBottomsheetState);\n }\n else if (gestureState.dy > this.expandedHeight / 4 || gestureState.vy > 0.5) {\n this.closeSheet();\n }\n }\n else {\n if (gestureState.dy > 100 || gestureState.vy > 0.5) {\n this.closeSheet();\n } else {\n this.openSheet();\n }\n }\n }\n }\n // panResponder for bottom sheet scroll view\n panResponder = PanResponder.create({\n onStartShouldSetPanResponder: (_, gestureState) => {\n // Only handle the gesture if we're at the top and swiping down\n return gestureState.dy > 0 && this.state.scrollOffset <= 0;\n },\n\n onMoveShouldSetPanResponder: (_, gestureState) => {\n // Only handle the gesture if we're at the top and swiping down\n return gestureState.dy > 0 && this.state.scrollOffset <= 0;\n },\n\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0) {\n const newTranslateY = Math.max(0, this.state.lastGestureDy + gestureState.dy);\n this.state.translateY.setValue(newTranslateY);\n\n }\n },\n\n onPanResponderRelease: (_, gestureState) => {\n this.handleSwipeGesture(gestureState)\n },\n\n onPanResponderTerminate: () => {\n this.openSheet();\n },\n });\n\n //pan repsoneder for bottom sheet dragable container\n dragHandlePanResponder = PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n onPanResponderMove: (_, gestureState) => {\n\n if (gestureState.dy > 0) { // Handle downward drag\n const newTranslateY = Math.max(0, this.state.lastGestureDy + gestureState.dy);\n this.state.translateY.setValue(newTranslateY);\n } else if (gestureState.dy < 0 && this.props.bottompopup && this.props.sheetheightratio !== 1) {\n // Handle upward drag - expand to full height\n // Allow expansion to full screen height\n const targetHeight = Math.min(this.expandedHeight, SCREEN_HEIGHT);\n Animated.timing(this.state.sheetHeight, {\n toValue: targetHeight,\n duration: this.animationDuration,\n useNativeDriver: false,\n }).start();\n this.updateState({\n isExpanded: true\n } as WmBottomsheetState);\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n this.handleSwipeGesture(gestureState)\n },\n });\n\n handleScroll = (event: any) => {\n const offsetY = event.nativeEvent.contentOffset.y;\n this.updateState({\n isScrolling: offsetY > 0,\n scrollOffset: offsetY\n } as WmBottomsheetState);\n };\n\n openSheet = () => {\n this.updateState({\n lastGestureDy: 0,\n } as WmBottomsheetState);\n\n Animated.parallel([\n Animated.timing(this.state.translateY, {\n toValue: 0,\n duration: this.animationDuration,\n useNativeDriver: false,\n }),\n Animated.timing(this.state.backdropOpacity, {\n toValue: 1,\n duration: this.animationDuration,\n useNativeDriver: false,\n }),\n ]).start();\n };\n\n private handleClose = () => {\n this.isBottomsheetVisible = false;\n this.props.onClose?.();\n };\n\n closeSheet = () => {\n Animated.parallel([\n Animated.timing(this.state.translateY, {\n toValue: SCREEN_HEIGHT,\n duration: this.animationDuration,\n useNativeDriver: false,\n }),\n Animated.timing(this.state.backdropOpacity, {\n toValue: 0,\n duration: this.animationDuration,\n useNativeDriver: false,\n }),\n ]).start(() => {\n requestAnimationFrame(() => {\n this.state.sheetHeight.setValue(this.calculatedHeight);\n this.updateState({\n isExpanded: false\n } as WmBottomsheetState);\n this.handleClose();\n });\n });\n };\n\n closeSheetImmediate = () => {\n this.state.translateY.setValue(SCREEN_HEIGHT);\n this.state.backdropOpacity.setValue(0);\n this.updateState({\n lastGestureDy: 0,\n isExpanded: false\n } as WmBottomsheetState);\n requestAnimationFrame(() => {\n this.state.sheetHeight.setValue(this.calculatedHeight);\n this.handleClose();\n });\n };\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case \"visible\":\n if ($new) {\n this.isBottomsheetVisible = $new || false;\n if (this.isBottomsheetVisible) {\n this.openSheet && this.openSheet();\n }\n } else {\n this.closeSheetImmediate && this.closeSheetImmediate();\n }\n break;\n }\n }\n\n public renderSkeleton(props: WmBottomsheetProps) {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: this.styles.root.width as DimensionValue,\n height: this.styles.root.height as DimensionValue\n });\n }\n\n renderWidget(props: WmBottomsheetProps) {\n if (!this.isBottomsheetVisible || !props.visible) return null;\n\n return (\n\n <View style={this.styles.root} testID={this.getTestId('wm-bottom-sheet')} {...getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)}>\n {this._background}\n <TouchableWithoutFeedback onPress={this.closeSheet}>\n <Animated.View style={[this.styles.backdrop, { opacity: this.state.backdropOpacity }]} testID={this.getTestId('wm-bottom-sheet-backdrop')} />\n </TouchableWithoutFeedback>\n\n <Animated.View\n style={[\n this.styles.container,\n {\n height: this.state.sheetHeight,\n transform: [{ translateY: this.state.translateY }],\n },\n ]}\n {...this.panResponder.panHandlers}\n\n\n >\n <View style={this.styles.dragHandleContainer} {...this.dragHandlePanResponder.panHandlers}>\n <TouchableWithoutFeedback onPress={this.closeSheet}>\n <View style={this.styles.dragIconHandle} testID={this.getTestId('wm-bottomsheet-drag-handle')} />\n </TouchableWithoutFeedback>\n </View>\n\n <ScrollView\n ref={this.state.scrollViewRef}\n style={this.styles.sheetContentContainer}\n contentContainerStyle={this.styles.sheetScrollContent}\n alwaysBounceVertical={false}\n alwaysBounceHorizontal={false}\n bounces={false}\n showsVerticalScrollIndicator={false}\n scrollEventThrottle={16}\n onScroll={this.handleScroll}\n nestedScrollEnabled={true}\n scrollEnabled={true}\n testID={this.getTestId('wm-bottomsheet-scroll-view')}\n\n\n >\n {props.children}\n </ScrollView>\n </Animated.View>\n </View>\n\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createRef","BaseComponent","BaseComponentState","View","Animated","PanResponder","Dimensions","TouchableWithoutFeedback","Platform","ScrollView","StatusBar","BackHandler","Keyboard","WmBottomsheetProps","DEFAULT_CLASS","createSkeleton","AccessibilityWidgetType","getAccessibilityProps","SafeAreaInsetsContext","height","SCREEN_HEIGHT","get","WmBottomsheetState","constructor","args","_defineProperty","Value","WmBottomsheet","calculateSheetHeight","bottomsheetheightratio","effectiveRatio","defaultHeight","maxHeightRatio","Math","max","minimumHeight","min","maxHeight","screenHeight","windowHeight","calculatedHeight","OS","defaultTopInset","statusBarHeight","open","state","isBottomsheetVisible","updateState","openSheet","close","closeSheet","props","currentHeight","event","_event$endCoordinates","keyboardHeight","endCoordinates","gestureState","lastGestureDy","dy","isExpanded","expandedHeight","parallel","timing","translateY","toValue","duration","animationDuration","useNativeDriver","sheetHeight","start","vy","create","onStartShouldSetPanResponder","_","scrollOffset","onMoveShouldSetPanResponder","onPanResponderMove","newTranslateY","setValue","onPanResponderRelease","handleSwipeGesture","onPanResponderTerminate","expand","targetHeight","offsetY","nativeEvent","contentOffset","y","isScrolling","backdropOpacity","invokeEventCallback","requestAnimationFrame","handleClose","expandedRatio","bottomsheetexpandedheightratio","expandedDefaultHeight","effectiveExpandedRatio","minimumExpandedHeight","showonrender","closeSheetImmediate","componentDidMount","addEventListener","handleBackPress","keyboardDidShowListener","addListener","onKeyboardShow","keyboardDidHideListener","onKeyboardHide","componentWillUnmount","removeEventListener","remove","componentDidUpdate","prevProps","onPropertyChange","name","$new","$old","renderSkeleton","theme","styles","skeleton","root","width","renderWidget","createElement","Consumer","insets","top","bottom","left","right","_extends","style","getTestProps","_background","onPress","backdrop","opacity","BOTTOMSHEET","container","transform","panResponder","panHandlers","dragHandleContainer","dragHandlePanResponder","dragIconHandle","ref","scrollViewRef","sheetContentContainer","contentContainerStyle","sheetScrollContent","paddingBottom","alwaysBounceVertical","alwaysBounceHorizontal","bounces","showsVerticalScrollIndicator","scrollEventThrottle","onScroll","handleScroll","nestedScrollEnabled","scrollEnabled","children"],"sources":["bottomsheet.component.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { View, Animated, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, ScrollView, PanResponderGestureState, StatusBar, BackHandler, DimensionValue, KeyboardAvoidingView, Keyboard, EmitterSubscription } from 'react-native';\nimport WmBottomsheetProps from './bottomsheet.props';\nimport { DEFAULT_CLASS, WmBottomsheetStyles } from './bottomsheet.styles';\nimport { createSkeleton } from '../skeleton/skeleton.component';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\n\nconst { height: SCREEN_HEIGHT } = Dimensions.get('screen');\nexport class WmBottomsheetState extends BaseComponentState<WmBottomsheetProps> {\n translateY = new Animated.Value(SCREEN_HEIGHT);\n backdropOpacity = new Animated.Value(0);\n sheetHeight = new Animated.Value(0);\n lastGestureDy = 0;\n scrollViewRef = createRef<ScrollView>();\n isScrolling = false;\n scrollOffset = 0;\n isExpanded = false;\n isBottomsheetVisible = false;\n keyboardHeight = 0;\n}\n\nexport default class WmBottomsheet extends BaseComponent<WmBottomsheetProps, WmBottomsheetState, WmBottomsheetStyles> {\n private calculatedHeight: number;\n private expandedHeight: number;\n private defaultHeight: number = 0.5;\n private expandedDefaultHeight: number = 0.8;\n private minimumHeight: number = 0.2;\n private minimumExpandedHeight: number = 0.5;\n private maxHeight: number = 1.0; // Allow full screen height\n private animationDuration: number = 400\n private statusBarHeight: number = StatusBar.currentHeight || 0;\n private defaultTopInset: number = 44;\n private maxHeightRatio: number = 0;\n private keyboardDidShowListener!: EmitterSubscription;\n private keyboardDidHideListener!: EmitterSubscription;\n\n private calculateSheetHeight(bottomsheetheightratio: number): number {\n // Use default height if ratio not provided, but ensure it's not below minimum\n const effectiveRatio = bottomsheetheightratio || this.defaultHeight;\n this.maxHeightRatio = Math.max(\n this.minimumHeight,\n Math.min(effectiveRatio, this.maxHeight)\n );\n\n const screenHeight = Dimensions.get('screen').height;\n const windowHeight = Dimensions.get('window').height;\n let calculatedHeight = screenHeight * this.maxHeightRatio;\n\n if (Platform.OS === 'ios') {\n // Subtract top inset bar height for ios only if bottomsheetheightratio is 0.9\n if (this.maxHeightRatio >= 0.9) {\n calculatedHeight -= this.defaultTopInset;\n }\n }\n else if (Platform.OS === 'android') {\n // Subtract status bar height for Android only if bottomsheetheightratio is 0.9\n if (this.maxHeightRatio >= 0.9) {\n calculatedHeight -= this.statusBarHeight;\n }\n }\n return calculatedHeight;\n }\n\n open() {\n if (!this.state.isBottomsheetVisible)\n this.updateState({\n isBottomsheetVisible: true\n } as WmBottomsheetState);\n this.openSheet();\n }\n\n close() {\n if (this.state.isBottomsheetVisible) {\n this.closeSheet();\n }\n }\n\n constructor(props: WmBottomsheetProps) {\n super(props, DEFAULT_CLASS, new WmBottomsheetProps(), new WmBottomsheetState());\n this.calculatedHeight = this.calculateSheetHeight(props.bottomsheetheightratio);\n\n // Use bottomsheetexpandedheightratio if provided, otherwise use expandedDefaultHeight\n const expandedRatio = props.bottomsheetexpandedheightratio || this.expandedDefaultHeight;\n const effectiveExpandedRatio = Math.max(\n this.minimumExpandedHeight,\n Math.min(expandedRatio, this.maxHeight)\n );\n\n this.expandedHeight = SCREEN_HEIGHT * effectiveExpandedRatio;\n\n if (Platform.OS === 'android') {\n if (effectiveExpandedRatio >= 0.9) {\n this.expandedHeight -= this.statusBarHeight;\n }\n }\n if (Platform.OS === 'ios') {\n if (effectiveExpandedRatio >= 0.9) {\n this.expandedHeight -= this.defaultTopInset;\n }\n }\n this.state.sheetHeight.setValue(this.calculatedHeight);\n\n this.updateState({\n isBottomsheetVisible: this.props.showonrender || false\n } as WmBottomsheetState);\n\n if (this.state.isBottomsheetVisible) {\n this.openSheet();\n } else {\n this.closeSheetImmediate();\n }\n }\n\n componentDidMount() {\n super.componentDidMount();\n if (Platform.OS === 'android') {\n BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);\n }\n this.keyboardDidShowListener = Keyboard.addListener('keyboardDidShow', this.onKeyboardShow);\n this.keyboardDidHideListener = Keyboard.addListener('keyboardDidHide', this.onKeyboardHide);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n if (Platform.OS === 'android') {\n BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);\n }\n this.keyboardDidShowListener.remove();\n this.keyboardDidHideListener.remove();\n }\n\n private handleBackPress = () => {\n if (this.state.isBottomsheetVisible) {\n this.closeSheet();\n return true; // Prevent default back action\n }\n return false;\n };\n\n private onKeyboardShow = (event: any) => {\n let keyboardHeight = event.endCoordinates?.height || 0;\n this.updateState({\n keyboardHeight: keyboardHeight\n } as WmBottomsheetState);\n };\n\n private onKeyboardHide = () => {\n this.updateState({\n keyboardHeight: 0\n } as WmBottomsheetState);\n };\n\n componentDidUpdate(prevProps: WmBottomsheetProps) {\n if (prevProps.bottomsheetheightratio !== this.props.bottomsheetheightratio) {\n this.calculatedHeight = this.calculateSheetHeight(this.props.bottomsheetheightratio);\n this.state.sheetHeight.setValue(this.calculatedHeight);\n }\n }\n\n handleSwipeGesture = (gestureState: PanResponderGestureState) => {\n this.updateState({\n lastGestureDy: 0\n } as WmBottomsheetState);\n if (gestureState.dy > 0) {\n if (this.state.isExpanded) {\n // Expand the bottom sheet threshold is 25% of the fully expanded height\n // If the user swipe distance is below the threshold, revert to the original sheet height\n if (gestureState.dy < this.expandedHeight / 4) {\n Animated.parallel([\n Animated.timing(this.state.translateY, {\n toValue: 0, // Keep sheet open\n duration: this.animationDuration,\n useNativeDriver: false,\n }),\n Animated.timing(this.state.sheetHeight, {\n toValue: this.calculatedHeight, // Back to original height\n duration: this.animationDuration,\n useNativeDriver: false,\n })\n ]).start();\n this.updateState({\n isExpanded: false\n } as WmBottomsheetState);\n }\n else if (gestureState.dy > this.expandedHeight / 4 || gestureState.vy > 0.5) {\n this.closeSheet();\n }\n }\n else {\n if (gestureState.dy > 100 || gestureState.vy > 0.5) {\n this.closeSheet();\n } else {\n this.openSheet();\n }\n }\n }\n }\n // panResponder for bottom sheet scroll view\n panResponder = PanResponder.create({\n onStartShouldSetPanResponder: (_, gestureState) => {\n // Only handle the gesture if we're at the top and swiping down\n return gestureState.dy > 0 && this.state.scrollOffset <= 0;\n },\n\n onMoveShouldSetPanResponder: (_, gestureState) => {\n // Only handle the gesture if we're at the top and swiping down\n return gestureState.dy > 0 && this.state.scrollOffset <= 0;\n },\n\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0) {\n const newTranslateY = Math.max(0, this.state.lastGestureDy + gestureState.dy);\n this.state.translateY.setValue(newTranslateY);\n\n }\n },\n\n onPanResponderRelease: (_, gestureState) => {\n this.handleSwipeGesture(gestureState)\n },\n\n onPanResponderTerminate: () => {\n this.openSheet();\n },\n });\n\n //pan repsoneder for bottom sheet dragable container\n dragHandlePanResponder = PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: () => true,\n onPanResponderMove: (_, gestureState) => {\n\n if (gestureState.dy > 0) { // Handle downward drag\n const newTranslateY = Math.max(0, this.state.lastGestureDy + gestureState.dy);\n this.state.translateY.setValue(newTranslateY);\n } else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1) {\n // Handle upward drag - expand to full height\n // Allow expansion to full screen height\n const targetHeight = Math.min(this.expandedHeight, SCREEN_HEIGHT);\n Animated.timing(this.state.sheetHeight, {\n toValue: targetHeight,\n duration: this.animationDuration,\n useNativeDriver: false,\n }).start();\n this.updateState({\n isExpanded: true\n } as WmBottomsheetState);\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n this.handleSwipeGesture(gestureState)\n },\n });\n\n handleScroll = (event: any): any => {\n if (this.state.keyboardHeight > 0) return null;\n const offsetY = event.nativeEvent.contentOffset.y;\n this.updateState({\n isScrolling: offsetY > 0,\n scrollOffset: offsetY\n } as WmBottomsheetState);\n };\n\n openSheet = () => {\n this.updateState({\n lastGestureDy: 0,\n } as WmBottomsheetState);\n\n Animated.parallel([\n Animated.timing(this.state.translateY, {\n toValue: 0,\n duration: this.animationDuration,\n useNativeDriver: false,\n }),\n Animated.timing(this.state.backdropOpacity, {\n toValue: 1,\n duration: this.animationDuration,\n useNativeDriver: false,\n }),\n ]).start(() => {\n this.invokeEventCallback('onOpened', [null, this]);\n });\n };\n\n private handleClose = () => {\n this.updateState({\n isBottomsheetVisible: false\n } as WmBottomsheetState);\n this.invokeEventCallback('onClose', [null, this]);\n };\n\n closeSheet = () => {\n Animated.parallel([\n Animated.timing(this.state.translateY, {\n toValue: SCREEN_HEIGHT,\n duration: this.animationDuration,\n useNativeDriver: false,\n }),\n Animated.timing(this.state.backdropOpacity, {\n toValue: 0,\n duration: this.animationDuration,\n useNativeDriver: false,\n }),\n ]).start(() => {\n requestAnimationFrame(() => {\n this.state.sheetHeight.setValue(this.calculatedHeight);\n this.updateState({\n isExpanded: false\n } as WmBottomsheetState);\n this.handleClose();\n });\n });\n };\n\n closeSheetImmediate = () => {\n this.state.translateY.setValue(SCREEN_HEIGHT);\n this.state.backdropOpacity.setValue(0);\n this.updateState({\n lastGestureDy: 0,\n isExpanded: false,\n isBottomsheetVisible: false\n } as WmBottomsheetState);\n requestAnimationFrame(() => {\n this.state.sheetHeight.setValue(this.calculatedHeight);\n });\n };\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case \"showonrender\":\n if ($new) {\n this.updateState({\n isBottomsheetVisible: $new || false\n } as WmBottomsheetState);\n if (this.state.isBottomsheetVisible) {\n this.openSheet && this.openSheet();\n }\n } else {\n this.closeSheetImmediate && this.closeSheetImmediate();\n }\n break;\n }\n }\n\n public renderSkeleton(props: WmBottomsheetProps) {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: this.styles.root.width as DimensionValue,\n height: this.styles.root.height as DimensionValue\n });\n }\n\n renderWidget(props: WmBottomsheetProps) {\n if (!this.state.isBottomsheetVisible) return null;\n\n\n return (\n <SafeAreaInsetsContext.Consumer >\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n return (\n\n <View style={this.styles.root}\n {...this.getTestProps('keyboardview')}>\n\n {this._background}\n <TouchableWithoutFeedback onPress={this.closeSheet}>\n <Animated.View style={[this.styles.backdrop, { opacity: this.state.backdropOpacity }]}\n {...this.getTestProps('backdrop')}\n {...getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)}\n />\n </TouchableWithoutFeedback>\n\n <Animated.View\n style={[\n this.styles.container,\n\n {\n height: this.state.sheetHeight,\n transform: [{ translateY: this.state.translateY }],\n },\n ]}\n {...this.panResponder.panHandlers}\n\n\n >\n <View style={this.styles.dragHandleContainer} {...this.dragHandlePanResponder.panHandlers}>\n <TouchableWithoutFeedback onPress={this.closeSheet}>\n <View style={this.styles.dragIconHandle}\n {...this.getTestProps('draghandle')} />\n </TouchableWithoutFeedback>\n </View>\n <ScrollView\n ref={this.state.scrollViewRef}\n style={this.styles.sheetContentContainer}\n contentContainerStyle={[this.styles.sheetScrollContent,\n {\n paddingBottom: this.state.keyboardHeight\n }\n ]}\n alwaysBounceVertical={false}\n alwaysBounceHorizontal={false}\n bounces={false}\n showsVerticalScrollIndicator={false}\n scrollEventThrottle={16}\n onScroll={this.handleScroll}\n nestedScrollEnabled={true}\n scrollEnabled={true}\n {...this.getTestProps('scorllview')}\n >\n {props.children}\n </ScrollView>\n\n </Animated.View>\n\n </View>\n )\n }}\n </SafeAreaInsetsContext.Consumer>\n\n\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,11 +5,13 @@ import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';
5
5
  export default class WmBottomsheetProps extends BaseProps {
6
6
  constructor(...args) {
7
7
  super(...args);
8
- _defineProperty(this, "visible", false);
9
- _defineProperty(this, "sheetheightratio", 0.3);
8
+ _defineProperty(this, "showonrender", false);
9
+ _defineProperty(this, "bottomsheetheightratio", 0.3);
10
10
  _defineProperty(this, "children", null);
11
- _defineProperty(this, "bottompopup", false);
12
- _defineProperty(this, "expandedheightratio", 0.5);
11
+ _defineProperty(this, "expand", false);
12
+ _defineProperty(this, "bottomsheetexpandedheightratio", 0.5);
13
+ _defineProperty(this, "keyboardverticaloffset", 100);
14
+ _defineProperty(this, "onOpened", null);
13
15
  _defineProperty(this, "onClose", null);
14
16
  }
15
17
  }
@@ -1 +1 @@
1
- {"version":3,"names":["BaseProps","WmBottomsheetProps","constructor","args","_defineProperty"],"sources":["bottomsheet.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmBottomsheetProps extends BaseProps {\n visible: boolean = false;\n sheetheightratio:number = 0.3;\n children? = null as any;\n bottompopup?:boolean = false;\n expandedheightratio?:number = 0.5; \n onClose?: Function = null as any;\n\n}"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,kBAAkB,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,kBACnC,KAAK;IAAAA,eAAA,2BACE,GAAG;IAAAA,eAAA,mBACjB,IAAI;IAAAA,eAAA,sBACO,KAAK;IAAAA,eAAA,8BACE,GAAG;IAAAA,eAAA,kBACZ,IAAI;EAAA;AAE7B","ignoreList":[]}
1
+ {"version":3,"names":["BaseProps","WmBottomsheetProps","constructor","args","_defineProperty"],"sources":["bottomsheet.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport default class WmBottomsheetProps extends BaseProps {\n showonrender: boolean = false;\n bottomsheetheightratio:number = 0.3;\n children? = null as any;\n expand?:boolean = false;\n bottomsheetexpandedheightratio?:number = 0.5; \n keyboardverticaloffset: number = 100;\n onOpened?: Function = null as any;\n onClose?: Function = null as any;\n\n}"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,kBAAkB,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,uBAC9B,KAAK;IAAAA,eAAA,iCACG,GAAG;IAAAA,eAAA,mBACvB,IAAI;IAAAA,eAAA,iBACE,KAAK;IAAAA,eAAA,yCACkB,GAAG;IAAAA,eAAA,iCACX,GAAG;IAAAA,eAAA,mBACd,IAAI;IAAAA,eAAA,kBACL,IAAI;EAAA;AAE7B","ignoreList":[]}
@@ -59,7 +59,7 @@ export default class WmLottie extends BaseComponent {
59
59
  }
60
60
  }
61
61
  loadAnimationData() {
62
- if (this.state.animationData || !this.loadAsset) {
62
+ if (this.state.animationData || !this.loadAsset || !this.state.props.source) {
63
63
  return;
64
64
  }
65
65
  if (Platform.OS == 'web') {
@@ -1 +1 @@
1
- {"version":3,"names":["React","axios","Platform","View","LottieView","BaseComponent","BaseComponentState","WmLottieProps","DEFAULT_CLASS","WmLottieState","constructor","args","_defineProperty","WmLottie","props","createRef","play","lottie","current","state","isCompleted","reset","invokeEventCallback","proxy","pause","goToAndPlay","updateState","onReady","autoplay","loadAnimationData","animationData","loadAsset","OS","url","source","get","then","data","onPropertyChange","name","$new","$old","initialized","setTimeout","componentDidMount","renderWebLottie","_Lottie","Lottie","require","default","createElement","ref","loop","speed","style","styles","content","onComplete","renderNativeLottie","autoPlay","onAnimationFinish","renderWidget","root","onLayout","event","handleLayout","_background"],"sources":["lottie.component.tsx"],"sourcesContent":["import React from 'react';\nimport axios from 'axios';\nimport { Platform, View } from 'react-native';\nimport LottieView from 'lottie-react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmLottieProps from './lottie.props';\nimport { DEFAULT_CLASS, WmLottieStyles } from './lottie.styles';\n\nexport class WmLottieState extends BaseComponentState<WmLottieProps> {\n animationData: any;\n isCompleted = false;\n}\n\nexport default class WmLottie extends BaseComponent<WmLottieProps, WmLottieState, WmLottieStyles> {\n\n private lottie = React.createRef<LottieView>();\n\n constructor(props: WmLottieProps) {\n super(props, DEFAULT_CLASS, new WmLottieProps(), new WmLottieState());\n }\n \n play() {\n if (this.lottie.current) {\n if (this.state.isCompleted) {\n this.reset();\n } else {\n this.lottie.current.play();\n this.invokeEventCallback('onPlay', [null, this.proxy]);\n }\n }\n }\n\n pause() {\n if (this.lottie.current) {\n this.lottie.current.pause();\n this.invokeEventCallback('onPause', [null, this.proxy]);\n }\n }\n\n reset() {\n if (this.lottie.current) {\n if (this.lottie.current.reset) {\n this.lottie.current.reset();\n this.lottie.current.play();\n } else if((this.lottie.current as any).goToAndPlay) {\n (this.lottie.current as any).goToAndPlay(0);\n } else {\n return;\n }\n this.invokeEventCallback('onPlay', [null, this.proxy]);\n this.updateState({\n isCompleted: false\n } as WmLottieState);\n }\n \n }\n\n private onReady() {\n this.invokeEventCallback('onReady', [null, this.proxy]);\n if (this.state.props.autoplay) {\n this.invokeEventCallback('onPlay', [null, this.proxy]);\n }\n }\n\n private loadAnimationData() {\n if (this.state.animationData || ! this.loadAsset) {\n return;\n }\n if (Platform.OS == 'web') {\n const url = this.loadAsset(this.state.props.source) as string;\n axios.get(url).then(({data}) => {\n this.updateState({\n animationData: data\n } as WmLottieState, () => this.onReady());\n });\n } else {\n this.updateState({\n animationData: this.loadAsset(this.state.props.source)\n } as WmLottieState, () => this.onReady());\n }\n }\n\n onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case 'src':\n this.loadAnimationData();\n break;\n case 'loop':\n if (this.initialized && \n !this.state.isCompleted && \n ($new || this.state.props.autoplay)) {\n setTimeout(() => this.reset(), 200);\n }\n break;\n }\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.loadAnimationData();\n }\n\n private renderWebLottie(props: WmLottieProps) {\n let Lottie = Platform.OS == 'web' ? require('react-lottie-player') : null;\n Lottie = Lottie?.default || Lottie;\n return (<Lottie \n animationData={this.state.animationData}\n ref= {this.lottie}\n loop={props.loop}\n play={props.autoplay}\n speed={props.speed}\n style={this.styles.content}\n onComplete={() => {\n this.updateState({\n isCompleted: true\n } as WmLottieState);\n this.invokeEventCallback('onComplete', [null, this.proxy]);\n }}/>);\n }\n\n private renderNativeLottie(props: WmLottieProps) {\n return (\n <LottieView\n source={this.state.animationData}\n ref= {this.lottie}\n autoPlay={props.autoplay}\n speed={props.speed}\n loop={props.loop}\n style={this.styles.content}\n onAnimationFinish={() => {\n this.updateState({\n isCompleted: true\n } as WmLottieState);\n this.invokeEventCallback('onComplete', [null, this.proxy]);\n }}\n />\n );\n }\n\n renderWidget(props: WmLottieProps) {\n return (\n <View \n style={this.styles.root}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this._background}\n {this.state.animationData ? \n (Platform.OS == 'web' ? this.renderWebLottie(props) : this.renderNativeLottie(props)) \n : null \n }\n </View>); \n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","axios","Platform","View","LottieView","BaseComponent","BaseComponentState","WmLottieProps","DEFAULT_CLASS","WmLottieState","constructor","args","_defineProperty","WmLottie","props","createRef","play","lottie","current","state","isCompleted","reset","invokeEventCallback","proxy","pause","goToAndPlay","updateState","onReady","autoplay","loadAnimationData","animationData","loadAsset","source","OS","url","get","then","data","onPropertyChange","name","$new","$old","initialized","setTimeout","componentDidMount","renderWebLottie","_Lottie","Lottie","require","default","createElement","ref","loop","speed","style","styles","content","onComplete","renderNativeLottie","autoPlay","onAnimationFinish","renderWidget","root","onLayout","event","handleLayout","_background"],"sources":["lottie.component.tsx"],"sourcesContent":["import React from 'react';\nimport axios from 'axios';\nimport { Platform, View } from 'react-native';\nimport LottieView from 'lottie-react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmLottieProps from './lottie.props';\nimport { DEFAULT_CLASS, WmLottieStyles } from './lottie.styles';\n\nexport class WmLottieState extends BaseComponentState<WmLottieProps> {\n animationData: any;\n isCompleted = false;\n}\n\nexport default class WmLottie extends BaseComponent<WmLottieProps, WmLottieState, WmLottieStyles> {\n\n private lottie = React.createRef<LottieView>();\n\n constructor(props: WmLottieProps) {\n super(props, DEFAULT_CLASS, new WmLottieProps(), new WmLottieState());\n }\n \n play() {\n if (this.lottie.current) {\n if (this.state.isCompleted) {\n this.reset();\n } else {\n this.lottie.current.play();\n this.invokeEventCallback('onPlay', [null, this.proxy]);\n }\n }\n }\n\n pause() {\n if (this.lottie.current) {\n this.lottie.current.pause();\n this.invokeEventCallback('onPause', [null, this.proxy]);\n }\n }\n\n reset() {\n if (this.lottie.current) {\n if (this.lottie.current.reset) {\n this.lottie.current.reset();\n this.lottie.current.play();\n } else if((this.lottie.current as any).goToAndPlay) {\n (this.lottie.current as any).goToAndPlay(0);\n } else {\n return;\n }\n this.invokeEventCallback('onPlay', [null, this.proxy]);\n this.updateState({\n isCompleted: false\n } as WmLottieState);\n }\n \n }\n\n private onReady() {\n this.invokeEventCallback('onReady', [null, this.proxy]);\n if (this.state.props.autoplay) {\n this.invokeEventCallback('onPlay', [null, this.proxy]);\n }\n }\n\n private loadAnimationData() {\n if (this.state.animationData || ! this.loadAsset || !this.state.props.source) {\n return;\n }\n if (Platform.OS == 'web') {\n const url = this.loadAsset(this.state.props.source) as string;\n axios.get(url).then(({data}) => {\n this.updateState({\n animationData: data\n } as WmLottieState, () => this.onReady());\n });\n } else {\n this.updateState({\n animationData: this.loadAsset(this.state.props.source)\n } as WmLottieState, () => this.onReady());\n }\n }\n\n onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case 'src':\n this.loadAnimationData();\n break;\n case 'loop':\n if (this.initialized && \n !this.state.isCompleted && \n ($new || this.state.props.autoplay)) {\n setTimeout(() => this.reset(), 200);\n }\n break;\n }\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.loadAnimationData();\n }\n\n private renderWebLottie(props: WmLottieProps) {\n let Lottie = Platform.OS == 'web' ? require('react-lottie-player') : null;\n Lottie = Lottie?.default || Lottie;\n return (<Lottie \n animationData={this.state.animationData}\n ref= {this.lottie}\n loop={props.loop}\n play={props.autoplay}\n speed={props.speed}\n style={this.styles.content}\n onComplete={() => {\n this.updateState({\n isCompleted: true\n } as WmLottieState);\n this.invokeEventCallback('onComplete', [null, this.proxy]);\n }}/>);\n }\n\n private renderNativeLottie(props: WmLottieProps) {\n return (\n <LottieView\n source={this.state.animationData}\n ref= {this.lottie}\n autoPlay={props.autoplay}\n speed={props.speed}\n loop={props.loop}\n style={this.styles.content}\n onAnimationFinish={() => {\n this.updateState({\n isCompleted: true\n } as WmLottieState);\n this.invokeEventCallback('onComplete', [null, this.proxy]);\n }}\n />\n );\n }\n\n renderWidget(props: WmLottieProps) {\n return (\n <View \n style={this.styles.root}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this._background}\n {this.state.animationData ? \n (Platform.OS == 'web' ? this.renderWebLottie(props) : this.renderNativeLottie(props)) \n : null \n }\n </View>); \n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -166,7 +166,7 @@ export default class WmPicture extends BaseComponent {
166
166
  // * INFO: if any issue arises like freezing of application because of
167
167
  // * rendering large number of images, check the cache policy.
168
168
  React.createElement(EXPOImage, _extends({
169
- cachePolicy: "memory-disk"
169
+ cachePolicy: "memory"
170
170
  }, this.getTestProps('picture'), {
171
171
  style: [this.styles.picture, shapeStyles.picture, props.fastload || this.state.imageWidth ? {
172
172
  opacity: 1