@wavemaker/app-rn-runtime 11.10.5-rc.6096 → 11.11.0-next.27920

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 (57) hide show
  1. package/components/basic/animatedview.component.js +3 -2
  2. package/components/basic/animatedview.component.js.map +1 -1
  3. package/components/basic/audio/audio.component.js.map +1 -1
  4. package/components/basic/picture/picture.component.js +20 -13
  5. package/components/basic/picture/picture.component.js.map +1 -1
  6. package/components/basic/picture/picture.styles.js.map +1 -1
  7. package/components/basic/skeleton/skeleton.component.js.map +1 -1
  8. package/components/basic/skeleton/skeleton.styles.js.map +1 -1
  9. package/components/chart/bar-chart/bar-chart.component.js +4 -2
  10. package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
  11. package/components/chart/bar-chart/bar-chart.props.js +1 -0
  12. package/components/chart/bar-chart/bar-chart.props.js.map +1 -1
  13. package/components/chart/basechart.component.js +6 -2
  14. package/components/chart/basechart.component.js.map +1 -1
  15. package/components/chart/basechart.props.js +2 -0
  16. package/components/chart/basechart.props.js.map +1 -1
  17. package/components/container/container.component.js +10 -2
  18. package/components/container/container.component.js.map +1 -1
  19. package/components/container/container.props.js +1 -0
  20. package/components/container/container.props.js.map +1 -1
  21. package/components/container/container.styles.js +3 -0
  22. package/components/container/container.styles.js.map +1 -1
  23. package/components/data/list/list.component.js +42 -13
  24. package/components/data/list/list.component.js.map +1 -1
  25. package/components/data/list/list.props.js +3 -0
  26. package/components/data/list/list.props.js.map +1 -1
  27. package/components/input/calendar/views/month-view.js.map +1 -1
  28. package/components/input/epoch/datetime/datetime.styles.js.map +1 -1
  29. package/components/navigation/appnavbar/appnavbar.component.js +67 -37
  30. package/components/navigation/appnavbar/appnavbar.component.js.map +1 -1
  31. package/components/navigation/appnavbar/appnavbar.props.js +1 -0
  32. package/components/navigation/appnavbar/appnavbar.props.js.map +1 -1
  33. package/components/navigation/appnavbar/appnavbar.styles.js.map +1 -1
  34. package/components/page/page-content/page-content.component.js +1 -1
  35. package/components/page/page-content/page-content.component.js.map +1 -1
  36. package/components/page/page.component.js +46 -4
  37. package/components/page/page.component.js.map +1 -1
  38. package/components/page/page.props.js +11 -1
  39. package/components/page/page.props.js.map +1 -1
  40. package/components/page/tabbar/tabbar.component.js +135 -40
  41. package/components/page/tabbar/tabbar.component.js.map +1 -1
  42. package/components/page/tabbar/tabbar.props.js +1 -0
  43. package/components/page/tabbar/tabbar.props.js.map +1 -1
  44. package/core/base.component.js +29 -5
  45. package/core/base.component.js.map +1 -1
  46. package/core/components/floatinglabel.component.js.map +1 -1
  47. package/core/components/textinput.component.js +18 -2
  48. package/core/components/textinput.component.js.map +1 -1
  49. package/core/fixed-view.component.js +5 -3
  50. package/core/fixed-view.component.js.map +1 -1
  51. package/core/sticky-container.component.js +168 -0
  52. package/core/sticky-container.component.js.map +1 -0
  53. package/npm-shrinkwrap.json +101 -50
  54. package/package-lock.json +101 -50
  55. package/package.json +6 -3
  56. package/runtime/App.js +14 -3
  57. package/runtime/App.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["Color","BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","flexDirection","backgroundColor","navitemActiveBackgroundColor","height","padding","paddingHorizontal","alignItems","text","action","leftSection","flex","leftnavIcon","icon","fontSize","navbarIconSize","color","navbarTextColor","backIcon","rippleColor","transparent","navbarFontSize","image","width","navbarImageSize","picture","resizeMode","content","textTransform","fontFamily","baseFont","fontWeight","textAlign","badge","titleBadgeBackgroundColor","titleBadgeTextColor","alignSelf","marginLeft","middleSection","rightSection","justifyContent","paddingRight","overflow","textDecorationStyle","undefined","fade","rgb","toString","link"],"sources":["appnavbar.styles.ts"],"sourcesContent":["import Color from 'color';\nimport BASE_THEME from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { TextStyle, ViewStyle } from 'react-native';\nimport { WmIconStyles } from '@wavemaker/app-rn-runtime/components/basic/icon/icon.styles';\nimport { WmMenuStyles } from '@wavemaker/app-rn-runtime/components/navigation/menu/menu.styles';\nimport { WmAnchorStyles } from '@wavemaker/app-rn-runtime/components/basic/anchor/anchor.styles';\nimport { WmPopoverStyles } from '@wavemaker/app-rn-runtime/components/navigation/popover/popover.styles';\nimport { WmPictureStyles } from '@wavemaker/app-rn-runtime/components/basic/picture/picture.styles';\n\nexport type WmAppNavbarStyles = BaseStyles & {\n action: WmIconStyles,\n image: WmPictureStyles,\n leftnavIcon: WmIconStyles,\n backIcon: WmIconStyles,\n leftSection: ViewStyle,\n middleSection: ViewStyle,\n rightSection: ViewStyle,\n content: ViewStyle,\n badge: TextStyle\n};\n\nexport const DEFAULT_CLASS = 'app-appnavbar';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmAppNavbarStyles = defineStyles({\n root: {\n flexDirection: 'row',\n backgroundColor: themeVariables.navitemActiveBackgroundColor,\n height: 80,\n padding: 12,\n paddingHorizontal: 12,\n alignItems: 'center'\n },\n text: {},\n action: {} as WmIconStyles,\n leftSection: {\n flex: 1,\n flexDirection: 'row'\n },\n leftnavIcon: {\n root: {\n alignItems: 'flex-start'\n },\n icon: {\n fontSize: themeVariables.navbarIconSize,\n color: themeVariables.navbarTextColor\n }\n } as WmIconStyles,\n backIcon: {\n root: {\n rippleColor: themeVariables.transparent\n },\n text: {\n fontSize: themeVariables.navbarFontSize,\n color: themeVariables.navbarTextColor\n },\n icon: {\n fontSize: themeVariables.navbarIconSize,\n color: themeVariables.navbarTextColor\n }\n } as WmIconStyles,\n image: {\n root: {\n width: themeVariables.navbarImageSize,\n height: themeVariables.navbarImageSize,\n },\n picture: {\n resizeMode: 'contain'\n }\n } as WmPictureStyles,\n content: {\n textTransform: 'capitalize',\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarFontSize,\n fontFamily: themeVariables.baseFont,\n fontWeight: '500',\n textAlign: 'center'\n },\n badge: {\n backgroundColor: themeVariables.titleBadgeBackgroundColor,\n color: themeVariables.titleBadgeTextColor,\n alignSelf: 'flex-start',\n marginLeft: 4\n },\n middleSection: {\n alignItems: 'center',\n flexDirection: 'row'\n },\n rightSection: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'flex-end'\n },\n } as WmAppNavbarStyles);\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle('navbarAnchorItem', '', {\n root: {\n paddingRight: 8,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'visible'\n },\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarFontSize,\n textDecorationStyle: undefined\n },\n badge: {\n backgroundColor: Color(themeVariables.navbarTextColor).fade(0.8).rgb().toString(),\n color: themeVariables.navbarTextColor,\n },\n icon: {\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarIconSize\n },\n icon : {\n color: themeVariables.navbarTextColor\n }\n }\n } as WmAnchorStyles);\n addStyle('navbarButton', '', {\n root: {\n backgroundColor: themeVariables.transparent,\n paddingRight: 8,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'center'\n },\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarFontSize\n },\n icon: {\n root: {\n color: themeVariables.navbarTextColor\n },\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarIconSize\n }\n }\n } as WmAnchorStyles);\n addStyle('navbarMenu', '', {\n root: {\n paddingRight: 8,\n height: '100%',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center'\n },\n link: {\n icon: {\n root: {\n fontSize: themeVariables.navbarIconSize,\n color: themeVariables.navbarTextColor\n }\n },\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarFontSize\n }\n }\n } as any as WmMenuStyles);\n addStyle('navbarPopover', '', {\n root: {\n height: '100%',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center'\n },\n link: {\n icon: {\n root: {\n fontSize: themeVariables.navbarIconSize,\n color: themeVariables.navbarTextColor\n }\n },\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarFontSize\n }\n }\n } as any as WmPopoverStyles);\n});"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Color","BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","flexDirection","backgroundColor","navitemActiveBackgroundColor","height","padding","paddingHorizontal","alignItems","text","action","leftSection","flex","leftnavIcon","icon","fontSize","navbarIconSize","color","navbarTextColor","backIcon","rippleColor","transparent","navbarFontSize","image","width","navbarImageSize","picture","resizeMode","content","textTransform","fontFamily","baseFont","fontWeight","textAlign","badge","titleBadgeBackgroundColor","titleBadgeTextColor","alignSelf","marginLeft","middleSection","rightSection","justifyContent","paddingRight","overflow","textDecorationStyle","undefined","fade","rgb","toString","link"],"sources":["appnavbar.styles.ts"],"sourcesContent":["import Color from 'color';\nimport BASE_THEME from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { TextStyle, ViewStyle } from 'react-native';\nimport { WmIconStyles } from '@wavemaker/app-rn-runtime/components/basic/icon/icon.styles';\nimport { WmMenuStyles } from '@wavemaker/app-rn-runtime/components/navigation/menu/menu.styles';\nimport { WmAnchorStyles } from '@wavemaker/app-rn-runtime/components/basic/anchor/anchor.styles';\nimport { WmPopoverStyles } from '@wavemaker/app-rn-runtime/components/navigation/popover/popover.styles';\nimport { WmPictureStyles } from '@wavemaker/app-rn-runtime/components/basic/picture/picture.styles';\n\nexport type WmAppNavbarStyles = BaseStyles & {\n action: WmIconStyles,\n image: WmPictureStyles,\n leftnavIcon: WmIconStyles,\n backIcon: WmIconStyles,\n leftSection: ViewStyle,\n middleSection: ViewStyle,\n rightSection: ViewStyle,\n content: TextStyle,\n badge: TextStyle\n};\n\nexport const DEFAULT_CLASS = 'app-appnavbar';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmAppNavbarStyles = defineStyles({\n root: {\n flexDirection: 'row',\n backgroundColor: themeVariables.navitemActiveBackgroundColor,\n height: 80,\n padding: 12,\n paddingHorizontal: 12,\n alignItems: 'center'\n },\n text: {},\n action: {} as WmIconStyles,\n leftSection: {\n flex: 1,\n flexDirection: 'row'\n },\n leftnavIcon: {\n root: {\n alignItems: 'flex-start'\n },\n icon: {\n fontSize: themeVariables.navbarIconSize,\n color: themeVariables.navbarTextColor\n }\n } as WmIconStyles,\n backIcon: {\n root: {\n rippleColor: themeVariables.transparent\n },\n text: {\n fontSize: themeVariables.navbarFontSize,\n color: themeVariables.navbarTextColor\n },\n icon: {\n fontSize: themeVariables.navbarIconSize,\n color: themeVariables.navbarTextColor\n }\n } as WmIconStyles,\n image: {\n root: {\n width: themeVariables.navbarImageSize,\n height: themeVariables.navbarImageSize,\n },\n picture: {\n resizeMode: 'contain'\n }\n } as WmPictureStyles,\n content: {\n textTransform: 'capitalize',\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarFontSize,\n fontFamily: themeVariables.baseFont,\n fontWeight: '500',\n textAlign: 'center'\n },\n badge: {\n backgroundColor: themeVariables.titleBadgeBackgroundColor,\n color: themeVariables.titleBadgeTextColor,\n alignSelf: 'flex-start',\n marginLeft: 4\n },\n middleSection: {\n alignItems: 'center',\n flexDirection: 'row'\n },\n rightSection: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'flex-end'\n },\n } as WmAppNavbarStyles);\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle('navbarAnchorItem', '', {\n root: {\n paddingRight: 8,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n overflow: 'visible'\n },\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarFontSize,\n textDecorationStyle: undefined\n },\n badge: {\n backgroundColor: Color(themeVariables.navbarTextColor).fade(0.8).rgb().toString(),\n color: themeVariables.navbarTextColor,\n },\n icon: {\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarIconSize\n },\n icon : {\n color: themeVariables.navbarTextColor\n }\n }\n } as WmAnchorStyles);\n addStyle('navbarButton', '', {\n root: {\n backgroundColor: themeVariables.transparent,\n paddingRight: 8,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'center'\n },\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarFontSize\n },\n icon: {\n root: {\n color: themeVariables.navbarTextColor\n },\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarIconSize\n }\n }\n } as WmAnchorStyles);\n addStyle('navbarMenu', '', {\n root: {\n paddingRight: 8,\n height: '100%',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center'\n },\n link: {\n icon: {\n root: {\n fontSize: themeVariables.navbarIconSize,\n color: themeVariables.navbarTextColor\n }\n },\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarFontSize\n }\n }\n } as any as WmMenuStyles);\n addStyle('navbarPopover', '', {\n root: {\n height: '100%',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center'\n },\n link: {\n icon: {\n root: {\n fontSize: themeVariables.navbarIconSize,\n color: themeVariables.navbarTextColor\n }\n },\n text: {\n color: themeVariables.navbarTextColor,\n fontSize: themeVariables.navbarFontSize\n }\n }\n } as any as WmPopoverStyles);\n});"],"mappings":"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","ignoreList":[]}
