@wavemaker/app-rn-runtime 11.15.5-1.256 → 11.15.5-rc.259

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 (71) hide show
  1. package/components/basic/bottomsheet/bottomsheet.component.js +131 -10
  2. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  3. package/components/basic/bottomsheet/bottomsheet.styles.js +0 -3
  4. package/components/basic/bottomsheet/bottomsheet.styles.js.map +1 -1
  5. package/components/basic/button/button.component.js +6 -4
  6. package/components/basic/button/button.component.js.map +1 -1
  7. package/components/basic/progress-circle/progress-circle.component.js +3 -1
  8. package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
  9. package/components/container/container.component.js +23 -1
  10. package/components/container/container.component.js.map +1 -1
  11. package/components/container/container.props.js +1 -0
  12. package/components/container/container.props.js.map +1 -1
  13. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js +25 -1
  14. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js.map +1 -1
  15. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js +1 -0
  16. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js.map +1 -1
  17. package/components/data/form/form-field/form-field.component.js +1 -0
  18. package/components/data/form/form-field/form-field.component.js.map +1 -1
  19. package/components/data/form/form-field/form-field.props.js +1 -0
  20. package/components/data/form/form-field/form-field.props.js.map +1 -1
  21. package/components/input/baseinput/baseinput.component.js +7 -0
  22. package/components/input/baseinput/baseinput.component.js.map +1 -1
  23. package/components/input/calendar/calendar.component.js +4 -0
  24. package/components/input/calendar/calendar.component.js.map +1 -1
  25. package/components/input/calendar/views/month-view.js +8 -1
  26. package/components/input/calendar/views/month-view.js.map +1 -1
  27. package/components/input/checkboxset/checkboxset.component.js +2 -2
  28. package/components/input/checkboxset/checkboxset.component.js.map +1 -1
  29. package/components/input/checkboxset/checkboxset.props.js +1 -0
  30. package/components/input/checkboxset/checkboxset.props.js.map +1 -1
  31. package/components/input/checkboxset/checkboxset.styles.js +6 -0
  32. package/components/input/checkboxset/checkboxset.styles.js.map +1 -1
  33. package/components/input/chips/chips.component.js +1 -1
  34. package/components/input/chips/chips.component.js.map +1 -1
  35. package/components/input/chips/chips.props.js +1 -0
  36. package/components/input/chips/chips.props.js.map +1 -1
  37. package/components/input/currency/currency.component.js +1 -0
  38. package/components/input/currency/currency.component.js.map +1 -1
  39. package/components/input/number/number.component.js +1 -0
  40. package/components/input/number/number.component.js.map +1 -1
  41. package/components/input/radioset/radioset.component.js +2 -2
  42. package/components/input/radioset/radioset.component.js.map +1 -1
  43. package/components/input/radioset/radioset.props.js +1 -0
  44. package/components/input/radioset/radioset.props.js.map +1 -1
  45. package/components/input/radioset/radioset.styles.js +6 -0
  46. package/components/input/radioset/radioset.styles.js.map +1 -1
  47. package/components/input/text/text.component.js +10 -0
  48. package/components/input/text/text.component.js.map +1 -1
  49. package/components/input/text/text.props.js +1 -0
  50. package/components/input/text/text.props.js.map +1 -1
  51. package/components/input/text/text.styles.js +7 -1
  52. package/components/input/text/text.styles.js.map +1 -1
  53. package/components/input/textarea/textarea.component.js +1 -0
  54. package/components/input/textarea/textarea.component.js.map +1 -1
  55. package/core/AppConfig.js.map +1 -1
  56. package/core/components/textinput.component.js +20 -3
  57. package/core/components/textinput.component.js.map +1 -1
  58. package/core/tappable.component.js +109 -15
  59. package/core/tappable.component.js.map +1 -1
  60. package/npm-shrinkwrap.json +351 -379
  61. package/package-lock.json +351 -379
  62. package/package.json +2 -2
  63. package/runtime/navigator/drawer.navigator.js +1 -0
  64. package/runtime/navigator/drawer.navigator.js.map +1 -1
  65. package/runtime/navigator/stack.navigator.js +13 -1
  66. package/runtime/navigator/stack.navigator.js.map +1 -1
  67. package/runtime/services/device/scan-service.js +12 -34
  68. package/runtime/services/device/scan-service.js.map +1 -1
  69. package/styles/theme.js +20 -10
  70. package/styles/theme.js.map +1 -1
  71. package/styles/theme.variables.js.map +1 -1
@@ -5,7 +5,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
5
5
  import React, { createRef } from 'react';
6
6
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
7
7
  import { View, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, StatusBar, BackHandler, KeyboardAvoidingView, Keyboard, Modal, Pressable } from 'react-native';
8
- import { ScrollView } from 'react-native-gesture-handler';
8
+ import { Gesture, GestureDetector, GestureHandlerRootView, ScrollView } from 'react-native-gesture-handler';
9
9
  import Animated, { useAnimatedStyle, withTiming, runOnJS, Easing, makeMutable, cancelAnimation } from 'react-native-reanimated';
10
10
  import * as Animatable from 'react-native-animatable';
11
11
  import WmBottomsheetProps from './bottomsheet.props';
@@ -77,8 +77,32 @@ const AnimatedBottomsheetContent = ({
77
77
  onBackdropPress,
78
78
  onDragHandlePress,
79
79
  getTestProps,
80
- enabledragsettle
80
+ enabledragsettle,
81
+ scrollRef,
82
+ containerScrollRef,
83
+ configurePanGesture
81
84
  }) => {
85
+ // Simple RNGH GestureDetector attached to the same view as the PanResponder (panHandlers).
86
+ // No thresholds/validation: logs translationY directly during pan.
87
+ const panGesture = React.useMemo(() => {
88
+ // Create base Pan gesture
89
+ const pan = Gesture.Pan().runOnJS(true);
90
+
91
+ // Add external gestures for ScrollViews (container widget scrollview)
92
+ if (scrollRef && containerScrollRef) {
93
+ pan.simultaneousWithExternalGesture(scrollRef, containerScrollRef);
94
+ } else if (scrollRef) {
95
+ pan.simultaneousWithExternalGesture(scrollRef);
96
+ } else if (containerScrollRef) {
97
+ pan.simultaneousWithExternalGesture(containerScrollRef);
98
+ }
99
+
100
+ // Apply custom logic from parent BottomSheet class
101
+ if (configurePanGesture) {
102
+ configurePanGesture(pan);
103
+ }
104
+ return pan;
105
+ }, [scrollRef, containerScrollRef, configurePanGesture]);
82
106
  const backdropAnimatedStyle = useAnimatedStyle(() => ({
83
107
  opacity: backdropOpacity.value
84
108
  }));
@@ -100,15 +124,18 @@ const AnimatedBottomsheetContent = ({
100
124
  onPress: onBackdropPress
101
125
  }, /*#__PURE__*/React.createElement(Animated.View, _extends({
102
126
  style: [styles.backdrop, backdropAnimatedStyle]
103
- }, getTestProps('backdrop'), getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)))), /*#__PURE__*/React.createElement(Animated.View, _extends({
127
+ }, getTestProps('backdrop'), getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)))), /*#__PURE__*/React.createElement(Animated.View, {
104
128
  style: [styles.container, containerAnimatedStyle]
105
- }, panHandlers), /*#__PURE__*/React.createElement(View, _extends({
129
+ // {...panHandlers}
130
+ }, /*#__PURE__*/React.createElement(View, _extends({
106
131
  style: styles.dragHandleContainer
107
132
  }, dragHandlePanHandlers), /*#__PURE__*/React.createElement(Pressable, {
108
133
  onPress: onDragHandlePress
109
134
  }, /*#__PURE__*/React.createElement(View, _extends({
110
135
  style: styles.dragIconHandle
111
- }, getTestProps('draghandle'))))), children(contentStyle)));
136
+ }, getTestProps('draghandle'))))), /*#__PURE__*/React.createElement(GestureDetector, {
137
+ gesture: panGesture
138
+ }, children(contentStyle))));
112
139
  };
113
140
  export default class WmBottomsheet extends BaseComponent {
114
141
  // Helper method to calculate animation duration based on distance and velocity
@@ -177,6 +204,9 @@ export default class WmBottomsheet extends BaseComponent {
177
204
  _defineProperty(this, "isIosKeyboardHeightSet", false);
178
205
  _defineProperty(this, "sheetModalService", void 0);
179
206
  _defineProperty(this, "isDragHandleExpanding", false);
207
+ //container widget scrollview ref and y offset value
208
+ _defineProperty(this, "containerscrollViewRef", null);
209
+ _defineProperty(this, "containerscrollYoffset", 0);
180
210
  // Reanimated shared values - created once and reused
181
211
  _defineProperty(this, "translateY", void 0);
182
212
  _defineProperty(this, "backdropOpacity", void 0);
@@ -331,6 +361,20 @@ export default class WmBottomsheet extends BaseComponent {
331
361
  if (this.state.isExpanded || this.props.disableswipedownclose) {
332
362
  if (gestureState.dy < this.expandedHeight / 4 || this.props.disableswipedownclose) {
333
363
  var _this$sheetHeight;
364
+ //reseting bottom sheet scrollview offset value to fix scrollview automatic scroll issue while collpsing the bottom sheet
365
+ setTimeout(() => {
366
+ var _this$state$scrollVie;
367
+ if ((_this$state$scrollVie = this.state.scrollViewRef) !== null && _this$state$scrollVie !== void 0 && _this$state$scrollVie.current) {
368
+ this.state.scrollViewRef.current.scrollTo({
369
+ x: 0,
370
+ y: 0,
371
+ animated: false
372
+ });
373
+ this.updateState({
374
+ scrollOffset: 0
375
+ });
376
+ }
377
+ }, this.animationDuration);
334
378
  let sheetMinimumHeight = this.props.bottomsheetminimumheight || 0.1;
335
379
  const targetHeight = this.props.disableswipedownclose ? sheetMinimumHeight * SCREEN_HEIGHT : this.calculatedHeight;
336
380
  const currentHeight = ((_this$sheetHeight = this.sheetHeight) === null || _this$sheetHeight === void 0 ? void 0 : _this$sheetHeight.value) || this.expandedHeight;
@@ -372,6 +416,47 @@ export default class WmBottomsheet extends BaseComponent {
372
416
  }
373
417
  }
374
418
  });
419
+ _defineProperty(this, "configurePanGesture", pan => {
420
+ pan.enabled(true).onUpdate(event => {
421
+ // ← Add : any
422
+ const gestureState = {
423
+ dy: event.translationY,
424
+ vy: event.velocityY,
425
+ moveX: event.x,
426
+ moveY: event.y,
427
+ vx: event.velocityX
428
+ };
429
+ if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared && this.state.scrollOffset <= 0 && this.containerscrollYoffset <= 0) {
430
+ const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);
431
+ this.translateY.value = newTranslateY;
432
+ // Reset expand flag if dragging down
433
+ this.isDragHandleExpanding = false;
434
+ } else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded && this.props.disablescrollonrest) {
435
+ // Only trigger expand once with threshold of -50px upward drag
436
+ this.isDragHandleExpanding = true;
437
+ this.expandBottomSheet();
438
+ }
439
+ // ... rest of logic
440
+ }).onEnd(event => {
441
+ // ← Add : any
442
+ const gestureState = {
443
+ dy: event.translationY,
444
+ vy: event.velocityY,
445
+ moveX: event.x,
446
+ moveY: event.y,
447
+ vx: event.velocityX
448
+ };
449
+ if (gestureState.dy > 0 && this.state.scrollOffset <= 0 && this.containerscrollYoffset <= 0) {
450
+ this.handleSwipeGesture(gestureState);
451
+ }
452
+ }).onFinalize((event, success) => {
453
+ // ← Add types
454
+ if (!success) {
455
+ this.openSheet();
456
+ }
457
+ });
458
+ return pan;
459
+ });
375
460
  // panResponder for bottom sheet scroll view
