@wavemaker/app-rn-runtime 11.14.1-31.647762 → 11.14.1-33.647787

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 (31) hide show
  1. package/components/basic/bottomsheet/bottomsheet.component.js +1 -1
  2. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  3. package/components/data/form/form-field/form-field.component.js +5 -0
  4. package/components/data/form/form-field/form-field.component.js.map +1 -1
  5. package/components/data/list/list.component.js +5 -2
  6. package/components/data/list/list.component.js.map +1 -1
  7. package/components/dialogs/dialog/dialog.component.js +1 -1
  8. package/components/dialogs/dialog/dialog.component.js.map +1 -1
  9. package/components/page/page-content/page-content.component.js +141 -13
  10. package/components/page/page-content/page-content.component.js.map +1 -1
  11. package/components/page/page-content/page-content.props.js +2 -0
  12. package/components/page/page-content/page-content.props.js.map +1 -1
  13. package/components/page/page-content/pull-to-refresh.component.js +288 -0
  14. package/components/page/page-content/pull-to-refresh.component.js.map +1 -0
  15. package/core/AppConfig.js.map +1 -1
  16. package/core/base.component.js +14 -0
  17. package/core/base.component.js.map +1 -1
  18. package/core/sticky-wrapper.js +37 -34
  19. package/core/sticky-wrapper.js.map +1 -1
  20. package/npm-shrinkwrap.json +224 -180
  21. package/package-lock.json +224 -180
  22. package/package.json +3 -2
  23. package/runtime/base-fragment.component.js +1 -0
  24. package/runtime/base-fragment.component.js.map +1 -1
  25. package/styles/background.component.js +61 -2
  26. package/styles/background.component.js.map +1 -1
  27. package/styles/style-prop.validator.js +4 -0
  28. package/styles/style-prop.validator.js.map +1 -1
  29. package/styles/style-props.js +2 -0
  30. package/styles/style-props.js.map +1 -1
  31. package/styles/theme.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","createRef","KeyboardAvoidingView","PanResponder","Platform","View","isWebPreviewMode","HideMode","BaseComponent","BaseComponentState","WmPageContentProps","DEFAULT_CLASS","WmLottie","SafeAreaInsetsContext","Animated","StickyWrapperContext","isNumber","WmPageContentState","constructor","args","_defineProperty","WmPageContent","props","dx","invokeEventCallback","proxy","create","onMoveShouldSetPanResponder","e","gestureState","onSwipeleft","onSwiperight","Math","abs","dy","onPanResponderRelease","handleHorizontalSwipeEnd","event","context","_event$nativeEvent","onScrollEndDrag","scrollDirection","scrollPosition","nativeEvent","contentOffset","y","value","scrollRef","requestAnimationFrame","notify","hideMode","DONOT_ADD_TO_DOM","state","navHeightForRender","bottomTabHeightForRender","subscribe","scrollTo","_this$scrollRef","current","scrollToEnd","componentDidMount","_unsubscribeNavHeight","navHeightValue","setState","navHeight","bottomTabHeightValue","bottomTabHeight","componentWillUnmount","position","_this$scrollRef2","x","animated","renderSkeleton","skeletonanimationresource","createElement","style","width","styles","root","content","skeleton","source","loop","autoplay","speed","skeletonanimationspeed","renderWidget","showScrollbar","scrollbarColor","borderRadiusStyles","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","scrollable","_extends","height","backgroundColor","_showSkeleton","horizontalSwipeResponder","panHandlers","_background","Consumer","insets","top","bottom","left","right","_this$styles","_this$styles2","_this$styles3","_this$styles4","keyboardOffset","consumenotch","verticalOffset","OS","keyboardverticaloffset","paddingTop","padding","paddingBottom","paddingTopVal","paddingBottomVal","navHeightVal","onscroll","bottomTabHeightVal","behavior","undefined","keyboardVerticalOffset","flex","ScrollView","keyboardShouldPersistTaps","keyboardpersisttaps","testID","getTestId","ref","contentContainerStyle","onLayout","handleScrollViewLayout","showsVerticalScrollIndicator","onScroll","alwaysBounceVertical","alwaysBounceHorizontal","bounces","overScrollMode","removeClippedSubviews","handleOnScrollEndDrag","children"],"sources":["page-content.component.tsx"],"sourcesContent":["import React, { createRef, RefObject, useEffect, useState } from 'react';\nimport { KeyboardAvoidingView, PanResponder, Platform, View } from 'react-native';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { HideMode } from '@wavemaker/app-rn-runtime/core/if.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmPageContentProps from './page-content.props';\nimport { DEFAULT_CLASS, WmPageContentStyles } from './page-content.styles';\nimport WmLottie from '@wavemaker/app-rn-runtime/components/basic/lottie/lottie.component';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport Animated from 'react-native-reanimated';\nimport { StickyWrapperContextType, StickyWrapperContext } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { isNumber } from 'lodash-es';\n\nexport class WmPageContentState extends BaseComponentState<WmPageContentProps> {\n navHeightForRender = 0;\n bottomTabHeightForRender = 0;\n}\nexport default class WmPageContent extends BaseComponent<WmPageContentProps, WmPageContentState, WmPageContentStyles> {\n private scrollRef: RefObject<any>;\n static contextType = StickyWrapperContext;\n private _unsubscribeNavHeight : any;\n\n private handleHorizontalSwipeEnd = (dx: number) => {\n if (dx <= -50) {\n this.invokeEventCallback('onSwipeleft', [null, this.proxy]);\n } else if (dx >= 50) {\n this.invokeEventCallback('onSwiperight', [null, this.proxy]);\n }\n };\n\n private horizontalSwipeResponder = PanResponder.create({\n onMoveShouldSetPanResponder: (e, gestureState) =>\n !!(this.props.onSwipeleft || this.props.onSwiperight) &&\n Math.abs(gestureState.dx) > Math.abs(gestureState.dy) && Math.abs(gestureState.dx) > 30,\n onPanResponderRelease: (e, gestureState) => this.handleHorizontalSwipeEnd(gestureState.dx)\n });\n\n constructor(props: WmPageContentProps) {\n super(props, DEFAULT_CLASS, new WmPageContentProps());\n this.hideMode = HideMode.DONOT_ADD_TO_DOM;\n this.scrollRef = createRef();\n \n this.state = {\n ...this.state,\n navHeightForRender: 0,\n bottomTabHeightForRender: 0,\n };\n\n this.subscribe('scrollToPosition', (args: any) => {\n this.scrollTo(args);\n });\n\n this.subscribe('scrollToEnd', () => {\n this.scrollRef?.current?.scrollToEnd();\n });\n }\n\n componentDidMount() {\n super.componentDidMount();\n this._unsubscribeNavHeight = this.subscribe('updateNavHeight', (navHeightValue: number) => {\n if (this.state.navHeightForRender !== navHeightValue) {\n this.setState({ navHeightForRender: navHeightValue });\n }\n return null;\n });\n if (this.context && (this.context as StickyWrapperContextType).navHeight) {\n this.setState({ navHeightForRender: (this.context as StickyWrapperContextType).navHeight.value });\n }\n\n this._unsubscribeNavHeight = this.subscribe('updateBottomTabHeight', (bottomTabHeightValue: number) => {\n if (this.state.bottomTabHeightForRender !== bottomTabHeightValue) {\n this.setState({ bottomTabHeightForRender: bottomTabHeightValue });\n }\n return null;\n });\n if (this.context && (this.context as StickyWrapperContextType).bottomTabHeight) {\n this.setState({ bottomTabHeightForRender: (this.context as StickyWrapperContextType).bottomTabHeight.value });\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n if (this._unsubscribeNavHeight) this._unsubscribeNavHeight();\n }\n\n public scrollTo(position: {x: number, y: number}){\n this.scrollRef?.current?.scrollTo({\n x: position.x,\n y: position.y,\n animated: true\n });\n }\n\n private handleOnScrollEndDrag = (event: any) => {\n if(this.context) {\n const { onScrollEndDrag, scrollDirection } = this.context as StickyWrapperContextType;\n const scrollPosition = event?.nativeEvent?.contentOffset?.y;\n if (scrollPosition >= 0) {\n if(scrollDirection.value > 0) {\n this.invokeEventCallback('onSwipeup', [null, this.proxy]);\n }else {\n this.invokeEventCallback('onSwipedown', [null, this.proxy]);\n }\n onScrollEndDrag(this.scrollRef);\n }\n }\n }\n\n public renderSkeleton(props: WmPageContentProps): React.ReactNode {\n if(this.props.skeletonanimationresource) {\n return <View style={[{width: '100%'}, this.styles.root]}>\n <WmLottie styles={{ content: {...this.styles.root, ...this.styles.skeleton.root} }} source={this.props.skeletonanimationresource} loop={true} autoplay={true} speed={this.props.skeletonanimationspeed}/>\n </View>\n } \n return null;\n }\n\n private handleScrollViewLayout = () => {\n requestAnimationFrame(() => {\n this.notify('updateStickyHeaders', []);\n });\n }\n\n renderWidget(props: WmPageContentProps) {\n const showScrollbar = (this.styles.root as any).scrollbarColor != 'transparent';\n const borderRadiusStyles = {\n borderRadius: this.styles.root.borderRadius,\n borderTopLeftRadius: this.styles.root.borderTopLeftRadius,\n borderTopRightRadius: this.styles.root.borderTopRightRadius,\n borderBottomLeftRadius: this.styles.root.borderBottomLeftRadius,\n borderBottomRightRadius: this.styles.root.borderBottomRightRadius,\n };\n return (props.scrollable || isWebPreviewMode()) ? (\n <View style={{height: '100%', width: '100%',\n ...borderRadiusStyles,\n backgroundColor: this._showSkeleton && this.styles.skeleton.root.backgroundColor ? this.styles.skeleton.root.backgroundColor : this.styles.root.backgroundColor\n\n }}\n {...this.horizontalSwipeResponder.panHandlers}>\n {this._background}\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = props.consumenotch ? (insets?.bottom || 0) : 0;\n const verticalOffset = Platform.OS === 'ios' ? keyboardOffset + props.keyboardverticaloffset : keyboardOffset;\n const paddingTop = this.styles?.root?.paddingTop || this.styles?.root?.padding;\n const paddingBottom = this.styles?.root?.paddingBottom || this.styles?.root?.padding;\n const paddingTopVal = isNumber(paddingTop) ? paddingTop : 0;\n const paddingBottomVal = isNumber(paddingBottom) ? paddingBottom : 0;\n const navHeightVal = (this.props.onscroll == 'topnav' || this.props.onscroll == 'topnav-bottomnav') ? this.state.navHeightForRender : 0;\n const bottomTabHeightVal = this.props.onscroll == 'topnav-bottomnav' ? this.state.bottomTabHeightForRender : 0;\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : undefined}\n keyboardVerticalOffset={verticalOffset}\n style={{ flex: 1 }}>\n <Animated.ScrollView\n keyboardShouldPersistTaps={props.keyboardpersisttaps}\n testID={this.getTestId(\"page_content_scrollview\")}\n ref={this.scrollRef}\n contentContainerStyle={[\n this.styles.root, {backgroundColor: 'transparent', \n paddingTop: navHeightVal + paddingTopVal, \n paddingBottom: bottomTabHeightVal + paddingBottomVal\n }\n ]}\n onLayout={this.handleScrollViewLayout}\n showsVerticalScrollIndicator={showScrollbar}\n onScroll={this.context && (this.context as StickyWrapperContextType).onScroll ? \n (this.context as StickyWrapperContextType).onScroll \n : ()=>{}\n }\n alwaysBounceVertical={false}\n alwaysBounceHorizontal={false}\n bounces={false}\n overScrollMode=\"never\"\n removeClippedSubviews={Platform.OS == 'android'}\n onScrollEndDrag={this.handleOnScrollEndDrag}\n >\n {props.children}\n </Animated.ScrollView>\n </KeyboardAvoidingView>\n )\n }}\n </SafeAreaInsetsContext.Consumer>\n </View> \n ) : (\n <View style={[this.styles.root,\n {backgroundColor: this._showSkeleton ?\n this.styles.skeleton.root.backgroundColor :\n this.styles.root.backgroundColor}]}\n {...this.horizontalSwipeResponder.panHandlers}>\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = props.consumenotch ? (insets?.bottom || 0) : 0;\n const verticalOffset = Platform.OS === 'ios' ? keyboardOffset + props.keyboardverticaloffset : keyboardOffset;\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : undefined}\n keyboardVerticalOffset={verticalOffset}\n style={{ flex: 1 }}>\n {this._background}\n {props.children}\n </KeyboardAvoidingView>\n )}}\n </SafeAreaInsetsContext.Consumer>\n </View>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createRef","KeyboardAvoidingView","Platform","View","RefreshControl","PanResponder","isWebPreviewMode","HideMode","BaseComponent","BaseComponentState","WmPageContentProps","DEFAULT_CLASS","WmLottie","SafeAreaInsetsContext","Animated","StickyWrapperContext","isNumber","injector","WmPullToRefreshView","WmPullToRefreshScrollView","getSpinnerAspectRatio","WmPageContentState","constructor","args","_defineProperty","WmPageContent","props","dx","invokeEventCallback","proxy","create","onMoveShouldSetPanResponder","e","gestureState","onSwipeleft","onSwiperight","Math","abs","dy","onPanResponderRelease","handleHorizontalSwipeEnd","event","context","_event$nativeEvent","onScrollEndDrag","scrollDirection","scrollPosition","nativeEvent","contentOffset","y","value","scrollRef","isRefreshing","setState","refreshing","MIN_DURATION","start","Date","now","result","updateState","Promise","resolve","catch","console","error","finally","wait","max","_refreshTimeout","setTimeout","requestAnimationFrame","notify","hideMode","DONOT_ADD_TO_DOM","state","navHeightForRender","bottomTabHeightForRender","subscribe","scrollTo","_this$scrollRef","current","scrollToEnd","componentDidMount","_unsubscribeNavHeight","navHeightValue","navHeight","bottomTabHeightValue","bottomTabHeight","pulltorefresh","pulltorefreshsource","loadAsset","then","ratio","spinnerAspectRatio","componentWillUnmount","clearTimeout","position","_this$scrollRef2","x","animated","renderSkeleton","skeletonanimationresource","createElement","style","width","styles","root","content","skeleton","source","loop","autoplay","speed","skeletonanimationspeed","_injector$get","get","pulltorefreshclass","_injector$get2","renderWidget","showScrollbar","scrollbarColor","borderRadiusStyles","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","scrollable","_extends","height","backgroundColor","_showSkeleton","horizontalSwipeResponder","panHandlers","_background","Consumer","insets","top","bottom","left","right","_this$styles","_this$styles2","_this$styles3","_this$styles4","keyboardOffset","consumenotch","verticalOffset","OS","keyboardverticaloffset","paddingTop","padding","paddingBottom","paddingTopVal","paddingBottomVal","navHeightVal","onscroll","bottomTabHeightVal","scrollViewProps","keyboardShouldPersistTaps","keyboardpersisttaps","testID","getTestId","contentContainerStyle","onLayout","handleScrollViewLayout","showsVerticalScrollIndicator","alwaysBounceVertical","alwaysBounceHorizontal","bounces","overScrollMode","removeClippedSubviews","handleOnScrollEndDrag","onScroll","withKeyboardAvoidingView","behavior","undefined","keyboardVerticalOffset","flex","ScrollView","ref","children","refreshScrollViewProps","useLottieSpinner","isIOS","contentInset","refreshControl","onRefresh","handleRefresh","progressViewOffset","lottieScrollViewProps","topOffset","spinner","show","classname","_this$context","stickyOnScrollWorklet","onScrollWorklet","flexDirection"],"sources":["page-content.component.tsx"],"sourcesContent":["import React, { createRef, RefObject, useEffect, useState } from 'react';\nimport { KeyboardAvoidingView, Platform, View, RefreshControl, PanResponder } from 'react-native';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { HideMode } from '@wavemaker/app-rn-runtime/core/if.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmPageContentProps from './page-content.props';\nimport { DEFAULT_CLASS, WmPageContentStyles } from './page-content.styles';\nimport WmLottie from '@wavemaker/app-rn-runtime/components/basic/lottie/lottie.component';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport Animated from 'react-native-reanimated';\nimport { StickyWrapperContextType, StickyWrapperContext } from '@wavemaker/app-rn-runtime/core/sticky-wrapper';\nimport { isNumber } from 'lodash-es';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { WmPullToRefreshView, WmPullToRefreshScrollView, getSpinnerAspectRatio } from './pull-to-refresh.component';\n\nexport class WmPageContentState extends BaseComponentState<WmPageContentProps> {\n navHeightForRender = 0;\n bottomTabHeightForRender = 0;\n refreshing = false;\n spinnerAspectRatio?: number;\n}\nexport default class WmPageContent extends BaseComponent<WmPageContentProps, WmPageContentState, WmPageContentStyles> {\n private scrollRef: RefObject<any>;\n static contextType = StickyWrapperContext;\n private _unsubscribeNavHeight : any;\n private _refreshTimeout: any;\n private isRefreshing = false;\n\n private handleHorizontalSwipeEnd = (dx: number) => {\n if (dx <= -50) {\n this.invokeEventCallback('onSwipeleft', [null, this.proxy]);\n } else if (dx >= 50) {\n this.invokeEventCallback('onSwiperight', [null, this.proxy]);\n }\n };\n\n private horizontalSwipeResponder = PanResponder.create({\n onMoveShouldSetPanResponder: (e, gestureState) =>\n !!(this.props.onSwipeleft || this.props.onSwiperight) &&\n Math.abs(gestureState.dx) > Math.abs(gestureState.dy) && Math.abs(gestureState.dx) > 30,\n onPanResponderRelease: (e, gestureState) => this.handleHorizontalSwipeEnd(gestureState.dx)\n });\n\n constructor(props: WmPageContentProps) {\n super(props, DEFAULT_CLASS, new WmPageContentProps());\n this.hideMode = HideMode.DONOT_ADD_TO_DOM;\n this.scrollRef = createRef();\n \n this.state = {\n ...this.state,\n navHeightForRender: 0,\n bottomTabHeightForRender: 0,\n refreshing: false,\n };\n\n this.subscribe('scrollToPosition', (args: any) => {\n this.scrollTo(args);\n });\n\n this.subscribe('scrollToEnd', () => {\n this.scrollRef?.current?.scrollToEnd();\n });\n }\n\n componentDidMount() {\n super.componentDidMount();\n this._unsubscribeNavHeight = this.subscribe('updateNavHeight', (navHeightValue: number) => {\n if (this.state.navHeightForRender !== navHeightValue) {\n this.setState({ navHeightForRender: navHeightValue });\n }\n return null;\n });\n if (this.context && (this.context as StickyWrapperContextType).navHeight) {\n this.setState({ navHeightForRender: (this.context as StickyWrapperContextType).navHeight.value });\n }\n\n this._unsubscribeNavHeight = this.subscribe('updateBottomTabHeight', (bottomTabHeightValue: number) => {\n if (this.state.bottomTabHeightForRender !== bottomTabHeightValue) {\n this.setState({ bottomTabHeightForRender: bottomTabHeightValue });\n }\n return null;\n });\n if (this.context && (this.context as StickyWrapperContextType).bottomTabHeight) {\n this.setState({ bottomTabHeightForRender: (this.context as StickyWrapperContextType).bottomTabHeight.value });\n }\n\n if (this.state.props.pulltorefresh && this.pulltorefreshsource) {\n getSpinnerAspectRatio(this.loadAsset, this.pulltorefreshsource)\n .then((ratio) => ratio && this.updateState({ spinnerAspectRatio: ratio } as WmPageContentState));\n }\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n if (this._unsubscribeNavHeight) this._unsubscribeNavHeight();\n if (this._refreshTimeout) clearTimeout(this._refreshTimeout);\n }\n\n public scrollTo(position: {x: number, y: number}){\n this.scrollRef?.current?.scrollTo({\n x: position.x,\n y: position.y,\n animated: true\n });\n }\n\n private handleOnScrollEndDrag = (event: any) => {\n if(this.context) {\n const { onScrollEndDrag, scrollDirection } = this.context as StickyWrapperContextType;\n const scrollPosition = event?.nativeEvent?.contentOffset?.y;\n if (scrollPosition >= 0) {\n if(scrollDirection.value > 0) {\n this.invokeEventCallback('onSwipeup', [null, this.proxy]);\n }else {\n this.invokeEventCallback('onSwipedown', [null, this.proxy]);\n }\n onScrollEndDrag(this.scrollRef);\n }\n }\n }\n\n public renderSkeleton(props: WmPageContentProps): React.ReactNode {\n if(this.props.skeletonanimationresource) {\n return <View style={[{width: '100%'}, this.styles.root]}>\n <WmLottie styles={{ content: {...this.styles.root, ...this.styles.skeleton.root} }} source={this.props.skeletonanimationresource} loop={true} autoplay={true} speed={this.props.skeletonanimationspeed}/>\n </View>\n } \n return null;\n }\n\n private handleRefresh = () => {\n if (this.isRefreshing) return;\n this.isRefreshing = true;\n this.setState({ refreshing: true });\n const MIN_DURATION = 500;\n const start = Date.now();\n let result;\n try {\n result = this.invokeEventCallback('onPulltorefresh', [null, this.proxy]);\n } catch (e) {\n this.isRefreshing = false;\n this.updateState({ refreshing: false } as WmPageContentState);\n throw e;\n }\n Promise.resolve(result)\n .catch((e) => console.error(e))\n .finally(() => {\n const wait = Math.max(0, MIN_DURATION - (Date.now() - start));\n this._refreshTimeout = setTimeout(() => {\n this.isRefreshing = false;\n this.updateState({ refreshing: false } as WmPageContentState);\n }, wait);\n });\n }\n\n private handleScrollViewLayout = () => {\n requestAnimationFrame(() => {\n this.notify('updateStickyHeaders', []);\n });\n }\n\n private get pulltorefreshsource(): string {\n return injector.get<AppConfig>('APP_CONFIG')?.pulltorefreshsource;\n }\n\n private get pulltorefreshclass(): string {\n return injector.get<AppConfig>('APP_CONFIG')?.pulltorefreshclass || '';\n }\n\n renderWidget(props: WmPageContentProps) {\n const showScrollbar = (this.styles.root as any).scrollbarColor != 'transparent';\n const borderRadiusStyles = {\n borderRadius: this.styles.root.borderRadius,\n borderTopLeftRadius: this.styles.root.borderTopLeftRadius,\n borderTopRightRadius: this.styles.root.borderTopRightRadius,\n borderBottomLeftRadius: this.styles.root.borderBottomLeftRadius,\n borderBottomRightRadius: this.styles.root.borderBottomRightRadius,\n };\n return (props.scrollable || isWebPreviewMode()) ? (\n <View style={{height: '100%', width: '100%',\n ...borderRadiusStyles,\n backgroundColor: this._showSkeleton && this.styles.skeleton.root.backgroundColor ? this.styles.skeleton.root.backgroundColor : this.styles.root.backgroundColor\n\n }}\n {...this.horizontalSwipeResponder.panHandlers}>\n {this._background}\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = props.consumenotch ? (insets?.bottom || 0) : 0;\n const verticalOffset = Platform.OS === 'ios' ? keyboardOffset + props.keyboardverticaloffset : keyboardOffset;\n const paddingTop = this.styles?.root?.paddingTop || this.styles?.root?.padding;\n const paddingBottom = this.styles?.root?.paddingBottom || this.styles?.root?.padding;\n const paddingTopVal = isNumber(paddingTop) ? paddingTop : 0;\n const paddingBottomVal = isNumber(paddingBottom) ? paddingBottom : 0;\n const navHeightVal = (this.props.onscroll == 'topnav' || this.props.onscroll == 'topnav-bottomnav') ? this.state.navHeightForRender : 0;\n const bottomTabHeightVal = this.props.onscroll == 'topnav-bottomnav' ? this.state.bottomTabHeightForRender : 0;\n const scrollViewProps = {\n keyboardShouldPersistTaps: props.keyboardpersisttaps,\n testID: this.getTestId(\"page_content_scrollview\"),\n contentContainerStyle: [\n this.styles.root, {backgroundColor: 'transparent',\n paddingTop: navHeightVal + paddingTopVal,\n paddingBottom: bottomTabHeightVal + paddingBottomVal\n }\n ],\n onLayout: this.handleScrollViewLayout,\n showsVerticalScrollIndicator: showScrollbar,\n alwaysBounceVertical: false,\n alwaysBounceHorizontal: false,\n bounces: false,\n overScrollMode: 'never' as 'auto' | 'never',\n removeClippedSubviews: Platform.OS == 'android',\n onScrollEndDrag: this.handleOnScrollEndDrag,\n };\n const onScroll = this.context && (this.context as StickyWrapperContextType).onScroll ?\n (this.context as StickyWrapperContextType).onScroll\n : ()=>{};\n const withKeyboardAvoidingView = (content: React.ReactNode) => (\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : undefined}\n keyboardVerticalOffset={verticalOffset}\n style={{ flex: 1 }}>\n {content}\n </KeyboardAvoidingView>\n );\n\n if (!props.pulltorefresh) {\n return withKeyboardAvoidingView(\n <Animated.ScrollView {...scrollViewProps} ref={this.scrollRef} onScroll={onScroll}>\n {props.children}\n </Animated.ScrollView>\n );\n }\n\n const refreshScrollViewProps = { ...scrollViewProps, alwaysBounceVertical: true, bounces: true, overScrollMode: 'auto' as const };\n const useLottieSpinner = !!this.pulltorefreshsource && (Platform.OS === 'ios' || Platform.OS === 'android');\n\n if (!useLottieSpinner) {\n const isIOS = Platform.OS === 'ios';\n return withKeyboardAvoidingView(\n <Animated.ScrollView\n {...refreshScrollViewProps}\n ref={this.scrollRef}\n onScroll={onScroll}\n contentContainerStyle={[scrollViewProps.contentContainerStyle, isIOS && { paddingTop: paddingTopVal }]}\n contentInset={isIOS ? { top: navHeightVal } : undefined}\n contentOffset={isIOS ? { x: 0, y: -navHeightVal } : undefined}\n refreshControl={\n <RefreshControl\n refreshing={this.state.refreshing}\n onRefresh={this.handleRefresh}\n progressViewOffset={Platform.OS === 'android' ? navHeightVal : undefined}\n />\n }\n >\n {props.children}\n </Animated.ScrollView>\n );\n }\n\n const lottieScrollViewProps = { ...refreshScrollViewProps, style: { flex: 1, width: '100%' as const } };\n const topOffset = navHeightVal + paddingTopVal;\n const spinner = (\n <WmLottie show={true} source={this.pulltorefreshsource} loop={true} speed={1} autoplay={true} classname={this.pulltorefreshclass} />\n );\n\n if (Platform.OS === 'ios') {\n return withKeyboardAvoidingView(\n <WmPullToRefreshScrollView\n ref={this.scrollRef}\n scrollViewProps={lottieScrollViewProps}\n refreshing={this.state.refreshing}\n onRefresh={this.handleRefresh}\n stickyOnScrollWorklet={(this.context as StickyWrapperContextType)?.onScrollWorklet}\n topOffset={topOffset}\n spinner={spinner}\n spinnerAspectRatio={this.state.spinnerAspectRatio}\n >\n {props.children}\n </WmPullToRefreshScrollView>\n );\n }\n\n return withKeyboardAvoidingView(\n <WmPullToRefreshView\n style={{ flex: 1, flexDirection: 'column', width: '100%' }}\n spinner={spinner}\n refreshing={this.state.refreshing}\n onRefresh={this.handleRefresh}\n topOffset={topOffset}\n spinnerAspectRatio={this.state.spinnerAspectRatio}\n >\n <Animated.ScrollView {...lottieScrollViewProps} ref={this.scrollRef} onScroll={onScroll}>\n {props.children}\n </Animated.ScrollView>\n </WmPullToRefreshView>\n );\n }}\n </SafeAreaInsetsContext.Consumer>\n </View> \n ) : (\n <View style={[this.styles.root,\n {backgroundColor: this._showSkeleton ?\n this.styles.skeleton.root.backgroundColor :\n this.styles.root.backgroundColor}]}\n {...this.horizontalSwipeResponder.panHandlers}>\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = props.consumenotch ? (insets?.bottom || 0) : 0;\n const verticalOffset = Platform.OS === 'ios' ? keyboardOffset + props.keyboardverticaloffset : keyboardOffset;\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : undefined}\n keyboardVerticalOffset={verticalOffset}\n style={{ flex: 1 }}>\n {this._background}\n {props.children}\n </KeyboardAvoidingView>\n )}}\n </SafeAreaInsetsContext.Consumer>\n </View>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,8 @@ export default class WmPageContentProps extends SkeletonAnimationProps {
13
13
  _defineProperty(this, "keyboardpersisttaps", 'never');
14
14
  _defineProperty(this, "consumenotch", true);
15
15
  _defineProperty(this, "onscroll", '');
16
+ _defineProperty(this, "pulltorefresh", false);
17
+ _defineProperty(this, "onPulltorefresh", void 0);
16
18
  _defineProperty(this, "onSwipeleft", void 0);
17
19
  _defineProperty(this, "onSwiperight", void 0);
18
20
  }
@@ -1 +1 @@
1
- {"version":3,"names":["SkeletonAnimationProps","WmPageContentProps","constructor","args","_defineProperty"],"sources":["page-content.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { SkeletonAnimationProps } from '@wavemaker/app-rn-runtime/runtime/base-fragment.component';\nimport WmPageContent from './page-content.component';\n\nexport default class WmPageContentProps extends SkeletonAnimationProps {\n children: any[] = null as any;\n scrollable: boolean = true;\n onSwipeup?: Function = null as any; \n onSwipedown?: Function = null as any;\n keyboardverticaloffset: number = 100;\n keyboardpersisttaps: 'never'| 'always' | 'handled' = 'never';\n consumenotch: boolean = true;\n onscroll: string = '';\n onSwipeleft?: ($event: any, instance: WmPageContent) => any;\n onSwiperight?: ($event: any, instance: WmPageContent) => any;\n}"],"mappings":";;;AACA,SAASA,sBAAsB,QAAQ,2DAA2D;AAGlG,eAAe,MAAMC,kBAAkB,SAASD,sBAAsB,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,mBACjD,IAAI;IAAAA,eAAA,qBACA,IAAI;IAAAA,eAAA,oBACH,IAAI;IAAAA,eAAA,sBACF,IAAI;IAAAA,eAAA,iCACI,GAAG;IAAAA,eAAA,8BACiB,OAAO;IAAAA,eAAA,uBACpC,IAAI;IAAAA,eAAA,mBACT,EAAE;IAAAA,eAAA;IAAAA,eAAA;EAAA;AAGzB","ignoreList":[]}
1
+ {"version":3,"names":["SkeletonAnimationProps","WmPageContentProps","constructor","args","_defineProperty"],"sources":["page-content.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { SkeletonAnimationProps } from '@wavemaker/app-rn-runtime/runtime/base-fragment.component';\nimport WmPageContent from './page-content.component';\n\nexport default class WmPageContentProps extends SkeletonAnimationProps {\n children: any[] = null as any;\n scrollable: boolean = true;\n onSwipeup?: Function = null as any; \n onSwipedown?: Function = null as any;\n keyboardverticaloffset: number = 100;\n keyboardpersisttaps: 'never'| 'always' | 'handled' = 'never';\n consumenotch: boolean = true;\n onscroll: string = '';\n pulltorefresh?: boolean = false;\n onPulltorefresh?: ($event: any, instance: WmPageContent) => any;\n onSwipeleft?: ($event: any, instance: WmPageContent) => any;\n onSwiperight?: ($event: any, instance: WmPageContent) => any;\n}"],"mappings":";;;AACA,SAASA,sBAAsB,QAAQ,2DAA2D;AAGlG,eAAe,MAAMC,kBAAkB,SAASD,sBAAsB,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,mBACjD,IAAI;IAAAA,eAAA,qBACA,IAAI;IAAAA,eAAA,oBACH,IAAI;IAAAA,eAAA,sBACF,IAAI;IAAAA,eAAA,iCACI,GAAG;IAAAA,eAAA,8BACiB,OAAO;IAAAA,eAAA,uBACpC,IAAI;IAAAA,eAAA,mBACT,EAAE;IAAAA,eAAA,wBACK,KAAK;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;EAAA;AAInC","ignoreList":[]}
@@ -0,0 +1,288 @@
1
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
3
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
+ import axios from 'axios';
6
+ import { requireNativeViewManager, requireOptionalNativeModule } from 'expo-modules-core';
7
+ import * as React from 'react';
8
+ import { Platform, StyleSheet, View } from 'react-native';
9
+ import Animated, { runOnJS, useAnimatedScrollHandler, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';
10
+
11
+ // Native side lives in the expo-pull-to-refresh plugin: Android ports the drag gesture, iOS attaches a hidden UIRefreshControl.
12
+
13
+ const spinnerAspectRatioCache = new Map();
14
+ export function getSpinnerAspectRatio(loadAsset, source) {
15
+ if (!loadAsset || !source) {
16
+ return Promise.resolve(undefined);
17
+ }
18
+ if (!spinnerAspectRatioCache.has(source)) {
19
+ const asset = loadAsset(source);
20
+ const animationData = typeof asset === 'string' ? axios.get(asset).then(({
21
+ data
22
+ }) => data) : Promise.resolve(asset);
23
+ spinnerAspectRatioCache.set(source, animationData.then(data => data !== null && data !== void 0 && data.w && data !== null && data !== void 0 && data.h ? data.w / data.h : undefined).catch(() => {
24
+ spinnerAspectRatioCache.delete(source);
25
+ return undefined;
26
+ }));
27
+ }
28
+ return spinnerAspectRatioCache.get(source);
29
+ }
30
+ function getSpinnerBoxSize(spinnerAspectRatio) {
31
+ const ratio = spinnerAspectRatio || SPINNER_BOX_WIDTH / SPINNER_BOX_HEIGHT;
32
+ return {
33
+ width: SPINNER_BOX_HEIGHT * ratio,
34
+ height: SPINNER_BOX_HEIGHT
35
+ };
36
+ }
37
+ const SPINNER_SIZE = 64;
38
+ const SPINNER_BOX_WIDTH = 140;
39
+ const SPINNER_BOX_HEIGHT = 70;
40
+ const SPINNER_RESTING_TOP = 16;
41
+ const isAndroidPluginAvailable = Platform.OS === 'android' && !!requireOptionalNativeModule('ExpoPullToRefresh');
42
+ const NativeExpoPullToRefreshView = isAndroidPluginAvailable ? requireNativeViewManager('ExpoPullToRefresh') : null;
43
+ const NativePullToRefreshControl = Platform.OS === 'ios' && requireOptionalNativeModule('ExpoPullToRefreshControl') ? requireNativeViewManager('ExpoPullToRefreshControl') : null;
44
+ export class WmPullToRefreshView extends React.Component {
45
+ constructor(...args) {
46
+ super(...args);
47
+ _defineProperty(this, "state", {
48
+ progress: 0
49
+ });
50
+ _defineProperty(this, "handlePullProgress", event => {
51
+ var _ref, _event$nativeEvent$pr, _event$nativeEvent;
52
+ const value = (_ref = (_event$nativeEvent$pr = event === null || event === void 0 || (_event$nativeEvent = event.nativeEvent) === null || _event$nativeEvent === void 0 ? void 0 : _event$nativeEvent.progress) !== null && _event$nativeEvent$pr !== void 0 ? _event$nativeEvent$pr : event === null || event === void 0 ? void 0 : event.progress) !== null && _ref !== void 0 ? _ref : 0;
53
+ this.setState({
54
+ progress: value
55
+ });
56
+ });
57
+ _defineProperty(this, "handleRefresh", () => {
58
+ var _this$props$onRefresh, _this$props;
59
+ this.setState({
60
+ progress: 1
61
+ });
62
+ (_this$props$onRefresh = (_this$props = this.props).onRefresh) === null || _this$props$onRefresh === void 0 || _this$props$onRefresh.call(_this$props);
63
+ });
64
+ }
65
+ componentDidUpdate(prevProps) {
66
+ if (prevProps.refreshing && !this.props.refreshing) {
67
+ this.setState({
68
+ progress: 0
69
+ });
70
+ }
71
+ }
72
+ render() {
73
+ const {
74
+ spinner,
75
+ children,
76
+ onRefresh,
77
+ refreshing,
78
+ topOffset = 0,
79
+ spinnerAspectRatio,
80
+ style,
81
+ ...rest
82
+ } = this.props;
83
+ if (!NativeExpoPullToRefreshView) {
84
+ return /*#__PURE__*/React.createElement(React.Fragment, null, children);
85
+ }
86
+ const raw = refreshing ? 1 : this.state.progress;
87
+ const clamped = Math.min(1, Math.max(0, raw));
88
+ return /*#__PURE__*/React.createElement(NativeExpoPullToRefreshView, _extends({}, rest, {
89
+ refreshing: refreshing,
90
+ style: [styles.native, style],
91
+ onPullProgress: this.handlePullProgress,
92
+ onRefresh: this.handleRefresh
93
+ }), /*#__PURE__*/React.createElement(View, {
94
+ style: styles.wrapper,
95
+ collapsable: false
96
+ }, children, /*#__PURE__*/React.createElement(View, {
97
+ style: [styles.spinnerOverlay, {
98
+ top: topOffset,
99
+ opacity: clamped,
100
+ transform: [{
101
+ translateY: -SPINNER_SIZE + clamped * (SPINNER_SIZE + SPINNER_RESTING_TOP)
102
+ }, {
103
+ scale: 0.4 + clamped * 0.6
104
+ }]
105
+ }],
106
+ pointerEvents: "none"
107
+ }, /*#__PURE__*/React.createElement(View, {
108
+ style: getSpinnerBoxSize(spinnerAspectRatio)
109
+ }, clamped > 0 ? spinner : null))));
110
+ }
111
+ }
112
+ const PULL_TO_REFRESH_THRESHOLD = SPINNER_SIZE;
113
+ const IOS_REFRESH_GAP = 60;
114
+ const IOS_SPINNER_FULL_SIZE_GAP = IOS_REFRESH_GAP - 5;
115
+ const PullToRefreshSpinnerLayer = ({
116
+ spinner,
117
+ pullDistance,
118
+ pulled,
119
+ refreshing,
120
+ mounted,
121
+ topOffset,
122
+ spinnerAspectRatio,
123
+ threshold = PULL_TO_REFRESH_THRESHOLD
124
+ }) => {
125
+ const animatedStyle = useAnimatedStyle(() => {
126
+ const gapScale = Math.min(1, Math.max(0, pullDistance.value / IOS_SPINNER_FULL_SIZE_GAP));
127
+ if (refreshing) {
128
+ return {
129
+ opacity: 1,
130
+ transform: [{
131
+ scale: gapScale
132
+ }]
133
+ };
134
+ }
135
+ const progress = pulled.value ? Math.min(1, Math.max(0, pullDistance.value / threshold)) : 0;
136
+ return {
137
+ opacity: progress,
138
+ transform: [{
139
+ scale: gapScale
140
+ }]
141
+ };
142
+ }, [refreshing, threshold]);
143
+ return /*#__PURE__*/React.createElement(Animated.View, {
144
+ pointerEvents: "none",
145
+ style: [styles.iosSpinnerLayer, {
146
+ top: topOffset + (IOS_REFRESH_GAP - SPINNER_BOX_HEIGHT) / 2
147
+ }, animatedStyle]
148
+ }, /*#__PURE__*/React.createElement(View, {
149
+ style: getSpinnerBoxSize(spinnerAspectRatio)
150
+ }, mounted ? spinner : null));
151
+ };
152
+ export const WmPullToRefreshScrollView = /*#__PURE__*/React.forwardRef(({
153
+ scrollViewProps,
154
+ spinner,
155
+ refreshing,
156
+ onRefresh,
157
+ stickyOnScrollWorklet,
158
+ topOffset = 0,
159
+ spinnerAspectRatio,
160
+ children
161
+ }, ref) => {
162
+ const pullDistance = useSharedValue(0);
163
+ const isDragging = useSharedValue(false);
164
+ const [spinnerMounted, setSpinnerMounted] = React.useState(false);
165
+ const mountRequested = useSharedValue(false);
166
+ const unmountSpinner = React.useCallback(() => {
167
+ mountRequested.value = false;
168
+ setSpinnerMounted(false);
169
+ }, [mountRequested]);
170
+ const nativeRefreshing = React.useRef(false);
171
+ const [closing, setClosing] = React.useState(false);
172
+ const handleNativeRefresh = React.useCallback(() => {
173
+ nativeRefreshing.current = true;
174
+ mountRequested.value = true;
175
+ setSpinnerMounted(true);
176
+ onRefresh === null || onRefresh === void 0 || onRefresh();
177
+ }, [onRefresh, mountRequested]);
178
+ React.useEffect(() => {
179
+ if (refreshing || !nativeRefreshing.current) {
180
+ return;
181
+ }
182
+ nativeRefreshing.current = false;
183
+ setClosing(true);
184
+ const timer = setTimeout(() => {
185
+ setClosing(false);
186
+ if (!isDragging.value) {
187
+ unmountSpinner();
188
+ }
189
+ }, 350);
190
+ return () => clearTimeout(timer);
191
+ }, [refreshing, isDragging, unmountSpinner]);
192
+ const scrollHandler = useAnimatedScrollHandler({
193
+ onScroll: event => {
194
+ const offsetY = event.contentOffset.y;
195
+ pullDistance.value = Math.max(0, -offsetY);
196
+ if (offsetY < 0 && isDragging.value && !mountRequested.value) {
197
+ mountRequested.value = true;
198
+ runOnJS(setSpinnerMounted)(true);
199
+ } else if (offsetY >= 0 && !isDragging.value && mountRequested.value) {
200
+ mountRequested.value = false;
201
+ runOnJS(setSpinnerMounted)(false);
202
+ }
203
+ if (stickyOnScrollWorklet && offsetY >= 0) {
204
+ stickyOnScrollWorklet(event);
205
+ }
206
+ }
207
+ });
208
+ const handleScrollBeginDrag = React.useCallback(event => {
209
+ var _scrollViewProps$onSc;
210
+ isDragging.value = true;
211
+ scrollViewProps === null || scrollViewProps === void 0 || (_scrollViewProps$onSc = scrollViewProps.onScrollBeginDrag) === null || _scrollViewProps$onSc === void 0 || _scrollViewProps$onSc.call(scrollViewProps, event);
212
+ }, [scrollViewProps, isDragging]);
213
+ const handleScrollEndDrag = React.useCallback(event => {
214
+ var _event$nativeEvent$co, _event$nativeEvent2, _scrollViewProps$onSc2;
215
+ isDragging.value = false;
216
+ const offsetY = (_event$nativeEvent$co = event === null || event === void 0 || (_event$nativeEvent2 = event.nativeEvent) === null || _event$nativeEvent2 === void 0 || (_event$nativeEvent2 = _event$nativeEvent2.contentOffset) === null || _event$nativeEvent2 === void 0 ? void 0 : _event$nativeEvent2.y) !== null && _event$nativeEvent$co !== void 0 ? _event$nativeEvent$co : 0;
217
+ if (!NativePullToRefreshControl && !refreshing && -offsetY >= PULL_TO_REFRESH_THRESHOLD) {
218
+ handleNativeRefresh();
219
+ }
220
+ if (!refreshing && !nativeRefreshing.current && pullDistance.value <= 0) {
221
+ unmountSpinner();
222
+ }
223
+ scrollViewProps === null || scrollViewProps === void 0 || (_scrollViewProps$onSc2 = scrollViewProps.onScrollEndDrag) === null || _scrollViewProps$onSc2 === void 0 || _scrollViewProps$onSc2.call(scrollViewProps, event);
224
+ }, [refreshing, scrollViewProps, isDragging, pullDistance, unmountSpinner, handleNativeRefresh]);
225
+ return /*#__PURE__*/React.createElement(View, {
226
+ style: styles.iosHost,
227
+ collapsable: false
228
+ }, /*#__PURE__*/React.createElement(PullToRefreshSpinnerLayer, {
229
+ pullDistance: pullDistance,
230
+ pulled: mountRequested,
231
+ refreshing: refreshing || closing,
232
+ mounted: spinnerMounted,
233
+ topOffset: topOffset,
234
+ spinner: spinner,
235
+ spinnerAspectRatio: spinnerAspectRatio
236
+ }), /*#__PURE__*/React.createElement(Animated.ScrollView, _extends({
237
+ ref: ref
238
+ }, scrollViewProps, {
239
+ onScroll: scrollHandler,
240
+ scrollEventThrottle: 16,
241
+ onScrollBeginDrag: handleScrollBeginDrag,
242
+ onScrollEndDrag: handleScrollEndDrag,
243
+ contentInset: !NativePullToRefreshControl && refreshing ? {
244
+ top: PULL_TO_REFRESH_THRESHOLD
245
+ } : undefined
246
+ }), children), NativePullToRefreshControl ? /*#__PURE__*/React.createElement(NativePullToRefreshControl, {
247
+ style: styles.iosRefreshControl,
248
+ refreshing: refreshing,
249
+ onRefresh: handleNativeRefresh
250
+ }) : null);
251
+ });
252
+ WmPullToRefreshScrollView.displayName = 'WmPullToRefreshScrollView';
253
+ const styles = StyleSheet.create({
254
+ native: {
255
+ flex: 1
256
+ },
257
+ wrapper: {
258
+ flex: 1
259
+ },
260
+ spinnerOverlay: {
261
+ position: 'absolute',
262
+ left: 0,
263
+ right: 0,
264
+ alignItems: 'center',
265
+ justifyContent: 'center',
266
+ zIndex: 10,
267
+ elevation: 10
268
+ },
269
+ iosHost: {
270
+ flex: 1,
271
+ width: '100%'
272
+ },
273
+ iosRefreshControl: {
274
+ position: 'absolute',
275
+ width: 0,
276
+ height: 0
277
+ },
278
+ iosSpinnerLayer: {
279
+ position: 'absolute',
280
+ transformOrigin: 'top',
281
+ left: 0,
282
+ right: 0,
283
+ height: SPINNER_BOX_HEIGHT,
284
+ alignItems: 'center',
285
+ justifyContent: 'center'
286
+ }
287
+ });
288
+ //# sourceMappingURL=pull-to-refresh.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["axios","requireNativeViewManager","requireOptionalNativeModule","React","Platform","StyleSheet","View","Animated","runOnJS","useAnimatedScrollHandler","useAnimatedStyle","useSharedValue","spinnerAspectRatioCache","Map","getSpinnerAspectRatio","loadAsset","source","Promise","resolve","undefined","has","asset","animationData","get","then","data","set","w","h","catch","delete","getSpinnerBoxSize","spinnerAspectRatio","ratio","SPINNER_BOX_WIDTH","SPINNER_BOX_HEIGHT","width","height","SPINNER_SIZE","SPINNER_RESTING_TOP","isAndroidPluginAvailable","OS","NativeExpoPullToRefreshView","NativePullToRefreshControl","WmPullToRefreshView","Component","constructor","args","_defineProperty","progress","event","_ref","_event$nativeEvent$pr","_event$nativeEvent","value","nativeEvent","setState","_this$props$onRefresh","_this$props","props","onRefresh","call","componentDidUpdate","prevProps","refreshing","render","spinner","children","topOffset","style","rest","createElement","Fragment","raw","state","clamped","Math","min","max","_extends","styles","native","onPullProgress","handlePullProgress","handleRefresh","wrapper","collapsable","spinnerOverlay","top","opacity","transform","translateY","scale","pointerEvents","PULL_TO_REFRESH_THRESHOLD","IOS_REFRESH_GAP","IOS_SPINNER_FULL_SIZE_GAP","PullToRefreshSpinnerLayer","pullDistance","pulled","mounted","threshold","animatedStyle","gapScale","iosSpinnerLayer","WmPullToRefreshScrollView","forwardRef","scrollViewProps","stickyOnScrollWorklet","ref","isDragging","spinnerMounted","setSpinnerMounted","useState","mountRequested","unmountSpinner","useCallback","nativeRefreshing","useRef","closing","setClosing","handleNativeRefresh","current","useEffect","timer","setTimeout","clearTimeout","scrollHandler","onScroll","offsetY","contentOffset","y","handleScrollBeginDrag","_scrollViewProps$onSc","onScrollBeginDrag","handleScrollEndDrag","_event$nativeEvent$co","_event$nativeEvent2","_scrollViewProps$onSc2","onScrollEndDrag","iosHost","ScrollView","scrollEventThrottle","contentInset","iosRefreshControl","displayName","create","flex","position","left","right","alignItems","justifyContent","zIndex","elevation","transformOrigin"],"sources":["pull-to-refresh.component.tsx"],"sourcesContent":["import axios from 'axios';\nimport { requireNativeViewManager, requireOptionalNativeModule } from 'expo-modules-core';\nimport * as React from 'react';\nimport { Platform, StyleSheet, View, ViewProps } from 'react-native';\nimport Animated, { runOnJS, SharedValue, useAnimatedScrollHandler, useAnimatedStyle, useSharedValue } from 'react-native-reanimated';\n\n// Native side lives in the expo-pull-to-refresh plugin: Android ports the drag gesture, iOS attaches a hidden UIRefreshControl.\n\nexport interface WmPullToRefreshViewProps extends ViewProps {\n spinner: React.ReactElement;\n refreshing: boolean;\n onRefresh?: () => void;\n topOffset?: number;\n spinnerAspectRatio?: number;\n children?: React.ReactNode;\n}\n\nconst spinnerAspectRatioCache = new Map<string, Promise<number | undefined>>();\n\nexport function getSpinnerAspectRatio(\n loadAsset: ((path: string) => number | string) | undefined,\n source: string | undefined\n): Promise<number | undefined> {\n if (!loadAsset || !source) {\n return Promise.resolve(undefined);\n }\n if (!spinnerAspectRatioCache.has(source)) {\n const asset: any = loadAsset(source);\n const animationData = typeof asset === 'string' ? axios.get(asset).then(({ data }) => data) : Promise.resolve(asset);\n spinnerAspectRatioCache.set(source, animationData\n .then((data) => (data?.w && data?.h) ? data.w / data.h : undefined)\n .catch(() => {\n spinnerAspectRatioCache.delete(source);\n return undefined;\n }));\n }\n return spinnerAspectRatioCache.get(source)!;\n}\n\nfunction getSpinnerBoxSize(spinnerAspectRatio?: number) {\n const ratio = spinnerAspectRatio || SPINNER_BOX_WIDTH / SPINNER_BOX_HEIGHT;\n return { width: SPINNER_BOX_HEIGHT * ratio, height: SPINNER_BOX_HEIGHT };\n}\n\ninterface WmPullToRefreshState {\n progress: number;\n}\n\nconst SPINNER_SIZE = 64;\nconst SPINNER_BOX_WIDTH = 140;\nconst SPINNER_BOX_HEIGHT = 70;\nconst SPINNER_RESTING_TOP = 16;\n\nconst isAndroidPluginAvailable =\n Platform.OS === 'android' && !!requireOptionalNativeModule('ExpoPullToRefresh');\n\nconst NativeExpoPullToRefreshView: any =\n isAndroidPluginAvailable ? requireNativeViewManager('ExpoPullToRefresh') : null;\n\nconst NativePullToRefreshControl: any =\n Platform.OS === 'ios' && requireOptionalNativeModule('ExpoPullToRefreshControl')\n ? requireNativeViewManager('ExpoPullToRefreshControl')\n : null;\n\nexport class WmPullToRefreshView extends React.Component<\n WmPullToRefreshViewProps,\n WmPullToRefreshState\n> {\n state: WmPullToRefreshState = { progress: 0 };\n\n componentDidUpdate(prevProps: WmPullToRefreshViewProps) {\n if (prevProps.refreshing && !this.props.refreshing) {\n this.setState({ progress: 0 });\n }\n }\n\n private handlePullProgress = (event: any) => {\n const value = event?.nativeEvent?.progress ?? event?.progress ?? 0;\n this.setState({ progress: value });\n };\n\n private handleRefresh = () => {\n this.setState({ progress: 1 });\n this.props.onRefresh?.();\n };\n\n render() {\n const {\n spinner,\n children,\n onRefresh,\n refreshing,\n topOffset = 0,\n spinnerAspectRatio,\n style,\n ...rest\n } = this.props;\n\n if (!NativeExpoPullToRefreshView) {\n return <>{children}</>;\n }\n\n const raw = refreshing ? 1 : this.state.progress;\n const clamped = Math.min(1, Math.max(0, raw));\n\n return (\n <NativeExpoPullToRefreshView\n {...rest}\n refreshing={refreshing}\n style={[styles.native, style]}\n onPullProgress={this.handlePullProgress}\n onRefresh={this.handleRefresh}\n >\n <View style={styles.wrapper} collapsable={false}>\n {children}\n <View\n style={[\n styles.spinnerOverlay,\n {\n top: topOffset,\n opacity: clamped,\n transform: [\n { translateY: -SPINNER_SIZE + clamped * (SPINNER_SIZE + SPINNER_RESTING_TOP) },\n { scale: 0.4 + clamped * 0.6 },\n ],\n },\n ]}\n pointerEvents=\"none\"\n >\n <View style={getSpinnerBoxSize(spinnerAspectRatio)}>{clamped > 0 ? spinner : null}</View>\n </View>\n </View>\n </NativeExpoPullToRefreshView>\n );\n }\n}\n\nconst PULL_TO_REFRESH_THRESHOLD = SPINNER_SIZE;\n\nconst IOS_REFRESH_GAP = 60;\n\nconst IOS_SPINNER_FULL_SIZE_GAP = IOS_REFRESH_GAP - 5;\n\nconst PullToRefreshSpinnerLayer: React.FC<{\n spinner: React.ReactElement;\n pullDistance: SharedValue<number>;\n pulled: SharedValue<boolean>;\n refreshing: boolean;\n mounted: boolean;\n topOffset: number;\n spinnerAspectRatio?: number;\n threshold?: number;\n}> = ({ spinner, pullDistance, pulled, refreshing, mounted, topOffset, spinnerAspectRatio, threshold = PULL_TO_REFRESH_THRESHOLD }) => {\n const animatedStyle = useAnimatedStyle(() => {\n const gapScale = Math.min(1, Math.max(0, pullDistance.value / IOS_SPINNER_FULL_SIZE_GAP));\n if (refreshing) {\n return { opacity: 1, transform: [{ scale: gapScale }] };\n }\n const progress = pulled.value ? Math.min(1, Math.max(0, pullDistance.value / threshold)) : 0;\n return {\n opacity: progress,\n transform: [{ scale: gapScale }],\n };\n }, [refreshing, threshold]);\n\n return (\n <Animated.View\n pointerEvents=\"none\"\n style={[\n styles.iosSpinnerLayer,\n { top: topOffset + (IOS_REFRESH_GAP - SPINNER_BOX_HEIGHT) / 2 },\n animatedStyle,\n ]}\n >\n <View style={getSpinnerBoxSize(spinnerAspectRatio)}>{mounted ? spinner : null}</View>\n </Animated.View>\n );\n};\n\nexport interface WmPullToRefreshScrollViewProps {\n scrollViewProps: any;\n spinner: React.ReactElement;\n refreshing: boolean;\n onRefresh?: () => void;\n stickyOnScrollWorklet?: (event: any) => void;\n topOffset?: number;\n spinnerAspectRatio?: number;\n children?: React.ReactNode;\n}\n\nexport const WmPullToRefreshScrollView = React.forwardRef<any, WmPullToRefreshScrollViewProps>(\n ({ scrollViewProps, spinner, refreshing, onRefresh, stickyOnScrollWorklet, topOffset = 0, spinnerAspectRatio, children }, ref) => {\n const pullDistance = useSharedValue(0);\n const isDragging = useSharedValue(false);\n\n const [spinnerMounted, setSpinnerMounted] = React.useState(false);\n const mountRequested = useSharedValue(false);\n\n const unmountSpinner = React.useCallback(() => {\n mountRequested.value = false;\n setSpinnerMounted(false);\n }, [mountRequested]);\n\n const nativeRefreshing = React.useRef(false);\n const [closing, setClosing] = React.useState(false);\n\n const handleNativeRefresh = React.useCallback(() => {\n nativeRefreshing.current = true;\n mountRequested.value = true;\n setSpinnerMounted(true);\n onRefresh?.();\n }, [onRefresh, mountRequested]);\n\n React.useEffect(() => {\n if (refreshing || !nativeRefreshing.current) {\n return;\n }\n nativeRefreshing.current = false;\n setClosing(true);\n const timer = setTimeout(() => {\n setClosing(false);\n if (!isDragging.value) {\n unmountSpinner();\n }\n }, 350);\n return () => clearTimeout(timer);\n }, [refreshing, isDragging, unmountSpinner]);\n\n const scrollHandler = useAnimatedScrollHandler({\n onScroll: (event: any) => {\n const offsetY = event.contentOffset.y;\n pullDistance.value = Math.max(0, -offsetY);\n if (offsetY < 0 && isDragging.value && !mountRequested.value) {\n mountRequested.value = true;\n runOnJS(setSpinnerMounted)(true);\n } else if (offsetY >= 0 && !isDragging.value && mountRequested.value) {\n mountRequested.value = false;\n runOnJS(setSpinnerMounted)(false);\n }\n if (stickyOnScrollWorklet && offsetY >= 0) {\n stickyOnScrollWorklet(event);\n }\n },\n });\n\n const handleScrollBeginDrag = React.useCallback(\n (event: any) => {\n isDragging.value = true;\n scrollViewProps?.onScrollBeginDrag?.(event);\n },\n [scrollViewProps, isDragging]\n );\n\n const handleScrollEndDrag = React.useCallback(\n (event: any) => {\n isDragging.value = false;\n const offsetY = event?.nativeEvent?.contentOffset?.y ?? 0;\n if (!NativePullToRefreshControl && !refreshing && -offsetY >= PULL_TO_REFRESH_THRESHOLD) {\n handleNativeRefresh();\n }\n if (!refreshing && !nativeRefreshing.current && pullDistance.value <= 0) {\n unmountSpinner();\n }\n scrollViewProps?.onScrollEndDrag?.(event);\n },\n [refreshing, scrollViewProps, isDragging, pullDistance, unmountSpinner, handleNativeRefresh]\n );\n\n return (\n <View style={styles.iosHost} collapsable={false}>\n <PullToRefreshSpinnerLayer\n pullDistance={pullDistance}\n pulled={mountRequested}\n refreshing={refreshing || closing}\n mounted={spinnerMounted}\n topOffset={topOffset}\n spinner={spinner}\n spinnerAspectRatio={spinnerAspectRatio}\n />\n <Animated.ScrollView\n ref={ref}\n {...scrollViewProps}\n onScroll={scrollHandler}\n scrollEventThrottle={16}\n onScrollBeginDrag={handleScrollBeginDrag}\n onScrollEndDrag={handleScrollEndDrag}\n contentInset={!NativePullToRefreshControl && refreshing ? { top: PULL_TO_REFRESH_THRESHOLD } : undefined}\n >\n {children}\n </Animated.ScrollView>\n {NativePullToRefreshControl ? (\n <NativePullToRefreshControl\n style={styles.iosRefreshControl}\n refreshing={refreshing}\n onRefresh={handleNativeRefresh}\n />\n ) : null}\n </View>\n );\n }\n);\nWmPullToRefreshScrollView.displayName = 'WmPullToRefreshScrollView';\n\nconst styles = StyleSheet.create({\n native: {\n flex: 1,\n },\n wrapper: {\n flex: 1,\n },\n spinnerOverlay: {\n position: 'absolute',\n left: 0,\n right: 0,\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 10,\n elevation: 10,\n },\n iosHost: {\n flex: 1,\n width: '100%',\n },\n iosRefreshControl: {\n position: 'absolute',\n width: 0,\n height: 0,\n },\n iosSpinnerLayer: {\n position: 'absolute',\n transformOrigin: 'top',\n left: 0,\n right: 0,\n height: SPINNER_BOX_HEIGHT,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["AppConfig.ts"],"sourcesContent":["export interface Drawer {\n setContent: (c: React.ReactNode) => void;\n getContent: () => React.ReactNode;\n setAnimation: (animation: string) => void;\n getAnimation: () => string;\n}\n\nexport default interface AppConfig {\n appId: string;\n assets: any;\n appProperties: any;\n appLocale: any;\n url: string;\n leftNavWidth: any;\n loadApp: boolean;\n refresh: (complete?: boolean) => void,\n currentPage?: any;\n pages?: any[];\n landingPage: string;\n partials?: any[];\n drawer: Drawer;\n app: any;\n spinner: any;\n setDrawerContent: any;\n theme: any;\n drawerType: any;\n preferences:any;\n getServiceDefinitions: any;\n loggedInUser: any;\n selectedLocale: string;\n revertLayoutToExpo50: boolean,\n diagnostics: {\n appStartTime: number,\n appReadyTime: number,\n pageStartTime: number,\n pageReadyTime: number\n }, \n edgeToEdgeConfig:any;\n prefabs?: {\n partials?: any[]\n },\n screenCaptureProtection: {\n enabled: boolean\n },\n disableNavigationAnimation:boolean,\n pageTransitionAnimation?: string,\n detachInactiveScreens:boolean,\n isLegacyTappable: boolean,\n enablePageCache:boolean,\n}"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["AppConfig.ts"],"sourcesContent":["export interface Drawer {\n setContent: (c: React.ReactNode) => void;\n getContent: () => React.ReactNode;\n setAnimation: (animation: string) => void;\n getAnimation: () => string;\n}\n\nexport default interface AppConfig {\n appId: string;\n assets: any;\n appProperties: any;\n appLocale: any;\n url: string;\n leftNavWidth: any;\n loadApp: boolean;\n refresh: (complete?: boolean) => void,\n currentPage?: any;\n pages?: any[];\n landingPage: string;\n partials?: any[];\n drawer: Drawer;\n app: any;\n spinner: any;\n setDrawerContent: any;\n theme: any;\n drawerType: any;\n preferences:any;\n getServiceDefinitions: any;\n loggedInUser: any;\n selectedLocale: string;\n revertLayoutToExpo50: boolean,\n diagnostics: {\n appStartTime: number,\n appReadyTime: number,\n pageStartTime: number,\n pageReadyTime: number\n }, \n edgeToEdgeConfig:any;\n pulltorefreshsource: string;\n pulltorefreshclass?: string;\n prefabs?: {\n partials?: any[]\n },\n screenCaptureProtection: {\n enabled: boolean\n },\n disableNavigationAnimation:boolean,\n pageTransitionAnimation?: string,\n detachInactiveScreens:boolean,\n isLegacyTappable: boolean,\n enablePageCache:boolean,\n}"],"mappings":"","ignoreList":[]}
@@ -433,13 +433,27 @@ export class BaseComponent extends React.Component {
433
433
  }, this.state.animatableProps), n);
434
434
  }
435
435
  setBackground() {
436
+ var _this$styles$root;
436
437
  const bgStyle = this.styles.root;
438
+ const blurValue = (_this$styles$root = this.styles.root) === null || _this$styles$root === void 0 ? void 0 : _this$styles$root.backdropFilter;
439
+ delete this.styles.root['backdropFilter'];
440
+ // Parse backdrop-filter CSS value to extract blur intensity
441
+ let blur = 0;
442
+ if (blurValue && typeof blurValue === 'string') {
443
+ const blurMatch = blurValue.match(/blur\((\d+)px\)/);
444
+ if (blurMatch && blurMatch[1]) {
445
+ const parsedValue = parseInt(blurMatch[1], 10);
446
+ // Clamp blur between 0 and 100
447
+ blur = Math.min(100, Math.max(0, parsedValue));
448
+ }
449
+ }
437
450
  this._background = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(BackgroundComponent, {
438
451
  image: bgStyle.backgroundImage,
439
452
  position: bgStyle.backgroundPosition,
440
453
  size: bgStyle.backgroundSize,
441
454
  repeat: bgStyle.backgroundRepeat,
442
455
  resizeMode: bgStyle.backgroundResizeMode,
456
+ blur: blur,
443
457
  style: {
444
458
  borderRadius: this.styles.root.borderRadius
445
459
  }