@@ -58,7 +58,7 @@ export default class WmPageContent extends BaseComponent {
58
58
  }
59
59
  scrollTo(position) {
60
60
  var _this$scrollRef2;
61
- (_this$scrollRef2 = this.scrollRef) === null || _this$scrollRef2 === void 0 || _this$scrollRef2.current.scrollTo({
61
+ (_this$scrollRef2 = this.scrollRef) === null || _this$scrollRef2 === void 0 || (_this$scrollRef2 = _this$scrollRef2.current) === null || _this$scrollRef2 === void 0 || _this$scrollRef2.scrollTo({
62
62
  x: position.x,
63
63
  y: position.y,
64
64
  Animated: true
@@ -1 +1 @@
1
- {"version":3,"names":["React","createRef","KeyboardAvoidingView","Platform","View","isWebPreviewMode","HideMode","BaseComponent","BaseComponentState","WmPageContentProps","DEFAULT_CLASS","ScrollView","WmLottie","SafeAreaInsetsContext","WmPageContentState","constructor","args","_defineProperty","WmPageContent","props","event","currentScrollY","nativeEvent","contentOffset","y","previousScrollY","swipeThreshold","state","delta","Math","abs","invokeEventCallback","proxy","setState","notify","hideMode","DONOT_ADD_TO_DOM","scrollRef","subscribe","scrollTo","_this$scrollRef","current","scrollToEnd","position","_this$scrollRef2","x","Animated","renderSkeleton","skeletonanimationresource","createElement","style","width","styles","root","content","skeleton","source","loop","autoplay","speed","skeletonanimationspeed","renderWidget","showScrollbar","scrollbarColor","scrollable","height","backgroundColor","_showSkeleton","_background","Consumer","insets","top","bottom","left","right","keyboardOffset","verticalOffset","OS","keyboardverticaloffset","behavior","undefined","keyboardVerticalOffset","flex","testID","getTestId","ref","contentContainerStyle","showsVerticalScrollIndicator","onScroll","handleScroll","alwaysBounceVertical","alwaysBounceHorizontal","bounces","scrollEventThrottle","children"],"sources":["page-content.component.tsx"],"sourcesContent":["import React, { createRef, RefObject } from 'react';\nimport { KeyboardAvoidingView, Platform, View, NativeSyntheticEvent, NativeScrollEvent } 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 { ScrollView } from 'react-native-gesture-handler';\nimport WmLottie from '@wavemaker/app-rn-runtime/components/basic/lottie/lottie.component';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\n\nexport class WmPageContentState extends BaseComponentState<WmPageContentProps> {\n previousScrollY: number = 0;\n swipeThreshold: number = 8;\n}\n\nexport default class WmPageContent extends BaseComponent<WmPageContentProps, WmPageContentState, WmPageContentStyles> {\n private scrollRef: RefObject<any>;\n\n constructor(props: WmPageContentProps) {\n super(props, DEFAULT_CLASS, new WmPageContentProps());\n this.hideMode = HideMode.DONOT_ADD_TO_DOM;\n this.scrollRef = createRef();\n \n this.state = {\n ...this.state,\n previousScrollY: 0,\n swipeThreshold: 8\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 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 handleScroll = (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const currentScrollY = event.nativeEvent.contentOffset.y;\n const { previousScrollY, swipeThreshold } = this.state;\n \n const delta = currentScrollY - previousScrollY;\n \n if (Math.abs(delta) > swipeThreshold) {\n if (delta > 0) {\n this.invokeEventCallback('onSwipeup', [null, this.proxy]);\n \n } else {\n this.invokeEventCallback('onSwipedown', [null, this.proxy]);\n }\n this.setState({ previousScrollY: currentScrollY });\n }\n this.notify('scroll', [event]);\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 renderWidget(props: WmPageContentProps) {\n const showScrollbar = (this.styles.root as any).scrollbarColor != 'transparent';\n \n return (props.scrollable || isWebPreviewMode()) ? (\n <View style={{height: '100%', width: '100%', backgroundColor: this._showSkeleton && this.styles.skeleton.root.backgroundColor ? this.styles.skeleton.root.backgroundColor : this.styles.root.backgroundColor}}>\n {this._background}\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = insets?.bottom || 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 <ScrollView \n testID={this.getTestId(\"page_content_scrollview\")}\n ref={this.scrollRef}\n contentContainerStyle={[this.styles.root, {backgroundColor: 'transparent'}]}\n showsVerticalScrollIndicator={showScrollbar}\n onScroll={this.handleScroll}\n alwaysBounceVertical={false}\n alwaysBounceHorizontal={false}\n bounces={false}\n scrollEventThrottle={48}>\n {props.children}\n </ScrollView>\n </KeyboardAvoidingView>\n )}}\n </SafeAreaInsetsContext.Consumer>\n </View> \n ) : (\n <View style={[this.styles.root,\n {backgroundColor: this._showSkeleton ?\n this.styles.skeleton.root.backgroundColor : \n this.styles.root.backgroundColor}]}>\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = insets?.bottom || 0;\n const verticalOffset = Platform.OS === 'ios' ? keyboardOffset + props.keyboardverticaloffset : keyboardOffset;\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === 'ios' ? 'padding' : undefined}\n keyboardVerticalOffset={verticalOffset}\n style={{ flex: 1 }}>\n {this._background}\n {props.children}\n </KeyboardAvoidingView>\n )}}\n </SafeAreaInsetsContext.Consumer>\n </View>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createRef","KeyboardAvoidingView","Platform","View","isWebPreviewMode","HideMode","BaseComponent","BaseComponentState","WmPageContentProps","DEFAULT_CLASS","ScrollView","WmLottie","SafeAreaInsetsContext","WmPageContentState","constructor","args","_defineProperty","WmPageContent","props","event","currentScrollY","nativeEvent","contentOffset","y","previousScrollY","swipeThreshold","state","delta","Math","abs","invokeEventCallback","proxy","setState","notify","hideMode","DONOT_ADD_TO_DOM","scrollRef","subscribe","scrollTo","_this$scrollRef","current","scrollToEnd","position","_this$scrollRef2","x","Animated","renderSkeleton","skeletonanimationresource","createElement","style","width","styles","root","content","skeleton","source","loop","autoplay","speed","skeletonanimationspeed","renderWidget","showScrollbar","scrollbarColor","scrollable","height","backgroundColor","_showSkeleton","_background","Consumer","insets","top","bottom","left","right","keyboardOffset","verticalOffset","OS","keyboardverticaloffset","behavior","undefined","keyboardVerticalOffset","flex","testID","getTestId","ref","contentContainerStyle","showsVerticalScrollIndicator","onScroll","handleScroll","alwaysBounceVertical","alwaysBounceHorizontal","bounces","scrollEventThrottle","children"],"sources":["page-content.component.tsx"],"sourcesContent":["import React, { createRef, RefObject } from 'react';\nimport { KeyboardAvoidingView, Platform, View, NativeSyntheticEvent, NativeScrollEvent } 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 { ScrollView } from 'react-native-gesture-handler';\nimport WmLottie from '@wavemaker/app-rn-runtime/components/basic/lottie/lottie.component';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\n\nexport class WmPageContentState extends BaseComponentState<WmPageContentProps> {\n previousScrollY: number = 0;\n swipeThreshold: number = 8;\n}\n\nexport default class WmPageContent extends BaseComponent<WmPageContentProps, WmPageContentState, WmPageContentStyles> {\n private scrollRef: RefObject<any>;\n\n constructor(props: WmPageContentProps) {\n super(props, DEFAULT_CLASS, new WmPageContentProps());\n this.hideMode = HideMode.DONOT_ADD_TO_DOM;\n this.scrollRef = createRef();\n \n this.state = {\n ...this.state,\n previousScrollY: 0,\n swipeThreshold: 8\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 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 handleScroll = (event: NativeSyntheticEvent<NativeScrollEvent>) => {\n const currentScrollY = event.nativeEvent.contentOffset.y;\n const { previousScrollY, swipeThreshold } = this.state;\n \n const delta = currentScrollY - previousScrollY;\n \n if (Math.abs(delta) > swipeThreshold) {\n if (delta > 0) {\n this.invokeEventCallback('onSwipeup', [null, this.proxy]);\n \n } else {\n this.invokeEventCallback('onSwipedown', [null, this.proxy]);\n }\n this.setState({ previousScrollY: currentScrollY });\n }\n this.notify('scroll', [event]);\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 renderWidget(props: WmPageContentProps) {\n const showScrollbar = (this.styles.root as any).scrollbarColor != 'transparent';\n \n return (props.scrollable || isWebPreviewMode()) ? (\n <View style={{height: '100%', width: '100%', backgroundColor: this._showSkeleton && this.styles.skeleton.root.backgroundColor ? this.styles.skeleton.root.backgroundColor : this.styles.root.backgroundColor}}>\n {this._background}\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = insets?.bottom || 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 <ScrollView \n testID={this.getTestId(\"page_content_scrollview\")}\n ref={this.scrollRef}\n contentContainerStyle={[this.styles.root, {backgroundColor: 'transparent'}]}\n showsVerticalScrollIndicator={showScrollbar}\n onScroll={this.handleScroll}\n alwaysBounceVertical={false}\n alwaysBounceHorizontal={false}\n bounces={false}\n scrollEventThrottle={48}>\n {props.children}\n </ScrollView>\n </KeyboardAvoidingView>\n )}}\n </SafeAreaInsetsContext.Consumer>\n </View> \n ) : (\n <View style={[this.styles.root,\n {backgroundColor: this._showSkeleton ?\n this.styles.skeleton.root.backgroundColor : \n this.styles.root.backgroundColor}]}>\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n const keyboardOffset = insets?.bottom || 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":[]}
@@ -3,24 +3,66 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
3
3
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
5
  import React from 'react';
6
- import { PanResponder, View } from 'react-native';
6
+ import { PanResponder, ScrollView, View } from 'react-native';
7
7
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
8
8
  import { DEFAULT_CLASS } from './page.styles';
9
+ import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
9
10
  export class WmPageState extends BaseComponentState {}
10
11
  export default class WmPage extends BaseComponent {
11
12
  constructor(props) {
12
13
  super(props, DEFAULT_CLASS);
14
+ _defineProperty(this, "scrollRef", void 0);
15
+ _defineProperty(this, "previousScrollPosition", 0);
13
16
  _defineProperty(this, "panResponder", PanResponder.create({
14
17
  onStartShouldSetPanResponderCapture: e => {
15
18
  this.notify('globaltouch', [e]);
16
19
  return false;
17
20
  }
18
21
  }));
22
+ _defineProperty(this, "onScroll", e => {
23
+ const scrollPosition = e.nativeEvent.contentOffset.y;
24
+ if (Math.abs(scrollPosition - this.previousScrollPosition) >= 8 && scrollPosition >= 0) {
25
+ if (scrollPosition > this.previousScrollPosition) {
26
+ e.scrollDirection = 1;
27
+ } else if (scrollPosition === this.previousScrollPosition) {
28
+ e.scrollDirection = 0;
29
+ } else {
30
+ e.scrollDirection = -1;
31
+ }
32
+ this.previousScrollPosition = scrollPosition;
33
+ this.notify('scroll', [e]);
34
+ }
35
+ });
36
+ this.scrollRef = /*#__PURE__*/React.createRef();
37
+ }
38
+ scrollTo(position) {
39
+ var _this$scrollRef;
40
+ (_this$scrollRef = this.scrollRef) === null || _this$scrollRef === void 0 || (_this$scrollRef = _this$scrollRef.current) === null || _this$scrollRef === void 0 || _this$scrollRef.scrollTo({
41
+ x: position.x,
42
+ y: position.y,
43
+ Animated: true
44
+ });
19
45
  }
20
46
  renderWidget(props) {
21
- return /*#__PURE__*/React.createElement(View, _extends({
22
- style: this.styles.root
23
- }, this.panResponder.panHandlers), this._background, props.children);
47
+ return /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, (insets = {
48
+ top: 0,
49
+ bottom: 0,
50
+ left: 0,
51
+ right: 0
52
+ }) => {
53
+ return props.scrollable ? /*#__PURE__*/React.createElement(ScrollView, _extends({
54
+ ref: this.scrollRef
55
+ }, this.panResponder.panHandlers, {
56
+ style: [{
57
+ width: '100%',
58
+ height: '100%'
59
+ }, this.styles.root],
60
+ onScroll: this.onScroll,
61
+ scrollEventThrottle: 16
62
+ }), this._background, props.children) : /*#__PURE__*/React.createElement(View, {
63
+ style: this.styles.root
64
+ }, this._background, props.children);
65
+ });
24
66
  }
25
67
  }
26
68
  //# sourceMappingURL=page.component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","PanResponder","View","BaseComponent","BaseComponentState","DEFAULT_CLASS","WmPageState","WmPage","constructor","props","_defineProperty","create","onStartShouldSetPanResponderCapture","e","notify","renderWidget","createElement","_extends","style","styles","root","panResponder","panHandlers","_background","children"],"sources":["page.component.tsx"],"sourcesContent":["import React from 'react';\nimport { PanResponder, View } from 'react-native';\n\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { FixedViewContainer } from '@wavemaker/app-rn-runtime/core/fixed-view.component';\n\nimport WmPageProps from './page.props';\nimport { DEFAULT_CLASS, WmPageStyles } from './page.styles';\nimport WmLottie from '../basic/lottie/lottie.component';\n\nexport class WmPageState extends BaseComponentState<WmPageProps> {}\n\nexport default class WmPage extends BaseComponent<WmPageProps, WmPageState, WmPageStyles> {\n\n panResponder = PanResponder.create({\n onStartShouldSetPanResponderCapture: (e) => {\n this.notify('globaltouch', [e]);\n return false;\n },\n });\n constructor(props: WmPageProps) {\n super(props, DEFAULT_CLASS, );\n }\n renderWidget(props: WmPageProps) {\n return (\n <View style={this.styles.root} {...this.panResponder.panHandlers}>\n {this._background}\n {props.children}\n </View>\n ); \n }\n}\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,IAAI,QAAQ,cAAc;AAEjD,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAIjG,SAASC,aAAa,QAAsB,eAAe;AAG3D,OAAO,MAAMC,WAAW,SAASF,kBAAkB,CAAc;AAEjE,eAAe,MAAMG,MAAM,SAASJ,aAAa,CAAyC;EAQxFK,WAAWA,CAACC,KAAkB,EAAE;IAC9B,KAAK,CAACA,KAAK,EAAEJ,aAAe,CAAC;IAACK,eAAA,uBAPjBT,YAAY,CAACU,MAAM,CAAC;MACjCC,mCAAmC,EAAGC,CAAC,IAAK;QAC1C,IAAI,CAACC,MAAM,CAAC,aAAa,EAAE,CAACD,CAAC,CAAC,CAAC;QAC/B,OAAO,KAAK;MACd;IACF,CAAC,CAAC;EAGF;EACAE,YAAYA,CAACN,KAAkB,EAAE;IAC/B,oBACIT,KAAA,CAAAgB,aAAA,CAACd,IAAI,EAAAe,QAAA;MAACC,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;IAAK,GAAK,IAAI,CAACC,YAAY,CAACC,WAAW,GAC7D,IAAI,CAACC,WAAW,EAChBd,KAAK,CAACe,QACH,CAAC;EAEb;AACF","ignoreList":[]}
1
+ {"version":3,"names":["React","PanResponder","ScrollView","View","BaseComponent","BaseComponentState","DEFAULT_CLASS","SafeAreaInsetsContext","WmPageState","WmPage","constructor","props","_defineProperty","create","onStartShouldSetPanResponderCapture","e","notify","scrollPosition","nativeEvent","contentOffset","y","Math","abs","previousScrollPosition","scrollDirection","scrollRef","createRef","scrollTo","position","_this$scrollRef","current","x","Animated","renderWidget","createElement","Consumer","insets","top","bottom","left","right","scrollable","_extends","ref","panResponder","panHandlers","style","width","height","styles","root","onScroll","scrollEventThrottle","_background","children"],"sources":["page.component.tsx"],"sourcesContent":["import React from 'react';\nimport { PanResponder, ScrollView, View } from 'react-native';\n\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmPageProps from './page.props';\nimport { DEFAULT_CLASS, WmPageStyles } from './page.styles';\nimport { SafeAreaInsetsContext } from 'react-native-safe-area-context';\n\nexport class WmPageState extends BaseComponentState<WmPageProps> {}\n\nexport default class WmPage extends BaseComponent<WmPageProps, WmPageState, WmPageStyles> {\n private scrollRef: React.RefObject<any>;\n private previousScrollPosition: number = 0;\n\n panResponder = PanResponder.create({\n onStartShouldSetPanResponderCapture: (e) => {\n this.notify('globaltouch', [e]);\n return false;\n },\n });\n constructor(props: WmPageProps) {\n super(props, DEFAULT_CLASS, );\n this.scrollRef = React.createRef();\n }\n\n private onScroll = (e: any)=>{\n const scrollPosition = e.nativeEvent.contentOffset.y;\n if(Math.abs(scrollPosition - this.previousScrollPosition) >= 8 && scrollPosition >=0){\n if (scrollPosition > this.previousScrollPosition) {\n e.scrollDirection = 1;\n } else if (scrollPosition === this.previousScrollPosition) {\n e.scrollDirection = 0;\n } else {\n e.scrollDirection = -1;\n }\n this.previousScrollPosition = scrollPosition;\n this.notify('scroll', [e]);\n }\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 renderWidget(props: WmPageProps) {\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n return props.scrollable ? \n <ScrollView\n ref={this.scrollRef}\n {...this.panResponder.panHandlers}\n style={[{ width:'100%', height:'100%' }, this.styles.root]}\n onScroll={this.onScroll}\n scrollEventThrottle={16}\n >\n {this._background}\n {props.children}\n </ScrollView> : \n <View style={this.styles.root}> \n {this._background}\n {props.children}\n </View>\n }}\n </SafeAreaInsetsContext.Consumer>\n ); \n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,12 @@
1
-
1
+ 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; }
2
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
+ 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); }
4
+ import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';
5
+ export default class WmPageProps extends BaseProps {
6
+ constructor(...args) {
7
+ super(...args);
8
+ _defineProperty(this, "children", []);
9
+ _defineProperty(this, "scrollable", false);
10
+ }
11
+ }
2
12
  //# sourceMappingURL=page.props.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["page.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { SkeletonAnimationProps } from '@wavemaker/app-rn-runtime/runtime/base-fragment.component';\n\nexport default interface WmPageProps extends BaseProps {\n children: any[]\n}"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":["BaseProps","WmPageProps","constructor","args","_defineProperty"],"sources":["page.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nexport default class WmPageProps extends BaseProps{\n children: any[] = [];\n scrollable: boolean = false;\n}"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AACzE,eAAe,MAAMC,WAAW,SAASD,SAAS;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,mBAC9B,EAAE;IAAAA,eAAA,qBACE,KAAK;EAAA;AAC7B","ignoreList":[]}
@@ -3,7 +3,7 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
3
3
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
4
4
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
5
5
  import React from 'react';
6
- import { Text, View, TouchableOpacity, Dimensions, Keyboard } from 'react-native';
6
+ import { Text, View, TouchableOpacity, Dimensions, Keyboard, Animated, Easing } from 'react-native';
7
7
  import { ThemeProvider } from '@wavemaker/app-rn-runtime/styles/theme';
8
8
  import { ModalConsumer } from '@wavemaker/app-rn-runtime/core/modal.service';
9
9
  import WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';
@@ -15,6 +15,9 @@ import Svg, { Path } from 'react-native-svg';
15
15
  import { getPathDown } from './curve';
16
16
  // import { scale } from 'react-native-size-scaling';
17
17
  import ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';
18
+ import { FixedView } from '@wavemaker/app-rn-runtime/core/fixed-view.component';
19
+ import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
20
+ import injector from '@wavemaker/app-rn-runtime/core/injector';
18
21
  const scale = n => n;
19
22
  class WmTabbarState extends BaseNavState {
20
23
  constructor(...args) {
@@ -29,6 +32,10 @@ export default class WmTabbar extends BaseNavComponent {
29
32
  super(props, DEFAULT_CLASS, new WmTabbarProps(), new WmTabbarState());
30
33
  _defineProperty(this, "tabbarHeight", 0);
31
34
  _defineProperty(this, "keyBoardShown", false);
35
+ _defineProperty(this, "destroyScrollListner", null);
36
+ _defineProperty(this, "translateY", new Animated.Value(0));
37
+ _defineProperty(this, "insets", null);
38
+ _defineProperty(this, "appConfig", injector.get('APP_CONFIG'));
32
39
  _defineProperty(this, "maxWidth", Dimensions.get("window").width);
33
40
  _defineProperty(this, "returnpathDown", void 0);
34
41
  this.cleanup.push(Keyboard.addListener('keyboardWillShow', () => {
@@ -40,6 +47,17 @@ export default class WmTabbar extends BaseNavComponent {
40
47
  this.forceUpdate();
41
48
  }).remove);
42
49
  }
50
+ onPropertyChange(name, $new, $old) {
51
+ super.onPropertyChange(name, $new, $old);
52
+ switch (name) {
53
+ case 'hideonscroll':
54
+ this.destroyScrollListner && this.destroyScrollListner();
55
+ if ($new) {
56
+ this.subscribeToPageScroll();
57
+ }
58
+ break;
59
+ }
60
+ }
43
61
  renderTabItem(item, testId, props, onSelect, floating = false) {
44
62
  const isActive = props.isActive && props.isActive(item);
45
63
  const getDisplayLabel = this.props.getDisplayExpression || (label => label);
@@ -78,7 +96,41 @@ export default class WmTabbar extends BaseNavComponent {
78
96
  isVisible() {
79
97
  return super.isVisible() && !this.keyBoardShown;
80
98
  }
81
- renderWidget(props) {
99
+ animateWithTiming(value, duratiion) {
100
+ Animated.timing(this.translateY, {
101
+ toValue: value,
102
+ easing: Easing.linear,
103
+ duration: duratiion,
104
+ useNativeDriver: true
105
+ }).start();
106
+ }
107
+ subscribeToPageScroll() {
108
+ this.destroyScrollListner = this.subscribe('scroll', e => {
109
+ var _this$getLayout, _this$insets;
110
+ const {
111
+ contentOffset,
112
+ layoutMeasurement,
113
+ contentSize
114
+ } = e.nativeEvent;
115
+ const scrollPosition = contentOffset.y;
116
+ const visibleContentHeight = layoutMeasurement.height;
117
+ const tabbarHeight = (_this$getLayout = this.getLayout()) === null || _this$getLayout === void 0 ? void 0 : _this$getLayout.height;
118
+ const endReached = scrollPosition + visibleContentHeight + tabbarHeight >= contentSize.height;
119
+ const bottomInsets = ((_this$insets = this.insets) === null || _this$insets === void 0 ? void 0 : _this$insets.bottom) || 0;
120
+ if (e.scrollDirection <= 0) {
121
+ this.animateWithTiming(0, 100);
122
+ } else {
123
+ this.animateWithTiming(tabbarHeight + bottomInsets, 100);
124
+ }
125
+ if (endReached) {
126
+ this.animateWithTiming(0, 0);
127
+ }
128
+ });
129
+ }
130
+ componentWillUnmount() {
131
+ this.destroyScrollListner && this.destroyScrollListner();
132
+ }
133
+ renderContent(props) {
82
134
  let max = 5;
83
135
  const tabItems = this.state.dataItems;
84
136
  const tabItemsLength = tabItems.length;
@@ -104,46 +156,89 @@ export default class WmTabbar extends BaseNavComponent {
104
156
  }
105
157
  max = max - 1;
106
158
  }
107
- return /*#__PURE__*/React.createElement(NavigationServiceConsumer, null, navigationService => /*#__PURE__*/React.createElement(View, {
108
- style: this.styles.root
109
- }, isClippedTabbar ? /*#__PURE__*/React.createElement(Svg, {
110
- width: this.maxWidth,
111
- height: scale(this.styles.root.height),
159
+ return /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, (insets = {
160
+ top: 0,
161
+ bottom: 0,
162
+ left: 0,
163
+ right: 0
164
+ }) => {
165
+ var _this$appConfig;
166
+ this.insets = insets;
167
+ const paddingBottomVal = this.styles.root.paddingBottom || this.styles.root.padding;
168
+ const statusBarCustomisation = (_this$appConfig = this.appConfig) === null || _this$appConfig === void 0 || (_this$appConfig = _this$appConfig.preferences) === null || _this$appConfig === void 0 ? void 0 : _this$appConfig.statusbarStyles;
169
+ const isFullScreenMode = !!(statusBarCustomisation !== null && statusBarCustomisation !== void 0 && statusBarCustomisation.translucent);
170
+ const stylesWithFs = isFullScreenMode ? {
171
+ height: this.styles.root.height + ((insets === null || insets === void 0 ? void 0 : insets.bottom) || 0),
172
+ paddingBottom: (paddingBottomVal || 0) + ((insets === null || insets === void 0 ? void 0 : insets.bottom) || 0)
173
+ } : {};
174
+ return /*#__PURE__*/React.createElement(NavigationServiceConsumer, null, navigationService => /*#__PURE__*/React.createElement(View, {
175
+ style: [this.styles.root, stylesWithFs],
176
+ ref: ref => {
177
+ this.baseView = ref;
178
+ },
179
+ onLayout: event => this.handleLayout(event)
180
+ }, isClippedTabbar ? /*#__PURE__*/React.createElement(Svg, {
181
+ width: this.maxWidth,
182
+ height: scale(this.styles.root.height),
183
+ style: {
184
+ zIndex: -1,
185
+ position: 'absolute',
186
+ backgroundColor: ThemeVariables.INSTANCE.transparent
187
+ }
188
+ }, /*#__PURE__*/React.createElement(Path, {
189
+ fill: ThemeVariables.INSTANCE.tabbarBackgroundColor,
190
+ d: this.returnpathDown
191
+ })) : /*#__PURE__*/React.createElement(React.Fragment, null), /*#__PURE__*/React.createElement(ModalConsumer, null, modalService => {
192
+ if (this.state.showMore) {
193
+ modalService.showModal(this.prepareModalOptions(/*#__PURE__*/React.createElement(ThemeProvider, {
194
+ value: this.theme
195
+ }, /*#__PURE__*/React.createElement(View, {
196
+ style: this.styles.moreMenu
197
+ }, moreItems.map((a, i) => /*#__PURE__*/React.createElement(View, {
198
+ key: i,
199
+ style: this.styles.moreMenuRow
200
+ }, a.map((item, index) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService)))))))));
201
+ } else {
202
+ modalService.hideModal(this.state.modalOptions);
203
+ }
204
+ return null;
205
+ }), /*#__PURE__*/React.createElement(View, {
206
+ style: this.styles.menu,
207
+ onLayout: e => {
208
+ this.tabbarHeight = e.nativeEvent.layout.height;
209
+ }
210
+ }, tabItems.filter((item, i) => i < max).map((item, i) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService), item.floating)), tabItems.length > max && this.renderTabItem({
211
+ label: props.morebuttonlabel,
212
+ icon: props.morebuttoniconclass
213
+ }, 6666 + '', props, () => {
214
+ this.updateState({
215
+ showMore: !this.state.showMore
216
+ });
217
+ }))));
218
+ });
219
+ }
220
+ renderWidget(props) {
221
+ if (props.hideonscroll) this.isFixed = true;
222
+ const animateStyle = props.hideonscroll ? {
223
+ transform: [{
224
+ translateY: this.translateY
225
+ }]
226
+ } : {};
227
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FixedView, {
112
228
  style: {
113
- zIndex: -1,
114
- position: 'absolute',
115
- backgroundColor: ThemeVariables.INSTANCE.transparent
116
- }
117
- }, /*#__PURE__*/React.createElement(Path, {
118
- fill: ThemeVariables.INSTANCE.tabbarBackgroundColor,
119
- d: this.returnpathDown
120
- })) : /*#__PURE__*/React.createElement(React.Fragment, null), /*#__PURE__*/React.createElement(ModalConsumer, null, modalService => {
121
- if (this.state.showMore) {
122
- modalService.showModal(this.prepareModalOptions(/*#__PURE__*/React.createElement(ThemeProvider, {
123
- value: this.theme
124
- }, /*#__PURE__*/React.createElement(View, {
125
- style: this.styles.moreMenu
126
- }, moreItems.map((a, i) => /*#__PURE__*/React.createElement(View, {
127
- key: i,
128
- style: this.styles.moreMenuRow
129
- }, a.map((item, index) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService)))))))));
130
- } else {
131
- modalService.hideModal(this.state.modalOptions);
132
- }
133
- return null;
134
- }), /*#__PURE__*/React.createElement(View, {
135
- style: this.styles.menu,
136
- onLayout: e => {
137
- this.tabbarHeight = e.nativeEvent.layout.height;
229
+ ...{
230
+ bottom: 0,
231
+ width: '100%'
232
+ },
233
+ ...animateStyle
234
+ },
235
+ theme: this.theme,
236
+ animated: props.hideonscroll || false
237
+ }, this.renderContent(props)), /*#__PURE__*/React.createElement(View, {
238
+ style: {
239
+ opacity: 0
138
240
  }
139
- }, tabItems.filter((item, i) => i < max).map((item, i) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService), item.floating)), tabItems.length > max && this.renderTabItem({
140
- label: props.morebuttonlabel,
141
- icon: props.morebuttoniconclass
142
- }, 6666 + '', props, () => {
143
- this.updateState({
144
- showMore: !this.state.showMore
145
- });
146
- }))));
241
+ }, this.renderContent(props)));
147
242
  }