376
461
  _defineProperty(this, "panResponder", PanResponder.create({
377
462
  onStartShouldSetPanResponder: (_, gestureState) => {
@@ -493,9 +578,11 @@ export default class WmBottomsheet extends BaseComponent {
493
578
  this.updateState({
494
579
  isExpanded: false,
495
580
  localModalsOpened: [],
581
+ scrollOffset: 0,
496
582
  contentAnimationId: 0,
497
583
  contentAnimatableProps: undefined
498
584
  });
585
+ this.containerscrollYoffset = 0;
499
586
  this.handleClose();
500
587
  };
501
588
  if (this.translateY && this.backdropOpacity) {
@@ -571,8 +658,14 @@ export default class WmBottomsheet extends BaseComponent {
571
658
  this.topInset = topInset;
572
659
  });
573
660
  }
661
+ const absoluteStyle = {
662
+ top: 0,
663
+ left: 0,
664
+ right: 0
665
+ };
666
+ const rootStyle = props.modal ? [this.styles.root, absoluteStyle] : this.styles.root;
574
667
  return /*#__PURE__*/React.createElement(View, _extends({
575
- style: this.styles.root
668
+ style: rootStyle
576
669
  }, this.getTestProps('keyboardview')), this._background, /*#__PURE__*/React.createElement(AnimatedBottomsheetContent, {
577
670
  translateY: this.translateY,
578
671
  backdropOpacity: this.backdropOpacity,
@@ -585,8 +678,21 @@ export default class WmBottomsheet extends BaseComponent {
585
678
  onBackdropPress: this.handleBackdropPress,
586
679
  onDragHandlePress: this.handleDragHandlePress,
587
680
  getTestProps: this.getTestProps.bind(this),
588
- enabledragsettle: props.enabledragsettle
589
- }, contentStyle => /*#__PURE__*/React.createElement(ScrollView, _extends({
681
+ enabledragsettle: props.enabledragsettle,
682
+ scrollRef: this.state.scrollViewRef,
683
+ containerScrollRef: this.containerscrollViewRef,
684
+ configurePanGesture: this.configurePanGesture
685
+ }, contentStyle => props.issticky ? props.enablemodalsupport ? /*#__PURE__*/React.createElement(ModalProvider, {
686
+ value: this.sheetModalService
687
+ }, /*#__PURE__*/React.createElement(Animated.View, {
688
+ style: [contentStyle, this.styles.sheetContentContainer, {
689
+ overflow: 'hidden'
690
+ }]
691
+ }, props.children)) : /*#__PURE__*/React.createElement(Animated.View, {
692
+ style: [contentStyle, this.styles.sheetContentContainer, {
693
+ overflow: 'hidden'
694
+ }]
695
+ }, props.children) : /*#__PURE__*/React.createElement(ScrollView, _extends({
590
696
  ref: this.state.scrollViewRef,
591
697
  style: this.styles.sheetContentContainer,
592
698
  contentContainerStyle: [this.styles.sheetScrollContent],
@@ -622,7 +728,18 @@ export default class WmBottomsheet extends BaseComponent {
622
728
  });
623
729
  });
624
730
  this.calculatedHeight = this.calculateSheetHeight(_props.bottomsheetheightratio);
625
-
731
+ //container srollview ref
732
+ this.subscribe('containerScrollViewReady', ref => {
733
+ if (ref && ref.current && this.containerscrollViewRef !== ref) {
734
+ this.containerscrollViewRef = ref;
735
+ this.forceUpdate();
736
+ }
737
+ });
738
+ //container scrollview y offset value
739
+ this.subscribe('scroll', e => {
740
+ const offsetY = e.nativeEvent.contentOffset.y;
741
+ this.containerscrollYoffset = offsetY;
742
+ });
626
743
  // Use bottomsheetexpandedheightratio if provided, otherwise use expandedDefaultHeight
627
744
  const expandedRatio = _props.bottomsheetexpandedheightratio || this.expandedDefaultHeight;
628
745
  const effectiveExpandedRatio = Math.max(this.minimumExpandedHeight, Math.min(expandedRatio, this.maxHeight));
@@ -777,13 +894,17 @@ export default class WmBottomsheet extends BaseComponent {
777
894
  }
778
895
  },
779
896
  statusBarTranslucent: false
897
+ }, /*#__PURE__*/React.createElement(GestureHandlerRootView, {
898
+ style: {
899
+ flex: 1
900
+ }
780
901
  }, wrapWithSafeArea(/*#__PURE__*/React.createElement(KeyboardAvoidingView, {
781
902
  style: {
782
903
  flex: 1
783
904
  },
784
905
  behavior: 'padding',
785
906
  keyboardVerticalOffset: Platform.OS === 'ios' ? 0 : undefined
786
- }, this.renderContent(props))));
907
+ }, this.renderContent(props)))));
787
908
  } else {
788
909
  return this.renderContent(props);
789
910
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","createRef","BaseComponent","BaseComponentState","View","PanResponder","Dimensions","TouchableWithoutFeedback","Platform","StatusBar","BackHandler","KeyboardAvoidingView","Keyboard","Modal","Pressable","ScrollView","Animated","useAnimatedStyle","withTiming","runOnJS","Easing","makeMutable","cancelAnimation","Animatable","WmBottomsheetProps","DEFAULT_CLASS","createSkeleton","AccessibilityWidgetType","getAccessibilityProps","ModalProvider","SafeAreaInsetsContext","SafeAreaView","OS","RN","require","RNAnimated","__wmPatchedNoNativeDriver","wrap","name","original","value","config","patched","useNativeDriver","_","height","SCREEN_HEIGHT","get","WmBottomsheetState","constructor","args","_defineProperty","undefined","AnimatedBottomsheetContent","translateY","backdropOpacity","sheetHeight","lastGestureDy","styles","props","children","panHandlers","dragHandlePanHandlers","onBackdropPress","onDragHandlePress","getTestProps","enabledragsettle","backdropAnimatedStyle","opacity","containerAnimatedStyle","transform","contentStyle","paddingBottom","createElement","Fragment","onPress","_extends","style","backdrop","BOTTOMSHEET","container","dragHandleContainer","dragIconHandle","WmBottomsheet","getAnimationDuration","distance","velocity","velocityFactor","Math","max","min","abs","calculatedDuration","calculateSheetHeight","bottomsheetheightratio","effectiveRatio","defaultHeight","maxHeightRatio","minimumHeight","maxHeight","screenHeight","calculatedHeight","defaultTopInset","statusBarHeight","open","state","isBottomsheetVisible","updateState","openSheet","close","closeSheet","animate","contentAnimationId","Date","now","contentAnimatableProps","currentHeight","isExpanded","targetHeight","expandedHeight","callback","invokeEventCallback","lastGestureDyShared","duration","animationDuration","easing","out","ease","finished","localModalsOpened","length","top","sheetModalService","hideModal","disableswipedownclose","autoclose","event","_event$endCoordinates","keyboardHeight","endCoordinates","isIosKeyboardHeightSet","_event$endCoordinates2","iosKeyboardHeight","availableHeight","bufferSpace","topInset","adjustedHeight","modal","keyboardAnimationDuration","gestureState","dy","_this$translateY","currentTranslateY","vy","_this$sheetHeight","sheetMinimumHeight","bottomsheetminimumheight","create","onStartShouldSetPanResponder","disablescrollonrest","scrollOffset","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","newTranslateY","isDragHandleExpanding","expand","expandBottomSheet","onPanResponderRelease","handleSwipeGesture","onPanResponderTerminate","offsetY","nativeEvent","contentOffset","y","isScrolling","handleClose","requestAnimationFrame","key","Consumer","insets","bottom","left","right","bottomInset","root","_background","panResponder","dragHandlePanResponder","handleBackdropPress","handleDragHandlePress","bind","ref","scrollViewRef","sheetContentContainer","contentContainerStyle","sheetScrollContent","alwaysBounceVertical","alwaysBounceHorizontal","bounces","showsVerticalScrollIndicator","scrollEventThrottle","onScroll","handleScroll","nestedScrollEnabled","scrollEnabled","issticky","enablemodalsupport","renderAnimatedSheetChildren","edges","map","o","i","onStartShouldSetResponder","onResponderEnd","isModal","modalOverlay","centered","centeredOverlay","zIndex","elevationIndex","elevation","modalStyle","e","stopPropagation","content","expandedRatio","bottomsheetexpandedheightratio","expandedDefaultHeight","effectiveExpandedRatio","minimumExpandedHeight","showonrender","refresh","forceUpdate","showModal","options","exists","find","list","setTimeout","onOpen","idx","findIndex","onClose","splice","componentDidMount","backHandlerSubscription","addEventListener","handleBackPress","keyboardDidShowListener","addListener","onKeyboardShow","keyboardDidHideListener","onKeyboardHide","componentWillUnmount","remove","componentDidUpdate","prevProps","onPropertyChange","$new","$old","closeSheetImmediate","renderSkeleton","theme","skeleton","width","renderWidget","hasButtonNavigation","wrapWithSafeArea","flex","visible","transparent","animationType","onRequestClose","statusBarTranslucent","behavior","keyboardVerticalOffset","renderContent"],"sources":["bottomsheet.component.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { View, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, PanResponderGestureState, StatusBar, BackHandler, DimensionValue, KeyboardAvoidingView, Keyboard, EmitterSubscription, Modal, NativeEventSubscription, Pressable, ViewStyle } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport Animated, {\n useAnimatedStyle,\n withTiming,\n runOnJS,\n Easing,\n SharedValue,\n makeMutable,\n cancelAnimation\n} from 'react-native-reanimated';\nimport { AnimatableProps } from 'react-native-animatable';\nimport * as Animatable from 'react-native-animatable';\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 { ModalProvider, ModalService, ModalOptions } from '@wavemaker/app-rn-runtime/core/modal.service';\nimport { SafeAreaInsetsContext, SafeAreaView } from 'react-native-safe-area-context';\n\n\n// Web-only: Runs all bottom sheet animations on the JS thread (sets useNativeDriver to false)\n// Prevents errors on web where native driver animations are not supported\n// Web - Animated api is used from animation\nif (Platform.OS === 'web') {\n try {\n const RN: any = require('react-native');\n const RNAnimated: any = RN && RN.Animated;\n if (RNAnimated && !RNAnimated.__wmPatchedNoNativeDriver) {\n const wrap = (name: string) => {\n const original = RNAnimated[name];\n if (typeof original === 'function') {\n RNAnimated[name] = (value: any, config: any) => {\n const patched = { ...(config || {}), useNativeDriver: false };\n return original(value, patched);\n };\n }\n };\n wrap('timing');\n wrap('spring');\n wrap('decay');\n RNAnimated.__wmPatchedNoNativeDriver = true;\n }\n } catch (_) {\n // noop\n }\n}\n\nconst { height: SCREEN_HEIGHT } = Dimensions.get('screen');\nexport class WmBottomsheetState extends BaseComponentState<WmBottomsheetProps> {\n scrollViewRef = createRef<ScrollView>();\n isScrolling = false;\n scrollOffset = 0;\n isExpanded = false;\n isBottomsheetVisible = false;\n keyboardHeight = 0;\n localModalsOpened: ModalOptions[] = [];\n lastGestureDy = 0;\n contentAnimationId?: number = 0;\n contentAnimatableProps?: AnimatableProps<ViewStyle> = undefined;\n}\n\n// Animated wrapper component that uses hooks\nconst AnimatedBottomsheetContent = ({\n translateY,\n backdropOpacity,\n sheetHeight,\n lastGestureDy,\n styles,\n props,\n children,\n panHandlers,\n dragHandlePanHandlers,\n onBackdropPress,\n onDragHandlePress,\n getTestProps,\n enabledragsettle\n}: any) => {\n const backdropAnimatedStyle = useAnimatedStyle(() => ({\n opacity: backdropOpacity.value\n }));\n\n const containerAnimatedStyle = useAnimatedStyle(() => ({\n height: sheetHeight.value,\n transform: [{ translateY: translateY.value }]\n }));\n\n const contentStyle = useAnimatedStyle(() => {\n if (enabledragsettle && lastGestureDy.value > 0) {\n return {\n paddingBottom: lastGestureDy.value\n };\n }\n return {};\n });\n\n return (\n <>\n <TouchableWithoutFeedback onPress={onBackdropPress}>\n <Animated.View\n style={[styles.backdrop, backdropAnimatedStyle]}\n {...getTestProps('backdrop')}\n {...getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)}\n />\n </TouchableWithoutFeedback>\n\n <Animated.View\n style={[styles.container, containerAnimatedStyle]}\n {...panHandlers}\n >\n <View style={styles.dragHandleContainer} {...dragHandlePanHandlers}>\n <Pressable onPress={onDragHandlePress}>\n <View style={styles.dragIconHandle} {...getTestProps('draghandle')} />\n </Pressable>\n </View>\n {children(contentStyle)}\n </Animated.View>\n </>\n );\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.01;\n private minimumExpandedHeight: number = 0.5;\n private maxHeight: number = 1.0;\n private animationDuration: number = 400;\n private keyboardAnimationDuration: number = Platform.OS === 'ios' ? 250 : 275;\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 private backHandlerSubscription: NativeEventSubscription | null = null;\n private topInset: number = 0;\n private iosKeyboardHeight: number = 0;\n private isIosKeyboardHeightSet: boolean = false;\n private sheetModalService: ModalService;\n private isDragHandleExpanding: boolean = false;\n\n // Reanimated shared values - created once and reused\n private translateY!: SharedValue<number>;\n private backdropOpacity!: SharedValue<number>;\n private sheetHeight!: SharedValue<number>;\n private lastGestureDyShared!: SharedValue<number>;\n\n // Helper method to calculate animation duration based on distance and velocity\n private getAnimationDuration(distance: number, velocity: number): number {\n // Base duration on distance, but cap it between 200-500ms\n // Higher velocity = shorter duration for snappier feel\n const velocityFactor = Math.max(0.3, Math.min(1, 1 - Math.abs(velocity) / 2));\n const calculatedDuration = Math.abs(distance) * velocityFactor;\n return Math.min(500, Math.max(200, calculatedDuration));\n }\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 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 isSheetExpanded = () => {\n return this.state.isExpanded\n }\n\n expandBottomSheet = () => {\n const targetHeight = Math.min(this.expandedHeight, SCREEN_HEIGHT);\n const callback = () => {\n this.updateState({\n isExpanded: true,\n lastGestureDy: 0\n } as WmBottomsheetState);\n this.invokeEventCallback('onExpand', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n this.lastGestureDyShared.value = 0;\n\n if (this.props.enabledragsettle) {\n // Synchronize both animations to complete together\n this.sheetHeight.value = withTiming(targetHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n } else {\n // Only animate height for non-drag-settle mode\n this.sheetHeight.value = withTiming(targetHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n }\n }\n\n collapseBottomSheet = () => {\n const callback = () => {\n this.updateState({\n isExpanded: false,\n lastGestureDy: 0\n } as WmBottomsheetState);\n this.invokeEventCallback('onCollapse', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n this.lastGestureDyShared.value = 0;\n\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n this.sheetHeight.value = withTiming(this.calculatedHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n }\n\n public animate(props: AnimatableProps<ViewStyle>) {\n this.updateState({\n contentAnimationId: Date.now(),\n contentAnimatableProps: props\n } as WmBottomsheetState);\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\n // Initialize shared values in constructor using makeMutable (not hooks)\n // makeMutable can be called outside of React components\n this.translateY = makeMutable(SCREEN_HEIGHT);\n this.backdropOpacity = makeMutable(0);\n this.sheetHeight = makeMutable(this.calculatedHeight);\n this.lastGestureDyShared = makeMutable(0);\n\n this.updateState({\n isBottomsheetVisible: this.props.showonrender || false\n } as WmBottomsheetState);\n\n // Initialize values immediately to prevent flicker\n if (this.props.showonrender) {\n this.translateY.value = 0;\n this.backdropOpacity.value = 1;\n }\n\n // Local ModalService for content rendered inside Bottomsheet\n this.sheetModalService = {\n refresh: () => this.forceUpdate(),\n showModal: (options: ModalOptions) => {\n const exists = this.state.localModalsOpened.find(o => o === options);\n if (!exists) {\n // ensure high z-index within sheet\n (options as any).elevationIndex = 9999 + this.state.localModalsOpened.length + 1;\n const list = [...this.state.localModalsOpened, options];\n this.updateState({ localModalsOpened: list } as WmBottomsheetState, () => {\n setTimeout(() => options.onOpen && options.onOpen(), 0);\n });\n }\n },\n hideModal: (options?: ModalOptions) => {\n const list = [...this.state.localModalsOpened];\n const idx = options ? list.findIndex(o => o === options) : (list.length - 1);\n if (idx >= 0) {\n const o = list[idx];\n o && o.onClose && o.onClose();\n list.splice(idx, 1);\n this.updateState({ localModalsOpened: list } as WmBottomsheetState);\n }\n }\n };\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n // Trigger animation after mount if showonrender is true\n if (this.state.isBottomsheetVisible) {\n // Use requestAnimationFrame to ensure animation happens after initial render\n requestAnimationFrame(() => {\n this.openSheet();\n });\n }\n\n if (Platform.OS === 'android') {\n this.backHandlerSubscription = 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 (this.backHandlerSubscription) {\n this.backHandlerSubscription.remove();\n this.backHandlerSubscription = null;\n }\n if (this.keyboardDidShowListener) {\n this.keyboardDidShowListener.remove();\n }\n if (this.keyboardDidHideListener) {\n this.keyboardDidHideListener.remove();\n }\n }\n\n private handleBackPress = () => {\n // Close top-most local modal first, if any\n if (this.state.localModalsOpened && this.state.localModalsOpened.length > 0) {\n const top = this.state.localModalsOpened[this.state.localModalsOpened.length - 1];\n this.sheetModalService.hideModal(top);\n return true;\n }\n if (this.state.isBottomsheetVisible) {\n if (!this.props.disableswipedownclose && this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\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 //only storing ios keyboard height once as first time keyboard open (to avoid scroll flickring issue in ios in text widget)\n if (!this.isIosKeyboardHeightSet) {\n this.iosKeyboardHeight = event.endCoordinates?.height + 40;\n this.isIosKeyboardHeightSet = true;\n }\n // Calculate available space after keyboard\n const availableHeight = SCREEN_HEIGHT - (Platform.OS == 'ios' ? this.iosKeyboardHeight : keyboardHeight);\n // Calculate adjusted sheet height to fit within available space\n // Leave some buffer space for the drag handle and safe area\n const bufferSpace = (Platform.OS === 'ios' ? this.topInset : this.statusBarHeight) + 20;\n const adjustedHeight = availableHeight - bufferSpace;\n\n if (this.sheetHeight && Platform.OS == 'android' && this.props.modal) {\n // Use platform-specific keyboard animation duration for smooth synchronization\n this.sheetHeight.value = withTiming(adjustedHeight, {\n duration: this.keyboardAnimationDuration,\n easing: Easing.out(Easing.ease)\n });\n }\n\n this.updateState({\n keyboardHeight: keyboardHeight,\n } as WmBottomsheetState);\n };\n\n private onKeyboardHide = () => {\n if (this.sheetHeight && Platform.OS == 'android' && this.props.modal) {\n // Use platform-specific keyboard animation duration for smooth synchronization\n this.sheetHeight.value = withTiming(\n this.state.isExpanded ? this.expandedHeight : this.calculatedHeight,\n {\n duration: this.keyboardAnimationDuration,\n easing: Easing.out(Easing.ease)\n }\n );\n }\n\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 if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\n }\n }\n\n handleSwipeGesture = (gestureState: PanResponderGestureState) => {\n\n // Only reset lastGestureDy for traditional behavior, not for drag and settle\n if (!this.props.enabledragsettle) {\n this.updateState({\n lastGestureDy: 0\n } as WmBottomsheetState);\n if (this.lastGestureDyShared) {\n this.lastGestureDyShared.value = 0;\n }\n }\n\n if (this.props.enabledragsettle && gestureState.dy > 0) {\n const currentTranslateY = this.translateY?.value || 0;\n\n if (gestureState.vy > 0.5 && !this.props.disableswipedownclose) {\n this.closeSheet();\n return;\n }\n\n if (this.translateY && this.lastGestureDyShared) {\n this.translateY.value = currentTranslateY;\n this.lastGestureDyShared.value = currentTranslateY;\n }\n\n this.updateState({\n isExpanded: false,\n lastGestureDy: currentTranslateY\n } as WmBottomsheetState);\n return;\n }\n\n if (gestureState.dy > 0) {\n if (this.state.isExpanded || this.props.disableswipedownclose) {\n if (gestureState.dy < this.expandedHeight / 4 || this.props.disableswipedownclose) {\n let sheetMinimumHeight = this.props.bottomsheetminimumheight || 0.1;\n const targetHeight = this.props.disableswipedownclose ? sheetMinimumHeight * SCREEN_HEIGHT : this.calculatedHeight;\n const currentHeight = this.sheetHeight?.value || this.expandedHeight;\n const distance = Math.abs(currentHeight - targetHeight);\n const duration = this.getAnimationDuration(distance, gestureState.vy);\n\n const callback = () => {\n this.updateState({\n isExpanded: false\n } as WmBottomsheetState);\n this.invokeEventCallback('onCollapse', [null, this]);\n };\n\n if (this.translateY && this.sheetHeight) {\n this.translateY.value = withTiming(0, {\n duration: duration,\n easing: Easing.out(Easing.ease)\n });\n this.sheetHeight.value = withTiming(\n targetHeight,\n {\n duration: duration,\n easing: Easing.out(Easing.ease)\n },\n (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n }\n );\n }\n } else if ((gestureState.dy > this.expandedHeight / 4 || gestureState.vy > 0.5) && !this.props.disableswipedownclose) {\n this.closeSheet();\n }\n } else {\n if (this.props.disableswipedownclose) {\n this.openSheet();\n return;\n }\n if ((gestureState.dy > 100 || gestureState.vy > 0.5) && !this.props.disableswipedownclose) {\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 if (this.props.disablescrollonrest && !this.state.isExpanded) {\n return true\n }\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\n onMoveShouldSetPanResponder: (_, gestureState) => {\n if (this.props.disablescrollonrest && !this.state.isExpanded) {\n return Math.abs(gestureState.dy) > 2;\n }\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\n onPanResponderGrant: () => {\n // Cancel any ongoing animations when user starts dragging\n if (this.translateY) {\n cancelAnimation(this.translateY);\n }\n },\n\n onPanResponderMove: (_, gestureState) => {\n\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n }\n else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\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\n onPanResponderGrant: () => {\n // Cancel any ongoing animations when user starts dragging\n if (this.translateY) {\n cancelAnimation(this.translateY);\n }\n // Reset the expand flag\n this.isDragHandleExpanding = false;\n },\n\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n } else if (gestureState.dy < -50 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n this.isDragHandleExpanding = false;\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 const callback = () => {\n this.updateState({\n lastGestureDy: 0,\n } as WmBottomsheetState);\n this.invokeEventCallback('onOpened', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n if (this.lastGestureDyShared) {\n this.lastGestureDyShared.value = 0;\n }\n\n if (this.translateY && this.backdropOpacity) {\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n // Backdrop animation synchronized with sheet animation\n this.backdropOpacity.value = withTiming(1, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\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 \n\n const callback = () => {\n // Reset sheet height after close\n if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\n this.updateState({\n isExpanded: false,\n localModalsOpened: [] as ModalOptions[],\n contentAnimationId: 0, \n contentAnimatableProps: undefined \n } as WmBottomsheetState);\n this.handleClose();\n };\n\n if (this.translateY && this.backdropOpacity) {\n this.translateY.value = withTiming(SCREEN_HEIGHT, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n // Backdrop animation synchronized with sheet animation\n this.backdropOpacity.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n }\n };\n\n closeSheetImmediate = () => {\n if (this.translateY && this.backdropOpacity && this.lastGestureDyShared) {\n this.translateY.value = SCREEN_HEIGHT;\n this.backdropOpacity.value = 0;\n this.lastGestureDyShared.value = 0;\n }\n\n this.updateState({\n lastGestureDy: 0,\n isExpanded: false,\n isBottomsheetVisible: false,\n localModalsOpened: [] as ModalOptions[],\n contentAnimationId: 0,\n contentAnimatableProps: undefined\n } as WmBottomsheetState);\n\n requestAnimationFrame(() => {\n if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\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 // Class methods to prevent recreation on every render\n private handleBackdropPress = () => {\n if (this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\n };\n\n private handleDragHandlePress = () => {\n this.invokeEventCallback('onDraghandleiconclick', [null, this]);\n };\n\n private renderAnimatedSheetChildren = (children: React.ReactNode) => {\n if (!this.state.contentAnimatableProps) {\n return children;\n }\n return (\n <Animatable.View\n key={this.state.contentAnimationId}\n {...this.state.contentAnimatableProps}\n >\n {children}\n </Animatable.View>\n );\n };\n\n private renderContent = (props: WmBottomsheetProps) => {\n // Don't render if shared values aren't initialized yet\n if (!this.translateY || !this.backdropOpacity || !this.sheetHeight || !this.lastGestureDyShared) {\n return null;\n }\n\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n // Store topInset for later use (avoid mutation during render)\n const topInset = insets?.top || 0;\n const bottomInset = insets?.bottom || 0;\n // Update the instance variable outside of render cycle\n if (this.topInset !== topInset) {\n requestAnimationFrame(() => {\n this.topInset = topInset;\n });\n }\n return (\n <View style={this.styles.root} {...this.getTestProps('keyboardview')}>\n {this._background}\n\n <AnimatedBottomsheetContent\n translateY={this.translateY}\n backdropOpacity={this.backdropOpacity}\n sheetHeight={this.sheetHeight}\n lastGestureDy={this.lastGestureDyShared}\n styles={this.styles}\n props={props}\n panHandlers={this.panResponder.panHandlers}\n dragHandlePanHandlers={this.dragHandlePanResponder.panHandlers}\n onBackdropPress={this.handleBackdropPress}\n onDragHandlePress={this.handleDragHandlePress}\n getTestProps={this.getTestProps.bind(this)}\n enabledragsettle={props.enabledragsettle}\n >\n {(contentStyle: any) => (\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={!props.issticky && (!props.disablescrollonrest || this.state.isExpanded)}\n {...this.getTestProps('scorllview')}\n >\n {props.enablemodalsupport ? (\n <ModalProvider value={this.sheetModalService}>\n <Animated.View style={contentStyle}>\n {this.renderAnimatedSheetChildren(props.children)}\n </Animated.View>\n </ModalProvider>\n ) : (\n <Animated.View style={contentStyle}>\n {this.renderAnimatedSheetChildren(props.children)}\n </Animated.View>\n )}\n </ScrollView>\n )}\n </AnimatedBottomsheetContent>\n {/*Adding SafeAreaView to ensure the bottom sheet is rendered above the Android button navigation bar when modal prop is false */}\n {(Platform.OS === 'android' && !this.props.modal && bottomInset > 40) && <SafeAreaView edges={['bottom']} />}\n\n {props.enablemodalsupport && this.state.localModalsOpened && this.state.localModalsOpened.map((o, i) => (\n <View\n key={(o.name || '') + i}\n onStartShouldSetResponder={() => true}\n onResponderEnd={() => o.isModal && this.sheetModalService.hideModal(o)}\n style={[\n this.styles.modalOverlay,\n (o as any).centered ? this.styles.centeredOverlay : null,\n { zIndex: (o as any).elevationIndex || 9999, elevation: (o as any).elevationIndex || 9999 },\n (o.modalStyle || {})\n ]}\n >\n <View\n style={[(o.contentStyle || {})]}\n onStartShouldSetResponder={() => true}\n onResponderEnd={(e) => e.stopPropagation()}\n >\n {o.content}\n </View>\n </View>\n ))}\n </View>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n };\n\n renderWidget(props: WmBottomsheetProps) {\n if (!this.state.isBottomsheetVisible) return null;\n\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n // Use SafeAreaView on Android with button navigation to render the bottom sheet above the nav bar (when modal props is true)\n // Button navigation is identified when bottom inset >= 40 \n const hasButtonNavigation = Platform.OS === 'android' && (insets?.bottom || 0) >= 40;\n\n const wrapWithSafeArea = (children: React.ReactNode) => {\n if (hasButtonNavigation) {\n return <SafeAreaView style={{ flex: 1 }}>{children}</SafeAreaView>;\n }\n return children;\n };\n\n if (props.modal) {\n return (\n <Modal\n visible={this.state.isBottomsheetVisible}\n transparent={true}\n animationType=\"none\"\n onRequestClose={() => {\n if (!this.props.disableswipedownclose && this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\n }}\n statusBarTranslucent={false}\n >\n {wrapWithSafeArea(\n <KeyboardAvoidingView\n style={{ flex: 1 }}\n behavior={'padding'}\n keyboardVerticalOffset={Platform.OS === 'ios' ? 0 : undefined}\n >\n {this.renderContent(props)}\n </KeyboardAvoidingView>\n )}\n </Modal>\n );\n } else {\n return this.renderContent(props);\n }\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createRef","BaseComponent","BaseComponentState","View","PanResponder","Dimensions","TouchableWithoutFeedback","Platform","StatusBar","BackHandler","KeyboardAvoidingView","Keyboard","Modal","Pressable","Gesture","GestureDetector","GestureHandlerRootView","ScrollView","Animated","useAnimatedStyle","withTiming","runOnJS","Easing","makeMutable","cancelAnimation","Animatable","WmBottomsheetProps","DEFAULT_CLASS","createSkeleton","AccessibilityWidgetType","getAccessibilityProps","ModalProvider","SafeAreaInsetsContext","SafeAreaView","OS","RN","require","RNAnimated","__wmPatchedNoNativeDriver","wrap","name","original","value","config","patched","useNativeDriver","_","height","SCREEN_HEIGHT","get","WmBottomsheetState","constructor","args","_defineProperty","undefined","AnimatedBottomsheetContent","translateY","backdropOpacity","sheetHeight","lastGestureDy","styles","props","children","panHandlers","dragHandlePanHandlers","onBackdropPress","onDragHandlePress","getTestProps","enabledragsettle","scrollRef","containerScrollRef","configurePanGesture","panGesture","useMemo","pan","Pan","simultaneousWithExternalGesture","backdropAnimatedStyle","opacity","containerAnimatedStyle","transform","contentStyle","paddingBottom","createElement","Fragment","onPress","_extends","style","backdrop","BOTTOMSHEET","container","dragHandleContainer","dragIconHandle","gesture","WmBottomsheet","getAnimationDuration","distance","velocity","velocityFactor","Math","max","min","abs","calculatedDuration","calculateSheetHeight","bottomsheetheightratio","effectiveRatio","defaultHeight","maxHeightRatio","minimumHeight","maxHeight","screenHeight","calculatedHeight","defaultTopInset","statusBarHeight","open","state","isBottomsheetVisible","updateState","openSheet","close","closeSheet","animate","contentAnimationId","Date","now","contentAnimatableProps","currentHeight","isExpanded","targetHeight","expandedHeight","callback","invokeEventCallback","lastGestureDyShared","duration","animationDuration","easing","out","ease","finished","localModalsOpened","length","top","sheetModalService","hideModal","disableswipedownclose","autoclose","event","_event$endCoordinates","keyboardHeight","endCoordinates","isIosKeyboardHeightSet","_event$endCoordinates2","iosKeyboardHeight","availableHeight","bufferSpace","topInset","adjustedHeight","modal","keyboardAnimationDuration","gestureState","dy","_this$translateY","currentTranslateY","vy","_this$sheetHeight","setTimeout","_this$state$scrollVie","scrollViewRef","current","scrollTo","x","y","animated","scrollOffset","sheetMinimumHeight","bottomsheetminimumheight","enabled","onUpdate","translationY","velocityY","moveX","moveY","vx","velocityX","containerscrollYoffset","newTranslateY","isDragHandleExpanding","expand","disablescrollonrest","expandBottomSheet","onEnd","handleSwipeGesture","onFinalize","success","create","onStartShouldSetPanResponder","onMoveShouldSetPanResponder","onPanResponderGrant","onPanResponderMove","onPanResponderRelease","onPanResponderTerminate","offsetY","nativeEvent","contentOffset","isScrolling","handleClose","requestAnimationFrame","key","Consumer","insets","bottom","left","right","bottomInset","absoluteStyle","rootStyle","root","_background","panResponder","dragHandlePanResponder","handleBackdropPress","handleDragHandlePress","bind","containerscrollViewRef","issticky","enablemodalsupport","sheetContentContainer","overflow","ref","contentContainerStyle","sheetScrollContent","alwaysBounceVertical","alwaysBounceHorizontal","bounces","showsVerticalScrollIndicator","scrollEventThrottle","onScroll","handleScroll","nestedScrollEnabled","scrollEnabled","renderAnimatedSheetChildren","edges","map","o","i","onStartShouldSetResponder","onResponderEnd","isModal","modalOverlay","centered","centeredOverlay","zIndex","elevationIndex","elevation","modalStyle","e","stopPropagation","content","subscribe","forceUpdate","expandedRatio","bottomsheetexpandedheightratio","expandedDefaultHeight","effectiveExpandedRatio","minimumExpandedHeight","showonrender","refresh","showModal","options","exists","find","list","onOpen","idx","findIndex","onClose","splice","componentDidMount","backHandlerSubscription","addEventListener","handleBackPress","keyboardDidShowListener","addListener","onKeyboardShow","keyboardDidHideListener","onKeyboardHide","componentWillUnmount","remove","componentDidUpdate","prevProps","onPropertyChange","$new","$old","closeSheetImmediate","renderSkeleton","theme","skeleton","width","renderWidget","hasButtonNavigation","wrapWithSafeArea","flex","visible","transparent","animationType","onRequestClose","statusBarTranslucent","behavior","keyboardVerticalOffset","renderContent"],"sources":["bottomsheet.component.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { View, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, PanResponderGestureState, StatusBar, BackHandler, DimensionValue, KeyboardAvoidingView, Keyboard, EmitterSubscription, Modal, NativeEventSubscription, Pressable, ViewStyle } from 'react-native';\nimport { Gesture, GestureDetector, GestureHandlerRootView, ScrollView } from 'react-native-gesture-handler';\nimport Animated, {\n useAnimatedStyle,\n withTiming,\n runOnJS,\n Easing,\n SharedValue,\n makeMutable,\n cancelAnimation\n} from 'react-native-reanimated';\nimport { AnimatableProps } from 'react-native-animatable';\nimport * as Animatable from 'react-native-animatable';\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 { ModalProvider, ModalService, ModalOptions } from '@wavemaker/app-rn-runtime/core/modal.service';\nimport { SafeAreaInsetsContext, SafeAreaView } from 'react-native-safe-area-context';\n\n\n// Web-only: Runs all bottom sheet animations on the JS thread (sets useNativeDriver to false)\n// Prevents errors on web where native driver animations are not supported\n// Web - Animated api is used from animation\nif (Platform.OS === 'web') {\n try {\n const RN: any = require('react-native');\n const RNAnimated: any = RN && RN.Animated;\n if (RNAnimated && !RNAnimated.__wmPatchedNoNativeDriver) {\n const wrap = (name: string) => {\n const original = RNAnimated[name];\n if (typeof original === 'function') {\n RNAnimated[name] = (value: any, config: any) => {\n const patched = { ...(config || {}), useNativeDriver: false };\n return original(value, patched);\n };\n }\n };\n wrap('timing');\n wrap('spring');\n wrap('decay');\n RNAnimated.__wmPatchedNoNativeDriver = true;\n }\n } catch (_) {\n // noop\n }\n}\n\nconst { height: SCREEN_HEIGHT } = Dimensions.get('screen');\nexport class WmBottomsheetState extends BaseComponentState<WmBottomsheetProps> {\n scrollViewRef = createRef<ScrollView>();\n isScrolling = false;\n scrollOffset = 0;\n isExpanded = false;\n isBottomsheetVisible = false;\n keyboardHeight = 0;\n localModalsOpened: ModalOptions[] = [];\n lastGestureDy = 0;\n contentAnimationId?: number = 0;\n contentAnimatableProps?: AnimatableProps<ViewStyle> = undefined;\n}\n\n// Animated wrapper component that uses hooks\nconst AnimatedBottomsheetContent = ({\n translateY,\n backdropOpacity,\n sheetHeight,\n lastGestureDy,\n styles,\n props,\n children,\n panHandlers,\n dragHandlePanHandlers,\n onBackdropPress,\n onDragHandlePress,\n getTestProps,\n enabledragsettle,\n scrollRef,\n containerScrollRef,\n configurePanGesture\n\n}: any) => {\n\n\n // Simple RNGH GestureDetector attached to the same view as the PanResponder (panHandlers).\n // No thresholds/validation: logs translationY directly during pan.\n const panGesture = React.useMemo(() => {\n // Create base Pan gesture\n const pan = Gesture.Pan().runOnJS(true);\n\n // Add external gestures for ScrollViews (container widget scrollview)\n if (scrollRef && containerScrollRef) {\n pan.simultaneousWithExternalGesture(\n scrollRef as any,\n containerScrollRef as any\n );\n } else if (scrollRef) {\n pan.simultaneousWithExternalGesture(scrollRef as any);\n } else if (containerScrollRef) {\n pan.simultaneousWithExternalGesture(containerScrollRef as any);\n }\n\n // Apply custom logic from parent BottomSheet class\n if (configurePanGesture) {\n configurePanGesture(pan);\n }\n\n return pan;\n }, [scrollRef, containerScrollRef, configurePanGesture]);\n\n const backdropAnimatedStyle = useAnimatedStyle(() => ({\n opacity: backdropOpacity.value\n }));\n\n const containerAnimatedStyle = useAnimatedStyle(() => ({\n height: sheetHeight.value,\n transform: [{ translateY: translateY.value }]\n }));\n\n const contentStyle = useAnimatedStyle(() => {\n if (enabledragsettle && lastGestureDy.value > 0) {\n return {\n paddingBottom: lastGestureDy.value\n };\n }\n return {};\n });\n\n return (\n <>\n <TouchableWithoutFeedback onPress={onBackdropPress}>\n <Animated.View\n style={[styles.backdrop, backdropAnimatedStyle]}\n {...getTestProps('backdrop')}\n {...getAccessibilityProps(AccessibilityWidgetType.BOTTOMSHEET, props)}\n />\n </TouchableWithoutFeedback>\n\n <Animated.View\n style={[styles.container, containerAnimatedStyle]}\n // {...panHandlers}\n >\n <View style={styles.dragHandleContainer} {...dragHandlePanHandlers}>\n <Pressable onPress={onDragHandlePress}>\n <View style={styles.dragIconHandle} {...getTestProps('draghandle')} />\n </Pressable>\n </View>\n <GestureDetector gesture={panGesture}>\n {children(contentStyle)}\n </GestureDetector>\n </Animated.View>\n </>\n );\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.01;\n private minimumExpandedHeight: number = 0.5;\n private maxHeight: number = 1.0;\n private animationDuration: number = 400;\n private keyboardAnimationDuration: number = Platform.OS === 'ios' ? 250 : 275;\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 private backHandlerSubscription: NativeEventSubscription | null = null;\n private topInset: number = 0;\n private iosKeyboardHeight: number = 0;\n private isIosKeyboardHeightSet: boolean = false;\n private sheetModalService: ModalService;\n private isDragHandleExpanding: boolean = false;\n //container widget scrollview ref and y offset value\n private containerscrollViewRef: any = null\n private containerscrollYoffset: number = 0\n\n\n // Reanimated shared values - created once and reused\n private translateY!: SharedValue<number>;\n private backdropOpacity!: SharedValue<number>;\n private sheetHeight!: SharedValue<number>;\n private lastGestureDyShared!: SharedValue<number>;\n\n // Helper method to calculate animation duration based on distance and velocity\n private getAnimationDuration(distance: number, velocity: number): number {\n // Base duration on distance, but cap it between 200-500ms\n // Higher velocity = shorter duration for snappier feel\n const velocityFactor = Math.max(0.3, Math.min(1, 1 - Math.abs(velocity) / 2));\n const calculatedDuration = Math.abs(distance) * velocityFactor;\n return Math.min(500, Math.max(200, calculatedDuration));\n }\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 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 isSheetExpanded = () => {\n return this.state.isExpanded\n }\n\n expandBottomSheet = () => {\n const targetHeight = Math.min(this.expandedHeight, SCREEN_HEIGHT);\n const callback = () => {\n this.updateState({\n isExpanded: true,\n lastGestureDy: 0\n } as WmBottomsheetState);\n this.invokeEventCallback('onExpand', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n this.lastGestureDyShared.value = 0;\n\n if (this.props.enabledragsettle) {\n // Synchronize both animations to complete together\n this.sheetHeight.value = withTiming(targetHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n } else {\n // Only animate height for non-drag-settle mode\n this.sheetHeight.value = withTiming(targetHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n }\n }\n\n collapseBottomSheet = () => {\n const callback = () => {\n this.updateState({\n isExpanded: false,\n lastGestureDy: 0\n } as WmBottomsheetState);\n this.invokeEventCallback('onCollapse', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n this.lastGestureDyShared.value = 0;\n\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n this.sheetHeight.value = withTiming(this.calculatedHeight, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n }\n\n public animate(props: AnimatableProps<ViewStyle>) {\n this.updateState({\n contentAnimationId: Date.now(),\n contentAnimatableProps: props\n } as WmBottomsheetState);\n }\n\n constructor(props: WmBottomsheetProps) {\n super(props, DEFAULT_CLASS, new WmBottomsheetProps(), new WmBottomsheetState());\n this.calculatedHeight = this.calculateSheetHeight(props.bottomsheetheightratio);\n //container srollview ref\n this.subscribe('containerScrollViewReady', (ref: React.RefObject<any>) => {\n if (ref && ref.current && this.containerscrollViewRef !== ref) {\n this.containerscrollViewRef = ref;\n this.forceUpdate();\n }\n });\n //container scrollview y offset value\n this.subscribe('scroll', (e: any) => {\n const offsetY = e.nativeEvent.contentOffset.y;\n this.containerscrollYoffset = offsetY\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\n // Initialize shared values in constructor using makeMutable (not hooks)\n // makeMutable can be called outside of React components\n this.translateY = makeMutable(SCREEN_HEIGHT);\n this.backdropOpacity = makeMutable(0);\n this.sheetHeight = makeMutable(this.calculatedHeight);\n this.lastGestureDyShared = makeMutable(0);\n\n this.updateState({\n isBottomsheetVisible: this.props.showonrender || false\n } as WmBottomsheetState);\n\n // Initialize values immediately to prevent flicker\n if (this.props.showonrender) {\n this.translateY.value = 0;\n this.backdropOpacity.value = 1;\n }\n\n // Local ModalService for content rendered inside Bottomsheet\n this.sheetModalService = {\n refresh: () => this.forceUpdate(),\n showModal: (options: ModalOptions) => {\n const exists = this.state.localModalsOpened.find(o => o === options);\n if (!exists) {\n // ensure high z-index within sheet\n (options as any).elevationIndex = 9999 + this.state.localModalsOpened.length + 1;\n const list = [...this.state.localModalsOpened, options];\n this.updateState({ localModalsOpened: list } as WmBottomsheetState, () => {\n setTimeout(() => options.onOpen && options.onOpen(), 0);\n });\n }\n },\n hideModal: (options?: ModalOptions) => {\n const list = [...this.state.localModalsOpened];\n const idx = options ? list.findIndex(o => o === options) : (list.length - 1);\n if (idx >= 0) {\n const o = list[idx];\n o && o.onClose && o.onClose();\n list.splice(idx, 1);\n this.updateState({ localModalsOpened: list } as WmBottomsheetState);\n }\n }\n };\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n // Trigger animation after mount if showonrender is true\n if (this.state.isBottomsheetVisible) {\n // Use requestAnimationFrame to ensure animation happens after initial render\n requestAnimationFrame(() => {\n this.openSheet();\n });\n }\n\n if (Platform.OS === 'android') {\n this.backHandlerSubscription = 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 (this.backHandlerSubscription) {\n this.backHandlerSubscription.remove();\n this.backHandlerSubscription = null;\n }\n if (this.keyboardDidShowListener) {\n this.keyboardDidShowListener.remove();\n }\n if (this.keyboardDidHideListener) {\n this.keyboardDidHideListener.remove();\n }\n }\n\n private handleBackPress = () => {\n // Close top-most local modal first, if any\n if (this.state.localModalsOpened && this.state.localModalsOpened.length > 0) {\n const top = this.state.localModalsOpened[this.state.localModalsOpened.length - 1];\n this.sheetModalService.hideModal(top);\n return true;\n }\n if (this.state.isBottomsheetVisible) {\n if (!this.props.disableswipedownclose && this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\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 //only storing ios keyboard height once as first time keyboard open (to avoid scroll flickring issue in ios in text widget)\n if (!this.isIosKeyboardHeightSet) {\n this.iosKeyboardHeight = event.endCoordinates?.height + 40;\n this.isIosKeyboardHeightSet = true;\n }\n // Calculate available space after keyboard\n const availableHeight = SCREEN_HEIGHT - (Platform.OS == 'ios' ? this.iosKeyboardHeight : keyboardHeight);\n // Calculate adjusted sheet height to fit within available space\n // Leave some buffer space for the drag handle and safe area\n const bufferSpace = (Platform.OS === 'ios' ? this.topInset : this.statusBarHeight) + 20;\n const adjustedHeight = availableHeight - bufferSpace;\n\n if (this.sheetHeight && Platform.OS == 'android' && this.props.modal) {\n // Use platform-specific keyboard animation duration for smooth synchronization\n this.sheetHeight.value = withTiming(adjustedHeight, {\n duration: this.keyboardAnimationDuration,\n easing: Easing.out(Easing.ease)\n });\n }\n\n this.updateState({\n keyboardHeight: keyboardHeight,\n } as WmBottomsheetState);\n };\n\n private onKeyboardHide = () => {\n if (this.sheetHeight && Platform.OS == 'android' && this.props.modal) {\n // Use platform-specific keyboard animation duration for smooth synchronization\n this.sheetHeight.value = withTiming(\n this.state.isExpanded ? this.expandedHeight : this.calculatedHeight,\n {\n duration: this.keyboardAnimationDuration,\n easing: Easing.out(Easing.ease)\n }\n );\n }\n\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 if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\n }\n }\n\n handleSwipeGesture = (gestureState: PanResponderGestureState) => {\n\n // Only reset lastGestureDy for traditional behavior, not for drag and settle\n if (!this.props.enabledragsettle) {\n this.updateState({\n lastGestureDy: 0\n } as WmBottomsheetState);\n if (this.lastGestureDyShared) {\n this.lastGestureDyShared.value = 0;\n }\n }\n\n if (this.props.enabledragsettle && gestureState.dy > 0) {\n const currentTranslateY = this.translateY?.value || 0;\n\n if (gestureState.vy > 0.5 && !this.props.disableswipedownclose) {\n this.closeSheet();\n return;\n }\n\n if (this.translateY && this.lastGestureDyShared) {\n this.translateY.value = currentTranslateY;\n this.lastGestureDyShared.value = currentTranslateY;\n }\n\n this.updateState({\n isExpanded: false,\n lastGestureDy: currentTranslateY\n } as WmBottomsheetState);\n return;\n }\n\n if (gestureState.dy > 0) {\n if (this.state.isExpanded || this.props.disableswipedownclose) {\n if (gestureState.dy < this.expandedHeight / 4 || this.props.disableswipedownclose) {\n //reseting bottom sheet scrollview offset value to fix scrollview automatic scroll issue while collpsing the bottom sheet\n setTimeout(() => {\n if (this.state.scrollViewRef?.current) {\n this.state.scrollViewRef.current.scrollTo({ x: 0, y: 0, animated: false });\n this.updateState({ scrollOffset: 0 } as WmBottomsheetState);\n }\n }, this.animationDuration);\n let sheetMinimumHeight = this.props.bottomsheetminimumheight || 0.1;\n const targetHeight = this.props.disableswipedownclose ? sheetMinimumHeight * SCREEN_HEIGHT : this.calculatedHeight;\n const currentHeight = this.sheetHeight?.value || this.expandedHeight;\n const distance = Math.abs(currentHeight - targetHeight);\n const duration = this.getAnimationDuration(distance, gestureState.vy);\n\n const callback = () => {\n this.updateState({\n isExpanded: false\n } as WmBottomsheetState);\n this.invokeEventCallback('onCollapse', [null, this]);\n };\n\n if (this.translateY && this.sheetHeight) {\n this.translateY.value = withTiming(0, {\n duration: duration,\n easing: Easing.out(Easing.ease)\n });\n this.sheetHeight.value = withTiming(\n targetHeight,\n {\n duration: duration,\n easing: Easing.out(Easing.ease)\n },\n (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n }\n );\n }\n } else if ((gestureState.dy > this.expandedHeight / 4 || gestureState.vy > 0.5) && !this.props.disableswipedownclose) {\n this.closeSheet();\n }\n } else {\n if (this.props.disableswipedownclose) {\n this.openSheet();\n return;\n }\n if ((gestureState.dy > 100 || gestureState.vy > 0.5) && !this.props.disableswipedownclose) {\n this.closeSheet();\n } else {\n this.openSheet();\n }\n }\n }\n }\n\n private configurePanGesture = (pan: any) => {\n pan\n .enabled(true)\n .onUpdate((event: any) => { // ← Add : any\n const gestureState = {\n dy: event.translationY,\n vy: event.velocityY,\n moveX: event.x,\n moveY: event.y,\n vx: event.velocityX\n };\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared && this.state.scrollOffset <= 0 && this.containerscrollYoffset <= 0) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n }\n else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded && this.props.disablescrollonrest) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\n }\n // ... rest of logic\n })\n .onEnd((event: any) => { // ← Add : any\n const gestureState = {\n dy: event.translationY,\n vy: event.velocityY,\n moveX: event.x,\n moveY: event.y,\n vx: event.velocityX\n };\n if (gestureState.dy > 0 && this.state.scrollOffset <= 0 && this.containerscrollYoffset <= 0) {\n this.handleSwipeGesture(gestureState as any);\n }\n })\n .onFinalize((event: any, success: boolean) => { // ← Add types\n if (!success) {\n this.openSheet()\n }\n });\n\n return pan;\n };\n // panResponder for bottom sheet scroll view\n panResponder = PanResponder.create({\n onStartShouldSetPanResponder: (_, gestureState) => {\n if (this.props.disablescrollonrest && !this.state.isExpanded) {\n return true\n }\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\n onMoveShouldSetPanResponder: (_, gestureState) => {\n if (this.props.disablescrollonrest && !this.state.isExpanded) {\n return Math.abs(gestureState.dy) > 2;\n }\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\n onPanResponderGrant: () => {\n // Cancel any ongoing animations when user starts dragging\n if (this.translateY) {\n cancelAnimation(this.translateY);\n }\n },\n\n onPanResponderMove: (_, gestureState) => {\n\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n }\n else if (gestureState.dy < 0 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\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\n onPanResponderGrant: () => {\n // Cancel any ongoing animations when user starts dragging\n if (this.translateY) {\n cancelAnimation(this.translateY);\n }\n // Reset the expand flag\n this.isDragHandleExpanding = false;\n },\n\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0 && this.translateY && this.lastGestureDyShared) {\n const newTranslateY = Math.max(0, this.lastGestureDyShared.value + gestureState.dy);\n this.translateY.value = newTranslateY;\n // Reset expand flag if dragging down\n this.isDragHandleExpanding = false;\n } else if (gestureState.dy < -50 && this.props.expand && this.props.bottomsheetheightratio !== 1 && !this.isDragHandleExpanding && !this.state.isExpanded) {\n // Only trigger expand once with threshold of -50px upward drag\n this.isDragHandleExpanding = true;\n this.expandBottomSheet();\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n this.isDragHandleExpanding = false;\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 const callback = () => {\n this.updateState({\n lastGestureDy: 0,\n } as WmBottomsheetState);\n this.invokeEventCallback('onOpened', [null, this]);\n };\n\n // Reset drag settle value immediately on UI thread\n if (this.lastGestureDyShared) {\n this.lastGestureDyShared.value = 0;\n }\n\n if (this.translateY && this.backdropOpacity) {\n this.translateY.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n // Backdrop animation synchronized with sheet animation\n this.backdropOpacity.value = withTiming(1, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\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 \n\n const callback = () => {\n // Reset sheet height after close\n if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\n this.updateState({\n isExpanded: false,\n localModalsOpened: [] as ModalOptions[],\n scrollOffset: 0,\n contentAnimationId: 0, \n contentAnimatableProps: undefined \n } as WmBottomsheetState);\n this.containerscrollYoffset = 0\n this.handleClose();\n };\n\n if (this.translateY && this.backdropOpacity) {\n this.translateY.value = withTiming(SCREEN_HEIGHT, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n }, (finished) => {\n if (finished) {\n runOnJS(callback)();\n }\n });\n // Backdrop animation synchronized with sheet animation\n this.backdropOpacity.value = withTiming(0, {\n duration: this.animationDuration,\n easing: Easing.out(Easing.ease)\n });\n }\n };\n\n closeSheetImmediate = () => {\n if (this.translateY && this.backdropOpacity && this.lastGestureDyShared) {\n this.translateY.value = SCREEN_HEIGHT;\n this.backdropOpacity.value = 0;\n this.lastGestureDyShared.value = 0;\n }\n\n this.updateState({\n lastGestureDy: 0,\n isExpanded: false,\n isBottomsheetVisible: false,\n localModalsOpened: [] as ModalOptions[],\n contentAnimationId: 0,\n contentAnimatableProps: undefined\n } as WmBottomsheetState);\n\n requestAnimationFrame(() => {\n if (this.sheetHeight) {\n this.sheetHeight.value = this.calculatedHeight;\n }\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 // Class methods to prevent recreation on every render\n private handleBackdropPress = () => {\n if (this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\n };\n\n private handleDragHandlePress = () => {\n this.invokeEventCallback('onDraghandleiconclick', [null, this]);\n };\n\n private renderAnimatedSheetChildren = (children: React.ReactNode) => {\n if (!this.state.contentAnimatableProps) {\n return children;\n }\n return (\n <Animatable.View\n key={this.state.contentAnimationId}\n {...this.state.contentAnimatableProps}\n >\n {children}\n </Animatable.View>\n );\n };\n\n private renderContent = (props: WmBottomsheetProps) => {\n // Don't render if shared values aren't initialized yet\n if (!this.translateY || !this.backdropOpacity || !this.sheetHeight || !this.lastGestureDyShared) {\n return null;\n }\n\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n // Store topInset for later use (avoid mutation during render)\n const topInset = insets?.top || 0;\n const bottomInset = insets?.bottom || 0;\n // Update the instance variable outside of render cycle\n if (this.topInset !== topInset) {\n requestAnimationFrame(() => {\n this.topInset = topInset;\n });\n }\n const absoluteStyle = {\n top: 0,\n left: 0,\n right: 0,\n }\n const rootStyle = props.modal\n ? [this.styles.root, absoluteStyle]\n : this.styles.root;\n return (\n <View style={rootStyle} {...this.getTestProps('keyboardview')}>\n {this._background}\n\n <AnimatedBottomsheetContent\n translateY={this.translateY}\n backdropOpacity={this.backdropOpacity}\n sheetHeight={this.sheetHeight}\n lastGestureDy={this.lastGestureDyShared}\n styles={this.styles}\n props={props}\n panHandlers={this.panResponder.panHandlers}\n dragHandlePanHandlers={this.dragHandlePanResponder.panHandlers}\n onBackdropPress={this.handleBackdropPress}\n onDragHandlePress={this.handleDragHandlePress}\n getTestProps={this.getTestProps.bind(this)}\n enabledragsettle={props.enabledragsettle}\n scrollRef={this.state.scrollViewRef}\n containerScrollRef={this.containerscrollViewRef}\n configurePanGesture={this.configurePanGesture}\n >\n {(contentStyle: any) => (\n props.issticky ? (\n props.enablemodalsupport ? (\n <ModalProvider value={this.sheetModalService}>\n <Animated.View style={[contentStyle, this.styles.sheetContentContainer, { overflow: 'hidden' }]}>\n {props.children}\n </Animated.View>\n </ModalProvider>\n ) : (\n <Animated.View style={[contentStyle, this.styles.sheetContentContainer, { overflow: 'hidden' }]}>\n {props.children}\n </Animated.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={!props.issticky && (!props.disablescrollonrest || this.state.isExpanded)}\n {...this.getTestProps('scorllview')}\n >\n {props.enablemodalsupport ? (\n <ModalProvider value={this.sheetModalService}>\n <Animated.View style={contentStyle}>\n {this.renderAnimatedSheetChildren(props.children)}\n </Animated.View>\n </ModalProvider>\n ) : (\n <Animated.View style={contentStyle}>\n {this.renderAnimatedSheetChildren(props.children)}\n </Animated.View>\n )}\n </ScrollView>\n )}\n </AnimatedBottomsheetContent>\n {/*Adding SafeAreaView to ensure the bottom sheet is rendered above the Android button navigation bar when modal prop is false */}\n {(Platform.OS === 'android' && !this.props.modal && bottomInset > 40) && <SafeAreaView edges={['bottom']} />}\n\n {props.enablemodalsupport && this.state.localModalsOpened && this.state.localModalsOpened.map((o, i) => (\n <View\n key={(o.name || '') + i}\n onStartShouldSetResponder={() => true}\n onResponderEnd={() => o.isModal && this.sheetModalService.hideModal(o)}\n style={[\n this.styles.modalOverlay,\n (o as any).centered ? this.styles.centeredOverlay : null,\n { zIndex: (o as any).elevationIndex || 9999, elevation: (o as any).elevationIndex || 9999 },\n (o.modalStyle || {})\n ]}\n >\n <View\n style={[(o.contentStyle || {})]}\n onStartShouldSetResponder={() => true}\n onResponderEnd={(e) => e.stopPropagation()}\n >\n {o.content}\n </View>\n </View>\n ))}\n </View>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n };\n renderWidget(props: WmBottomsheetProps) {\n if (!this.state.isBottomsheetVisible) return null;\n\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n // Use SafeAreaView on Android with button navigation to render the bottom sheet above the nav bar (when modal props is true)\n // Button navigation is identified when bottom inset >= 40 \n const hasButtonNavigation = Platform.OS === 'android' && (insets?.bottom || 0) >= 40;\n\n const wrapWithSafeArea = (children: React.ReactNode) => {\n if (hasButtonNavigation) {\n return <SafeAreaView style={{ flex: 1 }}>{children}</SafeAreaView>;\n }\n return children;\n };\n\n if (props.modal) {\n return (\n <Modal\n visible={this.state.isBottomsheetVisible}\n transparent={true}\n animationType=\"none\"\n onRequestClose={() => {\n if (!this.props.disableswipedownclose && this.props.autoclose !== 'disabled') {\n this.closeSheet();\n }\n }}\n statusBarTranslucent={false}\n >\n <GestureHandlerRootView style={{ flex: 1 }}>\n {wrapWithSafeArea(\n <KeyboardAvoidingView\n style={{ flex: 1 }}\n behavior={'padding'}\n keyboardVerticalOffset={Platform.OS === 'ios' ? 0 : undefined}\n >\n {this.renderContent(props)}\n </KeyboardAvoidingView>\n )}\n </GestureHandlerRootView>\n </Modal>\n );\n } else {\n return this.renderContent(props);\n }\n }}\n </SafeAreaInsetsContext.Consumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,9 +6,6 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
6
6
  const defaultStyles = defineStyles({
7
7
  root: {
8
8
  position: 'absolute',
9
- top: 0,
10
- left: 0,
11
- right: 0,
12
9
  bottom: 0,
13
10
  zIndex: 9999,
14
11
  elevation: 9999,
@@ -1 +1 @@
1
- {"version":3,"names":["BASE_THEME","defineStyles","ThemeVariables","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","position","top","left","right","bottom","zIndex","elevation","width","height","justifyContent","text","backdrop","backgroundColor","INSTANCE","bottomSheetBgColor","container","borderTopLeftRadius","borderTopRightRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","borderTopWidth","borderColor","maxHeight","dragHandleContainer","paddingVertical","alignItems","borderBottomWidth","borderBottomColor","dragIconHandle","bottomSheetDragIconcolor","borderRadius","sheetContentContainer","flex","sheetScrollContent","paddingHorizontal","paddingBottom","flexGrow","modalOverlay","centeredOverlay","skeleton"],"sources":["bottomsheet.styles.ts"],"sourcesContent":["import BASE_THEME from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { TextStyle, ViewStyle } from 'react-native';\nimport { WmSkeletonStyles } from '../skeleton/skeleton.styles';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nexport type WmBottomsheetStyles = BaseStyles & {\n root: ViewStyle;\n backdrop: ViewStyle;\n container: ViewStyle;\n dragHandleContainer: ViewStyle;\n dragIconHandle: ViewStyle;\n sheetContentContainer: ViewStyle;\n sheetScrollContent: ViewStyle;\n modalOverlay: ViewStyle;\n centeredOverlay: ViewStyle;\n skeleton: WmSkeletonStyles\n};\n\nexport const DEFAULT_CLASS = 'app-bottomsheet';\n\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles = defineStyles<WmBottomsheetStyles>({\n root: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: 9999,\n elevation: 9999,\n width: '100%',\n height: '100%',\n justifyContent: 'flex-end', // This pushes content to bottom\n },\n text: {},\n backdrop: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: '100%',\n height: '100%',\n backgroundColor: ThemeVariables.INSTANCE.bottomSheetBgColor\n },\n container: {\n backgroundColor: '#fff',\n borderTopLeftRadius: 28,\n borderTopRightRadius: 28,\n shadowColor: '#000',\n shadowOffset: { width: 0, height: -2 },\n shadowOpacity: 0.05,\n shadowRadius: 3,\n elevation: 5,\n borderTopWidth: 0.5,\n borderColor: ThemeVariables.INSTANCE.bottomSheetBgColor,\n width: '100%',\n maxHeight: '100%', // Allow full screen height\n },\n dragHandleContainer: {\n paddingVertical: 16,\n alignItems: 'center',\n borderBottomWidth: 1,\n borderBottomColor: ThemeVariables.INSTANCE.bottomSheetBgColor,\n backgroundColor: '#fff',\n borderTopLeftRadius: 28,\n borderTopRightRadius: 28,\n },\n dragIconHandle: {\n width: 36,\n height: 4,\n backgroundColor: ThemeVariables.INSTANCE.bottomSheetDragIconcolor,\n borderRadius: 2,\n },\n sheetContentContainer: {\n flex: 1,\n maxHeight: '100%', // Ensure it doesn't exceed container\n },\n sheetScrollContent: {\n paddingHorizontal: 20,\n paddingBottom: 20,\n flexGrow: 1,\n },\n modalOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n },\n centeredOverlay: {\n justifyContent: 'center',\n alignItems: 'center'\n },\n skeleton: {\n root: {\n \n }\n } as WmSkeletonStyles\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAM,wCAAwC;AAC/D,SAAqBC,YAAY,QAAQ,+CAA+C;AAGxF,OAAOC,cAAc,MAAM,kDAAkD;AAc7E,OAAO,MAAMC,aAAa,GAAG,iBAAiB;AAE9CH,UAAU,CAACI,aAAa,CAAC,CAACC,cAAc,EAAEC,QAAQ,KAAK;EACnD,MAAMC,aAAa,GAAGN,YAAY,CAAsB;IACpDO,IAAI,EAAE;MACFC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;MACTC,MAAM,EAAE,IAAI;MACZC,SAAS,EAAE,IAAI;MACfC,KAAK,EAAE,MAAM;MACbC,MAAM,EAAE,MAAM;MACdC,cAAc,EAAE,UAAU,CAAE;IAChC,CAAC;IACDC,IAAI,EAAE,CAAC,CAAC;IACRC,QAAQ,EAAE;MACNX,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE,CAAC;MACTG,KAAK,EAAE,MAAM;MACbC,MAAM,EAAE,MAAM;MACdI,eAAe,EAAEnB,cAAc,CAACoB,QAAQ,CAACC;IAC7C,CAAC;IACDC,SAAS,EAAE;MACPH,eAAe,EAAE,MAAM;MACvBI,mBAAmB,EAAE,EAAE;MACvBC,oBAAoB,EAAE,EAAE;MACxBC,WAAW,EAAE,MAAM;MACnBC,YAAY,EAAE;QAAEZ,KAAK,EAAE,CAAC;QAAEC,MAAM,EAAE,CAAC;MAAE,CAAC;MACtCY,aAAa,EAAE,IAAI;MACnBC,YAAY,EAAE,CAAC;MACff,SAAS,EAAE,CAAC;MACZgB,cAAc,EAAE,GAAG;MACnBC,WAAW,EAAE9B,cAAc,CAACoB,QAAQ,CAACC,kBAAkB;MACvDP,KAAK,EAAE,MAAM;MACbiB,SAAS,EAAE,MAAM,CAAE;IACvB,CAAC;IACDC,mBAAmB,EAAE;MACjBC,eAAe,EAAE,EAAE;MACnBC,UAAU,EAAE,QAAQ;MACpBC,iBAAiB,EAAE,CAAC;MACpBC,iBAAiB,EAAEpC,cAAc,CAACoB,QAAQ,CAACC,kBAAkB;MAC7DF,eAAe,EAAE,MAAM;MACvBI,mBAAmB,EAAE,EAAE;MACvBC,oBAAoB,EAAE;IAC1B,CAAC;IACDa,cAAc,EAAE;MACZvB,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,CAAC;MACTI,eAAe,EAAEnB,cAAc,CAACoB,QAAQ,CAACkB,wBAAwB;MACjEC,YAAY,EAAE;IAClB,CAAC;IACDC,qBAAqB,EAAE;MACnBC,IAAI,EAAE,CAAC;MACPV,SAAS,EAAE,MAAM,CAAE;IACvB,CAAC;IACDW,kBAAkB,EAAE;MAChBC,iBAAiB,EAAE,EAAE;MACrBC,aAAa,EAAE,EAAE;MACjBC,QAAQ,EAAE;IACd,CAAC;IACDC,YAAY,EAAE;MACVvC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE;IACZ,CAAC;IACDoC,eAAe,EAAE;MACb/B,cAAc,EAAE,QAAQ;MACxBkB,UAAU,EAAE;IAChB,CAAC;IACDc,QAAQ,EAAE;MACV1C,IAAI,EAAE,CAEN;IACF;EACF,CAAC,CAAC;EAEFF,QAAQ,CAACH,aAAa,EAAE,EAAE,EAAEI,aAAa,CAAC;AAC9C,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["BASE_THEME","defineStyles","ThemeVariables","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","position","bottom","zIndex","elevation","width","height","justifyContent","text","backdrop","top","left","right","backgroundColor","INSTANCE","bottomSheetBgColor","container","borderTopLeftRadius","borderTopRightRadius","shadowColor","shadowOffset","shadowOpacity","shadowRadius","borderTopWidth","borderColor","maxHeight","dragHandleContainer","paddingVertical","alignItems","borderBottomWidth","borderBottomColor","dragIconHandle","bottomSheetDragIconcolor","borderRadius","sheetContentContainer","flex","sheetScrollContent","paddingHorizontal","paddingBottom","flexGrow","modalOverlay","centeredOverlay","skeleton"],"sources":["bottomsheet.styles.ts"],"sourcesContent":["import BASE_THEME from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { TextStyle, ViewStyle } from 'react-native';\nimport { WmSkeletonStyles } from '../skeleton/skeleton.styles';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nexport type WmBottomsheetStyles = BaseStyles & {\n root: ViewStyle;\n backdrop: ViewStyle;\n container: ViewStyle;\n dragHandleContainer: ViewStyle;\n dragIconHandle: ViewStyle;\n sheetContentContainer: ViewStyle;\n sheetScrollContent: ViewStyle;\n modalOverlay: ViewStyle;\n centeredOverlay: ViewStyle;\n skeleton: WmSkeletonStyles\n};\n\nexport const DEFAULT_CLASS = 'app-bottomsheet';\n\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles = defineStyles<WmBottomsheetStyles>({\n root: {\n position: 'absolute',\n bottom: 0,\n zIndex: 9999,\n elevation: 9999,\n width: '100%',\n height: '100%',\n justifyContent: 'flex-end', // This pushes content to bottom\n },\n text: {},\n backdrop: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: '100%',\n height: '100%',\n backgroundColor: ThemeVariables.INSTANCE.bottomSheetBgColor\n },\n container: {\n backgroundColor: '#fff',\n borderTopLeftRadius: 28,\n borderTopRightRadius: 28,\n shadowColor: '#000',\n shadowOffset: { width: 0, height: -2 },\n shadowOpacity: 0.05,\n shadowRadius: 3,\n elevation: 5,\n borderTopWidth: 0.5,\n borderColor: ThemeVariables.INSTANCE.bottomSheetBgColor,\n width: '100%',\n maxHeight: '100%', // Allow full screen height\n },\n dragHandleContainer: {\n paddingVertical: 16,\n alignItems: 'center',\n borderBottomWidth: 1,\n borderBottomColor: ThemeVariables.INSTANCE.bottomSheetBgColor,\n backgroundColor: '#fff',\n borderTopLeftRadius: 28,\n borderTopRightRadius: 28,\n },\n dragIconHandle: {\n width: 36,\n height: 4,\n backgroundColor: ThemeVariables.INSTANCE.bottomSheetDragIconcolor,\n borderRadius: 2,\n },\n sheetContentContainer: {\n flex: 1,\n maxHeight: '100%', // Ensure it doesn't exceed container\n },\n sheetScrollContent: {\n paddingHorizontal: 20,\n paddingBottom: 20,\n flexGrow: 1,\n },\n modalOverlay: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n },\n centeredOverlay: {\n justifyContent: 'center',\n alignItems: 'center'\n },\n skeleton: {\n root: {\n \n }\n } as WmSkeletonStyles\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAM,wCAAwC;AAC/D,SAAqBC,YAAY,QAAQ,+CAA+C;AAGxF,OAAOC,cAAc,MAAM,kDAAkD;AAc7E,OAAO,MAAMC,aAAa,GAAG,iBAAiB;AAE9CH,UAAU,CAACI,aAAa,CAAC,CAACC,cAAc,EAAEC,QAAQ,KAAK;EACnD,MAAMC,aAAa,GAAGN,YAAY,CAAsB;IACpDO,IAAI,EAAE;MACFC,QAAQ,EAAE,UAAU;MACpBC,MAAM,EAAE,CAAC;MACTC,MAAM,EAAE,IAAI;MACZC,SAAS,EAAE,IAAI;MACfC,KAAK,EAAE,MAAM;MACbC,MAAM,EAAE,MAAM;MACdC,cAAc,EAAE,UAAU,CAAE;IAChC,CAAC;IACDC,IAAI,EAAE,CAAC,CAAC;IACRC,QAAQ,EAAE;MACNR,QAAQ,EAAE,UAAU;MACpBS,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRV,MAAM,EAAE,CAAC;MACTG,KAAK,EAAE,MAAM;MACbC,MAAM,EAAE,MAAM;MACdO,eAAe,EAAEnB,cAAc,CAACoB,QAAQ,CAACC;IAC7C,CAAC;IACDC,SAAS,EAAE;MACPH,eAAe,EAAE,MAAM;MACvBI,mBAAmB,EAAE,EAAE;MACvBC,oBAAoB,EAAE,EAAE;MACxBC,WAAW,EAAE,MAAM;MACnBC,YAAY,EAAE;QAAEf,KAAK,EAAE,CAAC;QAAEC,MAAM,EAAE,CAAC;MAAE,CAAC;MACtCe,aAAa,EAAE,IAAI;MACnBC,YAAY,EAAE,CAAC;MACflB,SAAS,EAAE,CAAC;MACZmB,cAAc,EAAE,GAAG;MACnBC,WAAW,EAAE9B,cAAc,CAACoB,QAAQ,CAACC,kBAAkB;MACvDV,KAAK,EAAE,MAAM;MACboB,SAAS,EAAE,MAAM,CAAE;IACvB,CAAC;IACDC,mBAAmB,EAAE;MACjBC,eAAe,EAAE,EAAE;MACnBC,UAAU,EAAE,QAAQ;MACpBC,iBAAiB,EAAE,CAAC;MACpBC,iBAAiB,EAAEpC,cAAc,CAACoB,QAAQ,CAACC,kBAAkB;MAC7DF,eAAe,EAAE,MAAM;MACvBI,mBAAmB,EAAE,EAAE;MACvBC,oBAAoB,EAAE;IAC1B,CAAC;IACDa,cAAc,EAAE;MACZ1B,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,CAAC;MACTO,eAAe,EAAEnB,cAAc,CAACoB,QAAQ,CAACkB,wBAAwB;MACjEC,YAAY,EAAE;IAClB,CAAC;IACDC,qBAAqB,EAAE;MACnBC,IAAI,EAAE,CAAC;MACPV,SAAS,EAAE,MAAM,CAAE;IACvB,CAAC;IACDW,kBAAkB,EAAE;MAChBC,iBAAiB,EAAE,EAAE;MACrBC,aAAa,EAAE,EAAE;MACjBC,QAAQ,EAAE;IACd,CAAC;IACDC,YAAY,EAAE;MACVvC,QAAQ,EAAE,UAAU;MACpBS,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACPC,KAAK,EAAE,CAAC;MACRV,MAAM,EAAE;IACZ,CAAC;IACDuC,eAAe,EAAE;MACblC,cAAc,EAAE,QAAQ;MACxBqB,UAAU,EAAE;IAChB,CAAC;IACDc,QAAQ,EAAE;MACV1C,IAAI,EAAE,CAEN;IACF;EACF,CAAC,CAAC;EAEFF,QAAQ,CAACH,aAAa,EAAE,EAAE,EAAEI,aAAa,CAAC;AAC9C,CAAC,CAAC","ignoreList":[]}