@wavemaker/app-rn-runtime 11.15.4-rc.647493 → 11.15.5-1.256
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/basic/bottomsheet/bottomsheet.component.js +25 -4
- package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
- package/components/input/currency/currency.component.js +4 -3
- package/components/input/currency/currency.component.js.map +1 -1
- package/components/input/currency/currency.props.js +1 -0
- package/components/input/currency/currency.props.js.map +1 -1
- package/components/input/epoch/base-datetime.component.js +3 -1
- package/components/input/epoch/base-datetime.component.js.map +1 -1
- package/components/input/epoch/datetime/datetime.props.js +1 -0
- package/components/input/epoch/datetime/datetime.props.js.map +1 -1
- package/components/input/number/number.component.js +4 -3
- package/components/input/number/number.component.js.map +1 -1
- package/components/input/number/number.props.js +1 -0
- package/components/input/number/number.props.js.map +1 -1
- package/components/input/select/select.component.js +1 -1
- package/components/input/select/select.component.js.map +1 -1
- package/components/input/text/text.component.js +54 -10
- package/components/input/text/text.component.js.map +1 -1
- package/components/input/text/text.props.js +5 -0
- package/components/input/text/text.props.js.map +1 -1
- package/components/input/text/text.styles.js +31 -6
- package/components/input/text/text.styles.js.map +1 -1
- package/components/input/textarea/textarea.component.js +4 -3
- package/components/input/textarea/textarea.component.js.map +1 -1
- package/components/input/textarea/textarea.props.js +1 -0
- package/components/input/textarea/textarea.props.js.map +1 -1
- package/core/components/floatinglabel.component.js +59 -12
- package/core/components/floatinglabel.component.js.map +1 -1
- package/core/components/textinput.component.js +6 -20
- package/core/components/textinput.component.js.map +1 -1
- package/npm-shrinkwrap.json +2376 -2320
- package/package-lock.json +2376 -2320
- package/package.json +5 -2
- package/styles/theme.js +7 -0
- package/styles/theme.js.map +1 -1
|
@@ -7,6 +7,7 @@ import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/cor
|
|
|
7
7
|
import { View, PanResponder, Dimensions, TouchableWithoutFeedback, Platform, StatusBar, BackHandler, KeyboardAvoidingView, Keyboard, Modal, Pressable } from 'react-native';
|
|
8
8
|
import { ScrollView } from 'react-native-gesture-handler';
|
|
9
9
|
import Animated, { useAnimatedStyle, withTiming, runOnJS, Easing, makeMutable, cancelAnimation } from 'react-native-reanimated';
|
|
10
|
+
import * as Animatable from 'react-native-animatable';
|
|
10
11
|
import WmBottomsheetProps from './bottomsheet.props';
|
|
11
12
|
import { DEFAULT_CLASS } from './bottomsheet.styles';
|
|
12
13
|
import { createSkeleton } from '../skeleton/skeleton.component';
|
|
@@ -57,6 +58,8 @@ export class WmBottomsheetState extends BaseComponentState {
|
|
|
57
58
|
_defineProperty(this, "keyboardHeight", 0);
|
|
58
59
|
_defineProperty(this, "localModalsOpened", []);
|
|
59
60
|
_defineProperty(this, "lastGestureDy", 0);
|
|
61
|
+
_defineProperty(this, "contentAnimationId", 0);
|
|
62
|
+
_defineProperty(this, "contentAnimatableProps", undefined);
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
65
|
|
|
@@ -146,6 +149,12 @@ export default class WmBottomsheet extends BaseComponent {
|
|
|
146
149
|
this.closeSheet();
|
|
147
150
|
}
|
|
148
151
|
}
|
|
152
|
+
animate(props) {
|
|
153
|
+
this.updateState({
|
|
154
|
+
contentAnimationId: Date.now(),
|
|
155
|
+
contentAnimatableProps: props
|
|
156
|
+
});
|
|
157
|
+
}
|
|
149
158
|
constructor(_props) {
|
|
150
159
|
super(_props, DEFAULT_CLASS, new WmBottomsheetProps(), new WmBottomsheetState());
|
|
151
160
|
_defineProperty(this, "calculatedHeight", void 0);
|
|
@@ -483,7 +492,9 @@ export default class WmBottomsheet extends BaseComponent {
|
|
|
483
492
|
}
|
|
484
493
|
this.updateState({
|
|
485
494
|
isExpanded: false,
|
|
486
|
-
localModalsOpened: []
|
|
495
|
+
localModalsOpened: [],
|
|
496
|
+
contentAnimationId: 0,
|
|
497
|
+
contentAnimatableProps: undefined
|
|
487
498
|
});
|
|
488
499
|
this.handleClose();
|
|
489
500
|
};
|
|
@@ -513,7 +524,9 @@ export default class WmBottomsheet extends BaseComponent {
|
|
|
513
524
|
lastGestureDy: 0,
|
|
514
525
|
isExpanded: false,
|
|
515
526
|
isBottomsheetVisible: false,
|
|
516
|
-
localModalsOpened: []
|
|
527
|
+
localModalsOpened: [],
|
|
528
|
+
contentAnimationId: 0,
|
|
529
|
+
contentAnimatableProps: undefined
|
|
517
530
|
});
|
|
518
531
|
requestAnimationFrame(() => {
|
|
519
532
|
if (this.sheetHeight) {
|
|
@@ -530,6 +543,14 @@ export default class WmBottomsheet extends BaseComponent {
|
|
|
530
543
|
_defineProperty(this, "handleDragHandlePress", () => {
|
|
531
544
|
this.invokeEventCallback('onDraghandleiconclick', [null, this]);
|
|
532
545
|
});
|
|
546
|
+
_defineProperty(this, "renderAnimatedSheetChildren", children => {
|
|
547
|
+
if (!this.state.contentAnimatableProps) {
|
|
548
|
+
return children;
|
|
549
|
+
}
|
|
550
|
+
return /*#__PURE__*/React.createElement(Animatable.View, _extends({
|
|
551
|
+
key: this.state.contentAnimationId
|
|
552
|
+
}, this.state.contentAnimatableProps), children);
|
|
553
|
+
});
|
|
533
554
|
_defineProperty(this, "renderContent", props => {
|
|
534
555
|
// Don't render if shared values aren't initialized yet
|
|
535
556
|
if (!this.translateY || !this.backdropOpacity || !this.sheetHeight || !this.lastGestureDyShared) {
|
|
@@ -581,9 +602,9 @@ export default class WmBottomsheet extends BaseComponent {
|
|
|
581
602
|
value: this.sheetModalService
|
|
582
603
|
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
583
604
|
style: contentStyle
|
|
584
|
-
}, props.children)) : /*#__PURE__*/React.createElement(Animated.View, {
|
|
605
|
+
}, this.renderAnimatedSheetChildren(props.children))) : /*#__PURE__*/React.createElement(Animated.View, {
|
|
585
606
|
style: contentStyle
|
|
586
|
-
}, props.children))), Platform.OS === 'android' && !this.props.modal && bottomInset > 40 && /*#__PURE__*/React.createElement(SafeAreaView, {
|
|
607
|
+
}, this.renderAnimatedSheetChildren(props.children)))), Platform.OS === 'android' && !this.props.modal && bottomInset > 40 && /*#__PURE__*/React.createElement(SafeAreaView, {
|
|
587
608
|
edges: ['bottom']
|
|
588
609
|
}), props.enablemodalsupport && this.state.localModalsOpened && this.state.localModalsOpened.map((o, i) => /*#__PURE__*/React.createElement(View, {
|
|
589
610
|
key: (o.name || '') + i,
|
|
@@ -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","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","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","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","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","edges","map","o","i","key","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","undefined","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 } 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 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}\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 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 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 } 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 } 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 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 {props.children}\n </Animated.View>\n </ModalProvider>\n ) : (\n <Animated.View style={contentStyle}>\n {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","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":[]}
|
|
@@ -51,7 +51,7 @@ export default class WmCurrency extends BaseNumberComponent {
|
|
|
51
51
|
}));
|
|
52
52
|
}
|
|
53
53
|
renderWidget(props) {
|
|
54
|
-
var _this$state$textValue, _this$theme$getStyle, _this$theme$getStyle2;
|
|
54
|
+
var _this$state$textValue, _this$theme$getStyle, _this$theme$getStyle2, _this$styles$root;
|
|
55
55
|
let opts = {};
|
|
56
56
|
const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';
|
|
57
57
|
const foundationStyle = this.theme.getStyle('app-input');
|
|
@@ -88,8 +88,9 @@ export default class WmCurrency extends BaseNumberComponent {
|
|
|
88
88
|
}, opts, {
|
|
89
89
|
floatingLabel: props.floatinglabel,
|
|
90
90
|
floatingLabelStyle: this.styles.floatingLabel,
|
|
91
|
-
activeFloatingLabelStyle: this.theme.mergeStyle((_this$theme$getStyle = this.theme.getStyle('app-currency-with-label')) === null || _this$theme$getStyle === void 0 ? void 0 : _this$theme$getStyle.activeFloatingLabel, (_this$theme$getStyle2 = this.theme.getStyle(`${classname}`)) === null || _this$theme$getStyle2 === void 0 ? void 0 : _this$theme$getStyle2.focused
|
|
92
|
-
|
|
91
|
+
activeFloatingLabelStyle: this.theme.mergeStyle(this.styles.activeFloatingLabel, (_this$theme$getStyle = this.theme.getStyle('app-currency-with-label')) === null || _this$theme$getStyle === void 0 ? void 0 : _this$theme$getStyle.activeFloatingLabel, (_this$theme$getStyle2 = this.theme.getStyle(`${classname}`)) === null || _this$theme$getStyle2 === void 0 ? void 0 : _this$theme$getStyle2.focused),
|
|
92
|
+
variant: props.variant,
|
|
93
|
+
labelBackground: props.variant === 'outlined' ? (_this$styles$root = this.styles.root) === null || _this$styles$root === void 0 ? void 0 : _this$styles$root.backgroundColor : undefined,
|
|
93
94
|
editable: props.disabled || props.readonly ? false : true,
|
|
94
95
|
placeholder: props.placeholder,
|
|
95
96
|
background: this._background,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","Platform","WmCurrencyProps","CURRENCY_INFO","WMTextInput","DEFAULT_CLASS","BaseNumberComponent","BaseNumberState","isNull","AccessibilityWidgetType","getAccessibilityProps","countDecimalDigits","validateInputOnDevice","createSkeleton","WmCurrencyState","constructor","args","_defineProperty","WmCurrency","props","onPropertyChange","name","$new","$old","updateState","currencySymbol","symbol","getStyleClassName","classes","state","floatinglabel","push","join","renderTextSkeleton","createElement","Fragment","theme","styles","skeleton","root","renderWidget","_this$state$textValue","_this$theme$getStyle","_this$theme$getStyle2","opts","valueExpr","OS","foundationStyle","getStyle","classname","split","pop","textValue","toString","style","onLayout","event","handleLayout","_showSkeleton","skeletonLabelWrapper","labelWrapper","accessible","accessibilityLabel","skeletonLabel","label","importantForAccessibility","skeletonTextInputWrapper","flex","_extends","getTestPropsForInput","CURRENCY","ref","widgetRef","selectionStart","selectionEnd","cursor","keyboardType","placeholderTextColor","placeholderText","color","isInputFocused","mergeStyle","input","inputNoLeftRadius","text","isValid","invalid","focused","disabled","floatingLabel","floatingLabelStyle","activeFloatingLabelStyle","activeFloatingLabel","inactiveFloatingLabelStyle","inactiveFloatingLabel","editable","readonly","placeholder","background","_background","onBlur","bind","onFocus","onKeyPress","validateInputEntry","onSubmitEditing","onChangeText","isValidText","validText","decimalPlaces","decimalPlacesInNumber","restrictDecimalRegex","RegExp","updatedCurrencyText","replace","_this$widgetRef","setNativeProps","onChange","invokeChange","allowContentSelection","userSelect"],"sources":["currency.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, Platform, DimensionValue } from 'react-native';\n\nimport WmCurrencyProps from './currency.props';\nimport { CURRENCY_INFO } from '@wavemaker/app-rn-runtime/core/currency-constants';\nimport { WMTextInput } from '@wavemaker/app-rn-runtime/core/components/textinput.component';\nimport { DEFAULT_CLASS, WmCurrencyStyles } from './currency.styles';\nimport {\n BaseNumberComponent,\n BaseNumberState\n} from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.component';\nimport { isNull } from \"lodash\";\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';\nimport { countDecimalDigits, validateInputOnDevice } from '@wavemaker/app-rn-runtime/core/utils';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport class WmCurrencyState extends BaseNumberState<WmCurrencyProps> {\n currencySymbol: any;\n}\n\nexport default class WmCurrency extends BaseNumberComponent<WmCurrencyProps, WmCurrencyState, WmCurrencyStyles> {\n\n constructor(props: WmCurrencyProps) {\n super(props, DEFAULT_CLASS, new WmCurrencyProps(), new WmCurrencyState());\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case 'currency':\n if ($new) {\n this.updateState({\n currencySymbol: CURRENCY_INFO[$new].symbol,\n } as WmCurrencyState);\n }\n break;\n\n }\n }\n\n public getStyleClassName(): string | undefined {\n const classes = [];\n if (this.state.props.floatinglabel) {\n classes.push('app-currency-with-label');\n }\n classes.push(super.getStyleClassName());\n return classes.join(' ');\n }\n\n public renderTextSkeleton(props:any): React.ReactNode {\n return this.props.floatinglabel ? <>{createSkeleton(this.theme, {} as WmSkeletonStyles, {...props})}</>\n : <>{createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.skeleton.root,\n })}</>\n }\n\n renderWidget(props: WmCurrencyProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n const foundationStyle = this.theme.getStyle('app-input');\n const classname = this.state.props.classname ? this.state.props.classname.split(\" \").pop() : '';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return (<View style={this.styles.root} onLayout={(event) => this.handleLayout(event)}>\n <View style={ (this._showSkeleton && !this.props.floatinglabel) ? this.styles.skeletonLabelWrapper.root : this.styles.labelWrapper } accessible accessibilityLabel={this.state.currencySymbol}>\n {this._showSkeleton ? <>{this.renderTextSkeleton(this.styles.skeletonLabel.root)}</> :\n <Text style={this.styles.label} importantForAccessibility='no'>{this.state.currencySymbol}</Text>}\n </View>\n {this._showSkeleton ? <>{this.renderTextSkeleton(this.styles.skeletonTextInputWrapper.root)}</> :<View style={{flex: 1}}>\n <WMTextInput\n {...this.getTestPropsForInput()}\n {...getAccessibilityProps(AccessibilityWidgetType.CURRENCY, props)}\n ref={(ref: any) => {\n this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }\n }}\n keyboardType=\"numeric\"\n placeholderTextColor={this.styles.placeholderText.color as any}\n isInputFocused={ this.state.isInputFocused }\n style={[\n this.theme.mergeStyle(\n this.styles.input,\n // foundationStyle ? this.styles.root : null,\n foundationStyle?.root,\n this.styles.inputNoLeftRadius\n ),\n this.theme.mergeStyle(this.styles.text, foundationStyle?.text, this.theme.getStyle(`${classname}`)),\n this.state.isValid ? {} : this.theme.mergeStyle(this.styles.invalid, foundationStyle?.invalid),\n this.state.isInputFocused ? this.theme.mergeStyle(this.styles.focused, foundationStyle?.focused, this.theme.getStyle(`${classname}`).focused) : {},\n this.state.props.disabled ? this.theme.mergeStyle(this.styles.inputNoLeftRadius,foundationStyle?.disabled, this.theme.getStyle(`${classname}`).disabled) : {}\n ]}\n {...opts}\n floatingLabel={props.floatinglabel}\n floatingLabelStyle={this.styles.floatingLabel}\n activeFloatingLabelStyle={this.theme.mergeStyle(\n this.theme.getStyle('app-currency-with-label')?.activeFloatingLabel,\n this.theme.getStyle(`${classname}`)?.focused,\n this.styles.activeFloatingLabel ? this.styles.activeFloatingLabel : {}\n )}\n inactiveFloatingLabelStyle={this.styles.inactiveFloatingLabel}\n editable={props.disabled || props.readonly ? false : true}\n placeholder={props.placeholder}\n background={this._background}\n onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.validateInputEntry.bind(this)}\n onSubmitEditing={this.onSubmitEditing.bind(this)}\n onChangeText={(text) => {\n const {isValidText, validText} = validateInputOnDevice(text, \"currency\");\n const decimalPlaces = props.decimalPlaces;\n const decimalPlacesInNumber = countDecimalDigits(validText);\n const restrictDecimalRegex = new RegExp(`(\\\\.\\\\d{${decimalPlaces}})\\\\d*`);\n const updatedCurrencyText = validText.replace(restrictDecimalRegex, '$1');\n\n if (!isValidText || decimalPlaces < decimalPlacesInNumber) {\n (this.widgetRef as any)?.setNativeProps({ text: updatedCurrencyText });\n }\n\n this.onChangeText.bind(this)(updatedCurrencyText, 'currency');\n }}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n />\n </View> }\n </View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","View","Text","Platform","WmCurrencyProps","CURRENCY_INFO","WMTextInput","DEFAULT_CLASS","BaseNumberComponent","BaseNumberState","isNull","AccessibilityWidgetType","getAccessibilityProps","countDecimalDigits","validateInputOnDevice","createSkeleton","WmCurrencyState","constructor","args","_defineProperty","WmCurrency","props","onPropertyChange","name","$new","$old","updateState","currencySymbol","symbol","getStyleClassName","classes","state","floatinglabel","push","join","renderTextSkeleton","createElement","Fragment","theme","styles","skeleton","root","renderWidget","_this$state$textValue","_this$theme$getStyle","_this$theme$getStyle2","_this$styles$root","opts","valueExpr","OS","foundationStyle","getStyle","classname","split","pop","textValue","toString","style","onLayout","event","handleLayout","_showSkeleton","skeletonLabelWrapper","labelWrapper","accessible","accessibilityLabel","skeletonLabel","label","importantForAccessibility","skeletonTextInputWrapper","flex","_extends","getTestPropsForInput","CURRENCY","ref","widgetRef","selectionStart","selectionEnd","cursor","keyboardType","placeholderTextColor","placeholderText","color","isInputFocused","mergeStyle","input","inputNoLeftRadius","text","isValid","invalid","focused","disabled","floatingLabel","floatingLabelStyle","activeFloatingLabelStyle","activeFloatingLabel","variant","labelBackground","backgroundColor","undefined","editable","readonly","placeholder","background","_background","onBlur","bind","onFocus","onKeyPress","validateInputEntry","onSubmitEditing","onChangeText","isValidText","validText","decimalPlaces","decimalPlacesInNumber","restrictDecimalRegex","RegExp","updatedCurrencyText","replace","_this$widgetRef","setNativeProps","onChange","invokeChange","allowContentSelection","userSelect"],"sources":["currency.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, Platform, DimensionValue } from 'react-native';\n\nimport WmCurrencyProps from './currency.props';\nimport { CURRENCY_INFO } from '@wavemaker/app-rn-runtime/core/currency-constants';\nimport { WMTextInput } from '@wavemaker/app-rn-runtime/core/components/textinput.component';\nimport { DEFAULT_CLASS, WmCurrencyStyles } from './currency.styles';\nimport {\n BaseNumberComponent,\n BaseNumberState\n} from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.component';\nimport { isNull } from \"lodash\";\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/app-rn-runtime/core/accessibility';\nimport { countDecimalDigits, validateInputOnDevice } from '@wavemaker/app-rn-runtime/core/utils';\nimport { createSkeleton } from '@wavemaker/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '../../basic/skeleton/skeleton.styles';\n\nexport class WmCurrencyState extends BaseNumberState<WmCurrencyProps> {\n currencySymbol: any;\n}\n\nexport default class WmCurrency extends BaseNumberComponent<WmCurrencyProps, WmCurrencyState, WmCurrencyStyles> {\n\n constructor(props: WmCurrencyProps) {\n super(props, DEFAULT_CLASS, new WmCurrencyProps(), new WmCurrencyState());\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case 'currency':\n if ($new) {\n this.updateState({\n currencySymbol: CURRENCY_INFO[$new].symbol,\n } as WmCurrencyState);\n }\n break;\n\n }\n }\n\n public getStyleClassName(): string | undefined {\n const classes = [];\n if (this.state.props.floatinglabel) {\n classes.push('app-currency-with-label');\n }\n classes.push(super.getStyleClassName());\n return classes.join(' ');\n }\n\n public renderTextSkeleton(props:any): React.ReactNode {\n return this.props.floatinglabel ? <>{createSkeleton(this.theme, {} as WmSkeletonStyles, {...props})}</>\n : <>{createSkeleton(this.theme, {} as WmSkeletonStyles, {\n ...this.styles.skeleton.root,\n })}</>\n }\n\n renderWidget(props: WmCurrencyProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n const foundationStyle = this.theme.getStyle('app-input');\n const classname = this.state.props.classname ? this.state.props.classname.split(\" \").pop() : '';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return (<View style={this.styles.root} onLayout={(event) => this.handleLayout(event)}>\n <View style={ (this._showSkeleton && !this.props.floatinglabel) ? this.styles.skeletonLabelWrapper.root : this.styles.labelWrapper } accessible accessibilityLabel={this.state.currencySymbol}>\n {this._showSkeleton ? <>{this.renderTextSkeleton(this.styles.skeletonLabel.root)}</> :\n <Text style={this.styles.label} importantForAccessibility='no'>{this.state.currencySymbol}</Text>}\n </View>\n {this._showSkeleton ? <>{this.renderTextSkeleton(this.styles.skeletonTextInputWrapper.root)}</> :<View style={{flex: 1}}>\n <WMTextInput\n {...this.getTestPropsForInput()}\n {...getAccessibilityProps(AccessibilityWidgetType.CURRENCY, props)}\n ref={(ref: any) => {\n this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }\n }}\n keyboardType=\"numeric\"\n placeholderTextColor={this.styles.placeholderText.color as any}\n isInputFocused={ this.state.isInputFocused }\n style={[\n this.theme.mergeStyle(\n this.styles.input,\n // foundationStyle ? this.styles.root : null,\n foundationStyle?.root,\n this.styles.inputNoLeftRadius\n ),\n this.theme.mergeStyle(this.styles.text, foundationStyle?.text, this.theme.getStyle(`${classname}`)),\n this.state.isValid ? {} : this.theme.mergeStyle(this.styles.invalid, foundationStyle?.invalid),\n this.state.isInputFocused ? this.theme.mergeStyle(this.styles.focused, foundationStyle?.focused, this.theme.getStyle(`${classname}`).focused) : {},\n this.state.props.disabled ? this.theme.mergeStyle(this.styles.inputNoLeftRadius,foundationStyle?.disabled, this.theme.getStyle(`${classname}`).disabled) : {}\n ]}\n {...opts}\n floatingLabel={props.floatinglabel}\n floatingLabelStyle={this.styles.floatingLabel}\n activeFloatingLabelStyle={this.theme.mergeStyle(this.styles.activeFloatingLabel,\n this.theme.getStyle('app-currency-with-label')?.activeFloatingLabel, \n this.theme.getStyle(`${classname}`)?.focused)}\n variant={props.variant as 'filled' | 'outlined' | undefined}\n labelBackground={props.variant === 'outlined' ? (this.styles.root?.backgroundColor as string) : undefined}\n editable={props.disabled || props.readonly ? false : true}\n placeholder={props.placeholder}\n background={this._background}\n onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.validateInputEntry.bind(this)}\n onSubmitEditing={this.onSubmitEditing.bind(this)}\n onChangeText={(text) => {\n const {isValidText, validText} = validateInputOnDevice(text, \"currency\");\n const decimalPlaces = props.decimalPlaces;\n const decimalPlacesInNumber = countDecimalDigits(validText);\n const restrictDecimalRegex = new RegExp(`(\\\\.\\\\d{${decimalPlaces}})\\\\d*`);\n const updatedCurrencyText = validText.replace(restrictDecimalRegex, '$1');\n\n if (!isValidText || decimalPlaces < decimalPlacesInNumber) {\n (this.widgetRef as any)?.setNativeProps({ text: updatedCurrencyText });\n }\n\n this.onChangeText.bind(this)(updatedCurrencyText, 'currency');\n }}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n />\n </View> }\n </View>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ export default class WmCurrencyProps extends BaseNumberProps {
|
|
|
8
8
|
_defineProperty(this, "currency", void 0);
|
|
9
9
|
_defineProperty(this, "placeholder", '');
|
|
10
10
|
_defineProperty(this, "floatinglabel", void 0);
|
|
11
|
+
_defineProperty(this, "variant", void 0);
|
|
11
12
|
}
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=currency.props.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseNumberProps","WmCurrencyProps","constructor","args","_defineProperty"],"sources":["currency.props.ts"],"sourcesContent":["import BaseNumberProps from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.props';\n\nexport default class WmCurrencyProps extends BaseNumberProps {\n currency: any;\n placeholder: string = '';\n floatinglabel?: string;\n}\n"],"mappings":";;;AAAA,OAAOA,eAAe,MAAM,wEAAwE;AAEpG,eAAe,MAAMC,eAAe,SAASD,eAAe,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA;IAAAA,eAAA,sBAErC,EAAE;IAAAA,eAAA;EAAA;
|
|
1
|
+
{"version":3,"names":["BaseNumberProps","WmCurrencyProps","constructor","args","_defineProperty"],"sources":["currency.props.ts"],"sourcesContent":["import BaseNumberProps from '@wavemaker/app-rn-runtime/components/input/basenumber/basenumber.props';\n\nexport default class WmCurrencyProps extends BaseNumberProps {\n currency: any;\n placeholder: string = '';\n floatinglabel?: string;\n variant?: string;\n}\n"],"mappings":";;;AAAA,OAAOA,eAAe,MAAM,wEAAwE;AAEpG,eAAe,MAAMC,eAAe,SAASD,eAAe,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA;IAAAA,eAAA,sBAErC,EAAE;IAAAA,eAAA;IAAAA,eAAA;EAAA;AAG1B","ignoreList":[]}
|
|
@@ -370,7 +370,7 @@ export default class BaseDatetime extends BaseComponent {
|
|
|
370
370
|
})) : null;
|
|
371
371
|
}
|
|
372
372
|
renderWidget(props) {
|
|
373
|
-
var _this$theme$getStyle, _this$theme$getStyle2, _props$floatinglabel;
|
|
373
|
+
var _this$theme$getStyle, _this$theme$getStyle2, _props$floatinglabel, _this$styles$root;
|
|
374
374
|
const is12HourFormat = (props === null || props === void 0 ? void 0 : props.datepattern) && /hh:mm(:ss|:sss)? a/.test(props.datepattern);
|
|
375
375
|
const is24Hour = is12HourFormat ? false : props.is24hour;
|
|
376
376
|
let rootStyles = this.styles.root;
|
|
@@ -388,6 +388,8 @@ export default class BaseDatetime extends BaseComponent {
|
|
|
388
388
|
}, this._background, props.floatinglabel ? /*#__PURE__*/React.createElement(FloatingLabel, {
|
|
389
389
|
moveUp: !!(props.datavalue || this.state.isFocused),
|
|
390
390
|
label: (_props$floatinglabel = props.floatinglabel) !== null && _props$floatinglabel !== void 0 ? _props$floatinglabel : props.placeholder,
|
|
391
|
+
variant: props.variant,
|
|
392
|
+
labelBackground: props.variant === 'outlined' ? (_this$styles$root = this.styles.root) === null || _this$styles$root === void 0 ? void 0 : _this$styles$root.backgroundColor : undefined,
|
|
391
393
|
style: {
|
|
392
394
|
...(this.styles.floatingLabel || []),
|
|
393
395
|
...(this.state.isFocused ? activeFloatingLabelStyle || {} : {})
|