148
243
  }
149
244
  //# sourceMappingURL=tabbar.component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","Text","View","TouchableOpacity","Dimensions","Keyboard","ThemeProvider","ModalConsumer","WmIcon","NavigationServiceConsumer","BaseNavComponent","BaseNavState","WmTabbarProps","DEFAULT_CLASS","Svg","Path","getPathDown","ThemeVariables","scale","n","WmTabbarState","constructor","args","_defineProperty","WmTabbar","props","get","width","cleanup","push","addListener","keyBoardShown","forceUpdate","remove","renderTabItem","item","testId","onSelect","floating","isActive","getDisplayLabel","getDisplayExpression","label","increasedGap","Number","indexBeforeMid","state","dataItems","length","classname","indexOf","styles","tabItem","paddingRight","createElement","_extends","getTestPropsForAction","style","centerHubItem","key","onPress","activeTabItem","theme","mergeStyle","tabIcon","centerHubIcon","activeTabIcon","iconclass","icon","tabLabel","centerHubLabel","activeTabLabel","numberOfLines","onItemSelect","navigationService","link","openUrl","invokeEventCallback","proxy","prepareModalOptions","content","o","modalOptions","modalStyle","bottom","tabbarHeight","contentStyle","modalContent","isVisible","renderWidget","max","tabItems","tabItemsLength","isClippedTabbar","middleIndex","Math","floor","returnpathDown","maxWidth","root","height","moreItems","moreItemsCount","ceil","j","i","row","zIndex","position","backgroundColor","INSTANCE","transparent","fill","tabbarBackgroundColor","d","Fragment","modalService","showMore","showModal","value","moreMenu","map","a","moreMenuRow","index","hideModal","menu","onLayout","e","nativeEvent","layout","filter","morebuttonlabel","morebuttoniconclass","updateState"],"sources":["tabbar.component.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Text, View, TouchableOpacity, Dimensions, Keyboard } from 'react-native';\n\nimport { ThemeProvider } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { ModalConsumer, ModalOptions, ModalService } from '@wavemaker/app-rn-runtime/core/modal.service';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker/app-rn-runtime/core/navigation.service';\nimport { BaseNavProps } from '@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.props';\nimport { BaseNavComponent, BaseNavState, NavigationDataItem } from '@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.component';\n\nimport WmTabbarProps from './tabbar.props';\nimport { DEFAULT_CLASS, WmTabbarStyles } from './tabbar.styles';\nimport Svg, { Path } from 'react-native-svg';\nimport { getPathDown } from './curve';\n// import { scale } from 'react-native-size-scaling';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\n\ninterface TabDataItem extends NavigationDataItem {\n floating: boolean;\n indexBeforeMid: number;\n}\n\nconst scale = (n: number) => n;\n\nclass WmTabbarState<T extends BaseNavProps> extends BaseNavState<T> {\n showMore = false;\n modalOptions = {} as ModalOptions;\n dataItems: TabDataItem[] = [];\n}\n\nexport default class WmTabbar extends BaseNavComponent<WmTabbarProps, WmTabbarState<WmTabbarProps>, WmTabbarStyles> {\n\n private tabbarHeight = 0;\n private keyBoardShown = false;\n\n constructor(props: WmTabbarProps) {\n super(props, DEFAULT_CLASS, new WmTabbarProps(), new WmTabbarState());\n this.cleanup.push(Keyboard.addListener('keyboardWillShow', () => {\n this.keyBoardShown = true;\n this.forceUpdate();\n }).remove);\n this.cleanup.push(Keyboard.addListener('keyboardWillHide', () => {\n this.keyBoardShown = false;\n this.forceUpdate();\n }).remove);\n }\n\n private maxWidth = Dimensions.get(\"window\").width; \n private returnpathDown: any;\n\n renderTabItem(item: TabDataItem, testId: string, props: WmTabbarProps, onSelect: Function, floating = false) {\n\n const isActive = props.isActive && props.isActive(item);\n const getDisplayLabel = this.props.getDisplayExpression || ((label: string) => label);\n let increasedGap = Number(testId) === item?.indexBeforeMid && (this.state.dataItems.length % 2!=0) && ((props.classname || '').indexOf('clipped-tabbar') >= 0)\n ? [this.styles.tabItem, { paddingRight: 70 }]\n : [this.styles.tabItem];\n \n return (\n <TouchableOpacity \n {...this.getTestPropsForAction('item' + testId)}\n style={[increasedGap, floating? this.styles.centerHubItem: {}]}\n key={`${item.label}_${testId}`}\n onPress={() => onSelect && onSelect()}>\n <View key={item.key}>\n <View style={[isActive && !floating ? this.styles.activeTabItem : {}]}>\n <WmIcon\n styles={this.theme.mergeStyle({}, this.styles.tabIcon, floating? this.styles.centerHubIcon: {}, isActive ? this.styles.activeTabIcon : {})}\n iconclass={item.icon}\n ></WmIcon>\n </View>\n </View>\n <Text style={[this.styles.tabLabel, floating? this.styles.centerHubLabel: {}, isActive ? this.styles.activeTabLabel : {}]} numberOfLines={1}>\n {getDisplayLabel(item.label)}\n </Text>\n </TouchableOpacity>\n );\n }\n \n onItemSelect(item: NavigationDataItem, navigationService: NavigationService) {\n item.link && navigationService.openUrl(item.link);\n this.invokeEventCallback('onSelect', [null, this.proxy, item]);\n }\n\n prepareModalOptions(content: ReactNode) {\n const o = this.state.modalOptions;\n o.content = content;\n o.modalStyle = {\n bottom: this.tabbarHeight\n };\n o.contentStyle = this.styles.modalContent; \n return o;\n }\n\n isVisible(): boolean {\n return super.isVisible() && !this.keyBoardShown;\n }\n\n renderWidget(props: WmTabbarProps) {\n let max = 5;\n const tabItems = this.state.dataItems;\n const tabItemsLength = tabItems.length;\n const isClippedTabbar = ((props.classname || '').indexOf('clipped-tabbar') >= 0) && (tabItemsLength % 2 !== 0);\n if (isClippedTabbar && tabItemsLength % 2 !== 0) {\n const middleIndex = Math.floor(tabItemsLength / 2);\n tabItems[middleIndex]['floating'] = true;\n tabItems[middleIndex - 1]['indexBeforeMid'] = middleIndex-1;\n }\n this.returnpathDown = getPathDown(this.maxWidth, 65 ,60,this.styles.root.height as number);\n const moreItems = [] as any[][];\n if (tabItems.length > max) {\n const moreItemsCount = Math.ceil((tabItems.length + 1 - max)/ max) * max;\n let j = 0;\n for (let i = max-1; i < moreItemsCount;) {\n const row = [];\n for (let j = 0; j < max; j++) {\n row[j] = tabItems[i++] || {key: 'tabItem' + i} as TabDataItem;\n }\n moreItems.push(row);\n }\n max = max - 1;\n }\n return (\n <NavigationServiceConsumer>\n {(navigationService) =>\n (<View style={this.styles.root}>\n {isClippedTabbar ? (\n <Svg width={this.maxWidth} height={scale(this.styles.root.height as number)} style={{zIndex: -1,position: 'absolute',backgroundColor: ThemeVariables.INSTANCE.transparent}}>\n <Path fill={ThemeVariables.INSTANCE.tabbarBackgroundColor} {...{ d: this.returnpathDown }}/>\n </Svg>\n ): <></>} \n <ModalConsumer>\n {(modalService: ModalService) => {\n if (this.state.showMore) {\n modalService.showModal(this.prepareModalOptions((\n <ThemeProvider value={this.theme} >\n <View style={this.styles.moreMenu}>\n {moreItems.map((a, i) =>\n (<View key={i} style={this.styles.moreMenuRow}>\n {a.map((item, index) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService)))}\n </View>)\n )}\n </View>\n </ThemeProvider>)));\n } else {\n modalService.hideModal(this.state.modalOptions);\n }\n return null;\n }}\n </ModalConsumer>\n <View style={this.styles.menu}\n onLayout={e => { this.tabbarHeight = e.nativeEvent.layout.height}}> \n {tabItems.filter((item, i) => i < max)\n .map((item, i) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService), item.floating))}\n {tabItems.length > max && (\n this.renderTabItem({\n label: props.morebuttonlabel,\n icon: props.morebuttoniconclass\n } as TabDataItem, 6666 +'', props, () => {\n this.updateState({showMore: !this.state.showMore} as WmTabbarState<WmTabbarProps>);\n })\n )}\n </View>\n </View>)}\n </NavigationServiceConsumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Text","View","TouchableOpacity","Dimensions","Keyboard","Animated","Easing","ThemeProvider","ModalConsumer","WmIcon","NavigationServiceConsumer","BaseNavComponent","BaseNavState","WmTabbarProps","DEFAULT_CLASS","Svg","Path","getPathDown","ThemeVariables","FixedView","SafeAreaInsetsContext","injector","scale","n","WmTabbarState","constructor","args","_defineProperty","WmTabbar","props","Value","get","width","cleanup","push","addListener","keyBoardShown","forceUpdate","remove","onPropertyChange","name","$new","$old","destroyScrollListner","subscribeToPageScroll","renderTabItem","item","testId","onSelect","floating","isActive","getDisplayLabel","getDisplayExpression","label","increasedGap","Number","indexBeforeMid","state","dataItems","length","classname","indexOf","styles","tabItem","paddingRight","createElement","_extends","getTestPropsForAction","style","centerHubItem","key","onPress","activeTabItem","theme","mergeStyle","tabIcon","centerHubIcon","activeTabIcon","iconclass","icon","tabLabel","centerHubLabel","activeTabLabel","numberOfLines","onItemSelect","navigationService","link","openUrl","invokeEventCallback","proxy","prepareModalOptions","content","o","modalOptions","modalStyle","bottom","tabbarHeight","contentStyle","modalContent","isVisible","animateWithTiming","value","duratiion","timing","translateY","toValue","easing","linear","duration","useNativeDriver","start","subscribe","e","_this$getLayout","_this$insets","contentOffset","layoutMeasurement","contentSize","nativeEvent","scrollPosition","y","visibleContentHeight","height","getLayout","endReached","bottomInsets","insets","scrollDirection","componentWillUnmount","renderContent","max","tabItems","tabItemsLength","isClippedTabbar","middleIndex","Math","floor","returnpathDown","maxWidth","root","moreItems","moreItemsCount","ceil","j","i","row","Consumer","top","left","right","_this$appConfig","paddingBottomVal","paddingBottom","padding","statusBarCustomisation","appConfig","preferences","statusbarStyles","isFullScreenMode","translucent","stylesWithFs","ref","baseView","onLayout","event","handleLayout","zIndex","position","backgroundColor","INSTANCE","transparent","fill","tabbarBackgroundColor","d","Fragment","modalService","showMore","showModal","moreMenu","map","a","moreMenuRow","index","hideModal","menu","layout","filter","morebuttonlabel","morebuttoniconclass","updateState","renderWidget","hideonscroll","isFixed","animateStyle","transform","animated","opacity"],"sources":["tabbar.component.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Text, View, TouchableOpacity, Dimensions, Keyboard, Animated, Easing, LayoutChangeEvent} from 'react-native';\nimport { ThemeProvider } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { ModalConsumer, ModalOptions, ModalService } from '@wavemaker/app-rn-runtime/core/modal.service';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker/app-rn-runtime/core/navigation.service';\nimport { BaseNavProps } from '@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.props';\nimport { BaseNavComponent, BaseNavState, NavigationDataItem } from '@wavemaker/app-rn-runtime/components/navigation/basenav/basenav.component';\n\nimport WmTabbarProps from './tabbar.props';\nimport { DEFAULT_CLASS, WmTabbarStyles } from './tabbar.styles';\nimport Svg, { Path } from 'react-native-svg';\nimport { getPathDown } from './curve';\n// import { scale } from 'react-native-size-scaling';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport { FixedView } from '@wavemaker/app-rn-runtime/core/fixed-view.component';\nimport { EdgeInsets, SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\ninterface TabDataItem extends NavigationDataItem {\n floating: boolean;\n indexBeforeMid: number;\n}\n\nconst scale = (n: number) => n;\n\nclass WmTabbarState<T extends BaseNavProps> extends BaseNavState<T> {\n showMore = false;\n modalOptions = {} as ModalOptions;\n dataItems: TabDataItem[] = [];\n}\n\nexport default class WmTabbar extends BaseNavComponent<WmTabbarProps, WmTabbarState<WmTabbarProps>, WmTabbarStyles> {\n\n private tabbarHeight = 0;\n private keyBoardShown = false;\n private destroyScrollListner: Function = null as any;\n private translateY = new Animated.Value(0);\n private insets: EdgeInsets | null = null;\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n\n constructor(props: WmTabbarProps) {\n super(props, DEFAULT_CLASS, new WmTabbarProps(), new WmTabbarState());\n this.cleanup.push(Keyboard.addListener('keyboardWillShow', () => {\n this.keyBoardShown = true;\n this.forceUpdate();\n }).remove);\n this.cleanup.push(Keyboard.addListener('keyboardWillHide', () => {\n this.keyBoardShown = false;\n this.forceUpdate();\n }).remove);\n }\n\n private maxWidth = Dimensions.get(\"window\").width; \n private returnpathDown: any;\n\n onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch(name){\n case 'hideonscroll':\n this.destroyScrollListner && this.destroyScrollListner();\n if($new) {\n this.subscribeToPageScroll();\n }\n break;\n }\n }\n\n renderTabItem(item: TabDataItem, testId: string, props: WmTabbarProps, onSelect: Function, floating = false) {\n\n const isActive = props.isActive && props.isActive(item);\n const getDisplayLabel = this.props.getDisplayExpression || ((label: string) => label);\n let increasedGap = Number(testId) === item?.indexBeforeMid && (this.state.dataItems.length % 2!=0) && ((props.classname || '').indexOf('clipped-tabbar') >= 0)\n ? [this.styles.tabItem, { paddingRight: 70 }]\n : [this.styles.tabItem];\n \n return (\n <TouchableOpacity \n {...this.getTestPropsForAction('item' + testId)}\n style={[increasedGap, floating? this.styles.centerHubItem: {}]}\n key={`${item.label}_${testId}`}\n onPress={() => onSelect && onSelect()}>\n <View key={item.key}>\n <View style={[isActive && !floating ? this.styles.activeTabItem : {}]}>\n <WmIcon\n styles={this.theme.mergeStyle({}, this.styles.tabIcon, floating? this.styles.centerHubIcon: {}, isActive ? this.styles.activeTabIcon : {})}\n iconclass={item.icon}\n ></WmIcon>\n </View>\n </View>\n <Text style={[this.styles.tabLabel, floating? this.styles.centerHubLabel: {}, isActive ? this.styles.activeTabLabel : {}]} numberOfLines={1}>\n {getDisplayLabel(item.label)}\n </Text>\n </TouchableOpacity>\n );\n }\n \n onItemSelect(item: NavigationDataItem, navigationService: NavigationService) {\n item.link && navigationService.openUrl(item.link);\n this.invokeEventCallback('onSelect', [null, this.proxy, item]);\n }\n\n prepareModalOptions(content: ReactNode) {\n const o = this.state.modalOptions;\n o.content = content;\n o.modalStyle = {\n bottom: this.tabbarHeight\n };\n o.contentStyle = this.styles.modalContent; \n return o;\n }\n\n isVisible(): boolean {\n return super.isVisible() && !this.keyBoardShown;\n }\n\n animateWithTiming(value: number, duratiion: number): void {\n Animated.timing(this.translateY, {\n toValue: value, \n easing: Easing.linear,\n duration: duratiion, \n useNativeDriver: true\n }).start()\n }\n\n subscribeToPageScroll(){\n this.destroyScrollListner = this.subscribe('scroll', (e: any)=>{\n const { contentOffset, layoutMeasurement, contentSize } = e.nativeEvent ;\n const scrollPosition = contentOffset.y ;\n const visibleContentHeight = layoutMeasurement.height ;\n const tabbarHeight = this.getLayout()?.height ;\n const endReached = (scrollPosition + visibleContentHeight + tabbarHeight ) >= contentSize.height ;\n const bottomInsets = this.insets?.bottom || 0\n if(e.scrollDirection <= 0){\n this.animateWithTiming(0, 100)\n }else {\n this.animateWithTiming(tabbarHeight + bottomInsets, 100)\n }\n if(endReached){\n this.animateWithTiming(0, 0)\n }\n })\n }\n\n componentWillUnmount(): void {\n this.destroyScrollListner && this.destroyScrollListner();\n }\n\n renderContent(props: WmTabbarProps){\n let max = 5;\n const tabItems = this.state.dataItems;\n const tabItemsLength = tabItems.length;\n const isClippedTabbar = ((props.classname || '').indexOf('clipped-tabbar') >= 0) && (tabItemsLength % 2 !== 0);\n if (isClippedTabbar && tabItemsLength % 2 !== 0) {\n const middleIndex = Math.floor(tabItemsLength / 2);\n tabItems[middleIndex]['floating'] = true;\n tabItems[middleIndex - 1]['indexBeforeMid'] = middleIndex-1;\n }\n this.returnpathDown = getPathDown(this.maxWidth, 65 ,60,this.styles.root.height as number);\n const moreItems = [] as any[][];\n if (tabItems.length > max) {\n const moreItemsCount = Math.ceil((tabItems.length + 1 - max)/ max) * max;\n let j = 0;\n for (let i = max-1; i < moreItemsCount;) {\n const row = [];\n for (let j = 0; j < max; j++) {\n row[j] = tabItems[i++] || {key: 'tabItem' + i} as TabDataItem;\n }\n moreItems.push(row);\n }\n max = max - 1;\n }\n return (\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n this.insets = insets;\n const paddingBottomVal = this.styles.root.paddingBottom || this.styles.root.padding;\n const statusBarCustomisation = this.appConfig?.preferences?.statusbarStyles;\n const isFullScreenMode = !!statusBarCustomisation?.translucent;\n const stylesWithFs = isFullScreenMode ? {height: this.styles.root.height as number + (insets?.bottom || 0) as number, \n paddingBottom: (paddingBottomVal || 0) as number + (insets?.bottom || 0) as number} : {}\n return (\n <NavigationServiceConsumer>\n {(navigationService) =>(\n <View style={[this.styles.root, stylesWithFs]} \n ref={(ref)=> {this.baseView = ref as any}}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)} \n >\n {isClippedTabbar ? (\n <Svg width={this.maxWidth} height={scale(this.styles.root.height as number)} style={{zIndex: -1,position: 'absolute',backgroundColor: ThemeVariables.INSTANCE.transparent}}>\n <Path fill={ThemeVariables.INSTANCE.tabbarBackgroundColor} {...{ d: this.returnpathDown }}/>\n </Svg>\n ): <></>} \n <ModalConsumer>\n {(modalService: ModalService) => {\n if (this.state.showMore) {\n modalService.showModal(this.prepareModalOptions((\n <ThemeProvider value={this.theme} >\n <View style={this.styles.moreMenu}>\n {moreItems.map((a, i) =>\n (<View key={i} style={this.styles.moreMenuRow}>\n {a.map((item, index) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService)))}\n </View>)\n )}\n </View>\n </ThemeProvider>)));\n } else {\n modalService.hideModal(this.state.modalOptions);\n }\n return null;\n }}\n </ModalConsumer>\n <View style={this.styles.menu}\n onLayout={e => { this.tabbarHeight = e.nativeEvent.layout.height}}> \n {tabItems.filter((item, i) => i < max)\n .map((item, i) => this.renderTabItem(item, i + '', props, () => this.onItemSelect(item, navigationService), item.floating))}\n {tabItems.length > max && (\n this.renderTabItem({\n label: props.morebuttonlabel,\n icon: props.morebuttoniconclass\n } as TabDataItem, 6666 +'', props, () => {\n this.updateState({showMore: !this.state.showMore} as WmTabbarState<WmTabbarProps>);\n })\n )}\n </View>\n </View>)}\n </NavigationServiceConsumer>\n )}}\n </SafeAreaInsetsContext.Consumer>\n )\n }\n\n renderWidget(props: WmTabbarProps) {\n if(props.hideonscroll) this.isFixed = true;\n const animateStyle = props.hideonscroll ? {transform: [{translateY: this.translateY}]} : {};\n return <>\n <FixedView \n style={{...{bottom: 0, width:'100%'}, ...animateStyle}} \n theme={this.theme}\n animated={props.hideonscroll || false}>\n {this.renderContent(props)}\n </FixedView>\n <View style={{ opacity: 0}}>\n {this.renderContent(props)}\n </View>\n </>\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -23,6 +23,7 @@ export default class WmTabbarProps extends BaseNavProps {
23
23
  'label': 'Settings',
24
24
  'icon': 'wm-sl-r sl-settings'
25
25
  }]);
26
+ _defineProperty(this, "hideonscroll", false);
26
27
  }
27
28
  }
28
29
  //# sourceMappingURL=tabbar.props.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseNavProps","WmTabbarProps","constructor","args","_defineProperty","item"],"sources":["tabbar.props.ts"],"sourcesContent":["import { BaseNavProps } from '../../navigation/basenav/basenav.props';\nimport WmTabbar from './tabbar.component';\n\nexport default class WmTabbarProps extends BaseNavProps {\n morebuttoniconclass? = 'wi wi-more-horiz';\n morebuttonlabel? = 'more';\n itemchildren?: string = 'children';\n isActive? = (item: any) => false;\n onSelect? : (event: any, widget: WmTabbar) => any;\n dataset?: any = [{\n 'label' : 'Home',\n 'icon' : 'wm-sl-r sl-home'\n },{\n 'label' : 'Analytics',\n 'icon' : 'wm-sl-r sl-graph-ascend'\n },{\n 'label' : 'Alerts',\n 'icon' : 'wm-sl-r sl-alarm-bell'\n },{\n 'label' : 'Settings',\n 'icon' : 'wm-sl-r sl-settings'\n }]\n}\n"],"mappings":";;;AAAA,SAASA,YAAY,QAAQ,wCAAwC;AAGrE,eAAe,MAAMC,aAAa,SAASD,YAAY,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,8BAC/B,kBAAkB;IAAAA,eAAA,0BACtB,MAAM;IAAAA,eAAA,uBACD,UAAU;IAAAA,eAAA,mBACrBC,IAAS,IAAK,KAAK;IAAAD,eAAA;IAAAA,eAAA,kBAEhB,CAAC;MACb,OAAO,EAAG,MAAM;MAChB,MAAM,EAAI;IACZ,CAAC,EAAC;MACA,OAAO,EAAG,WAAW;MACrB,MAAM,EAAI;IACZ,CAAC,EAAC;MACA,OAAO,EAAG,QAAQ;MAClB,MAAM,EAAI;IACZ,CAAC,EAAC;MACA,OAAO,EAAG,UAAU;MACpB,MAAM,EAAI;IACZ,CAAC,CAAC;EAAA;AACN","ignoreList":[]}
1
+ {"version":3,"names":["BaseNavProps","WmTabbarProps","constructor","args","_defineProperty","item"],"sources":["tabbar.props.ts"],"sourcesContent":["import { BaseNavProps } from '../../navigation/basenav/basenav.props';\nimport WmTabbar from './tabbar.component';\n\nexport default class WmTabbarProps extends BaseNavProps {\n morebuttoniconclass? = 'wi wi-more-horiz';\n morebuttonlabel? = 'more';\n itemchildren?: string = 'children';\n isActive? = (item: any) => false;\n onSelect? : (event: any, widget: WmTabbar) => any;\n dataset?: any = [{\n 'label' : 'Home',\n 'icon' : 'wm-sl-r sl-home'\n },{\n 'label' : 'Analytics',\n 'icon' : 'wm-sl-r sl-graph-ascend'\n },{\n 'label' : 'Alerts',\n 'icon' : 'wm-sl-r sl-alarm-bell'\n },{\n 'label' : 'Settings',\n 'icon' : 'wm-sl-r sl-settings'\n }];\n hideonscroll: boolean = false;\n}\n"],"mappings":";;;AAAA,SAASA,YAAY,QAAQ,wCAAwC;AAGrE,eAAe,MAAMC,aAAa,SAASD,YAAY,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,8BAC/B,kBAAkB;IAAAA,eAAA,0BACtB,MAAM;IAAAA,eAAA,uBACD,UAAU;IAAAA,eAAA,mBACrBC,IAAS,IAAK,KAAK;IAAAD,eAAA;IAAAA,eAAA,kBAEhB,CAAC;MACb,OAAO,EAAG,MAAM;MAChB,MAAM,EAAI;IACZ,CAAC,EAAC;MACA,OAAO,EAAG,WAAW;MACrB,MAAM,EAAI;IACZ,CAAC,EAAC;MACA,OAAO,EAAG,QAAQ;MAClB,MAAM,EAAI;IACZ,CAAC,EAAC;MACA,OAAO,EAAG,UAAU;MACpB,MAAM,EAAI;IACd,CAAC,CAAC;IAAAA,eAAA,uBACsB,KAAK;EAAA;AAC/B","ignoreList":[]}