@wavemaker-ai/app-rn-runtime 1.0.0-rc.647712 → 12.0.0-rc.335
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/basic/icon/icon.component.js +8 -8
- package/components/basic/icon/icon.component.js.map +1 -1
- package/components/page/tabbar/tabbar.component.js +32 -2
- package/components/page/tabbar/tabbar.component.js.map +1 -1
- package/npm-shrinkwrap.json +293 -287
- package/package-lock.json +293 -287
- package/package.json +2 -2
|
@@ -136,9 +136,9 @@ export default class WmIcon extends BaseComponent {
|
|
|
136
136
|
if (iconheight) height = iconheight;else if (iconwidth) height = iconwidth;else height = ((_this$styles$image2 = this.styles.image) === null || _this$styles$image2 === void 0 ? void 0 : _this$styles$image2.height) || 12;
|
|
137
137
|
const SvgComponent = typeof iconSrc === 'function' ? iconSrc : iconSrc && typeof iconSrc === 'object' && typeof (iconSrc === null || iconSrc === void 0 ? void 0 : iconSrc.default) === 'function' ? iconSrc.default : null;
|
|
138
138
|
if (SvgComponent) {
|
|
139
|
-
var _this$styles$root, _this$styles$text, _this$styles$
|
|
140
|
-
const color = ((_this$styles$root = this.styles.root) === null || _this$styles$root === void 0 ? void 0 : _this$styles$root.color) || ((_this$styles$text = this.styles.text) === null || _this$styles$text === void 0 ? void 0 : _this$styles$text.color);
|
|
141
|
-
const size = props.iconsize || ((_this$styles$
|
|
139
|
+
var _this$styles$icon, _this$styles$root, _this$styles$text, _this$styles$icon2, _this$styles$root2, _this$styles$text2;
|
|
140
|
+
const color = ((_this$styles$icon = this.styles.icon) === null || _this$styles$icon === void 0 ? void 0 : _this$styles$icon.color) || ((_this$styles$root = this.styles.root) === null || _this$styles$root === void 0 ? void 0 : _this$styles$root.color) || ((_this$styles$text = this.styles.text) === null || _this$styles$text === void 0 ? void 0 : _this$styles$text.color);
|
|
141
|
+
const size = props.iconsize || ((_this$styles$icon2 = this.styles.icon) === null || _this$styles$icon2 === void 0 ? void 0 : _this$styles$icon2.fontSize) || ((_this$styles$root2 = this.styles.root) === null || _this$styles$root2 === void 0 ? void 0 : _this$styles$root2.fontSize) || ((_this$styles$text2 = this.styles.text) === null || _this$styles$text2 === void 0 ? void 0 : _this$styles$text2.fontSize) || width;
|
|
142
142
|
return /*#__PURE__*/React.createElement(SvgComponent, {
|
|
143
143
|
width: size,
|
|
144
144
|
height: size,
|
|
@@ -147,9 +147,9 @@ export default class WmIcon extends BaseComponent {
|
|
|
147
147
|
}
|
|
148
148
|
const isSvgUrl = typeof iconSrc === 'string' && (((_props$iconurl = props.iconurl) === null || _props$iconurl === void 0 ? void 0 : _props$iconurl.toLowerCase().endsWith('.svg')) || iconSrc.toLowerCase().endsWith('.svg'));
|
|
149
149
|
if (isSvgUrl) {
|
|
150
|
-
var _this$styles$root3, _this$styles$text3, _this$styles$
|
|
151
|
-
const color = ((_this$styles$root3 = this.styles.root) === null || _this$styles$root3 === void 0 ? void 0 : _this$styles$root3.color) || ((_this$styles$text3 = this.styles.text) === null || _this$styles$text3 === void 0 ? void 0 : _this$styles$text3.color);
|
|
152
|
-
const size = props.iconsize || ((_this$styles$
|
|
150
|
+
var _this$styles$icon3, _this$styles$root3, _this$styles$text3, _this$styles$icon4, _this$styles$root4, _this$styles$text4;
|
|
151
|
+
const color = ((_this$styles$icon3 = this.styles.icon) === null || _this$styles$icon3 === void 0 ? void 0 : _this$styles$icon3.color) || ((_this$styles$root3 = this.styles.root) === null || _this$styles$root3 === void 0 ? void 0 : _this$styles$root3.color) || ((_this$styles$text3 = this.styles.text) === null || _this$styles$text3 === void 0 ? void 0 : _this$styles$text3.color);
|
|
152
|
+
const size = props.iconsize || ((_this$styles$icon4 = this.styles.icon) === null || _this$styles$icon4 === void 0 ? void 0 : _this$styles$icon4.fontSize) || ((_this$styles$root4 = this.styles.root) === null || _this$styles$root4 === void 0 ? void 0 : _this$styles$root4.fontSize) || ((_this$styles$text4 = this.styles.text) === null || _this$styles$text4 === void 0 ? void 0 : _this$styles$text4.fontSize) || width;
|
|
153
153
|
return /*#__PURE__*/React.createElement(SvgUrlIcon, {
|
|
154
154
|
uri: iconSrc,
|
|
155
155
|
width: size,
|
|
@@ -222,13 +222,13 @@ export default class WmIcon extends BaseComponent {
|
|
|
222
222
|
size: iconSize
|
|
223
223
|
}, this.getTestProps('icon')), customIcon);
|
|
224
224
|
} else if (props.show && iconDef) {
|
|
225
|
-
var _this$styles$
|
|
225
|
+
var _this$styles$icon5;
|
|
226
226
|
let WMCustomIcon = WavIcon;
|
|
227
227
|
if (iconDef.isStreamlineLightIcon) {
|
|
228
228
|
WMCustomIcon = StreamlineLightIcon;
|
|
229
229
|
} else if (iconDef.isStreamlineRegularIcon) {
|
|
230
230
|
WMCustomIcon = StreamlineRegularIcon;
|
|
231
|
-
} else if (!iconDef.isWavIcon && !customIcon && !((_this$styles$
|
|
231
|
+
} else if (!iconDef.isWavIcon && !customIcon && !((_this$styles$icon5 = this.styles.icon) !== null && _this$styles$icon5 !== void 0 && _this$styles$icon5.fontFamily)) {
|
|
232
232
|
return null;
|
|
233
233
|
}
|
|
234
234
|
//@ts-ignore type information is not matching
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","Easing","Text","Image","View","FontAwesome","SvgUrlIcon","BaseComponent","BaseComponentState","isFullPathUrl","AccessibilityWidgetType","getAccessibilityProps","WmIconProps","DEFAULT_CLASS","WavIcon","StreamlineLightIcon","StreamlineRegularIcon","Tappable","Animatedview","createSkeleton","ICON_SIZES","Map","ICON_ROTATTION","WmIconState","constructor","args","_defineProperty","WmIcon","props","Value","getIconDef","iconClass","iconDef","rotate","splits","split","isFontAwesome","find","v","isStreamlineLightIcon","isStreamlineRegularIcon","_splits$find","type","startsWith","substring","_splits$find2","_splits$find3","_splits$find4","isWavIcon","indexOf","animation","size","map","get","spin","stopAnimation","spinValue","setValue","timing","toValue","duration","easing","linear","useNativeDriver","start","componentDidMount","componentWillUnmount","onPropertyChange","name","$new","$old","updateState","getCustomIcon","style","_this$theme$getStyle","customIcon","theme","mergeStyle","getStyle","iconclass","icon","styles","customIconContent","content","createElement","fontFamily","decodeURIComponent","renderSkeleton","skeletonWidth","skeletonwidth","iconsize","root","width","skeletonHeight","skeletonheight","height","skeleton","getElementToShow","iconSrc","_this$styles$image","_this$styles$image2","_props$iconurl","_this$styles$image3","iconmargin","iconheight","iconwidth","elementToshow","source","image","SvgComponent","default","_this$styles$root","_this$styles$text","_this$styles$icon","_this$styles$root2","_this$styles$text2","color","text","fontSize","undefined","isSvgUrl","iconurl","toLowerCase","endsWith","_this$styles$root3","_this$styles$text3","_this$styles$icon2","_this$styles$root4","_this$styles$text4","uri","String","margin","testID","getTestId","borderRadius","loadIcon","iconImage","loadAsset","iconImageSrc","renderIcon","iconJsx","_iconSource","state","transform","iconSize","show","_extends","getTestProps","_this$styles$icon3","WMCustomIcon","interpolate","inputRange","outputRange","opacity","renderWidget","iterationCount","iterationcount","parseInt","target","rippleColor","getTestPropsForAction","disableTouchEffect","disabletoucheffect","onLayout","event","handleLayout","entryanimation","delay","animationdelay","accessibilityProps","accessible","ICON","_background","iconposition","caption","getTestPropsForLabel","importantForAccessibility"],"sources":["icon.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, DimensionValue, Easing, Text, Image, View, LayoutChangeEvent } from 'react-native';\nimport { FontAwesome } from '@expo/vector-icons';\nimport SvgUrlIcon from './svg-url-icon.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { isFullPathUrl } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\n\nimport WmIconProps from './icon.props';\nimport { DEFAULT_CLASS, WmIconStyles } from './icon.styles';\nimport WavIcon from './wavicon/wavicon.component';\nimport StreamlineLightIcon from './streamline-light-icon/streamline-light-icon.component';\nimport StreamlineRegularIcon from './streamline-regular-icon/streamline-regular-icon.component';\nimport { Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker-ai/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\n\ninterface IconDef {\n isFontAwesome: boolean;\n isWavIcon: boolean;\n isStreamlineLightIcon: boolean;\n isStreamlineRegularIcon: boolean;\n type: string;\n rotate: string;\n size: number;\n animation: string;\n}\n\nconst ICON_SIZES = new Map([\n ['fa-lg', 24],\n ['fa-2x', 36],\n ['fa-3x', 48],\n ['fa-4x', 60],\n ['fa-5x', 72]\n]);\n\nconst ICON_ROTATTION = new Map([\n ['fa-rotate-90', '90deg'],\n ['fa-rotate-180', '180deg'],\n ['fa-rotate-270', '270deg']\n]);\n\nexport class WmIconState extends BaseComponentState<WmIconProps> {\n public iconDef = {} as IconDef;\n}\n\nexport default class WmIcon extends BaseComponent<WmIconProps, WmIconState, WmIconStyles> {\n spinValue = new Animated.Value(0);\n pulseValue = new Animated.Value(0);\n public stopAnimation = true;\n private _iconSource = null as any;\n\n constructor(props: WmIconProps) {\n super(props, DEFAULT_CLASS, new WmIconProps());\n }\n\n getIconDef(iconClass: string): IconDef {\n const iconDef = {\n rotate: '0'\n } as IconDef;\n const splits = iconClass.split(' ');\n iconDef.isFontAwesome = !!splits.find(v => v === 'fa');\n iconDef.isStreamlineLightIcon = !!splits.find(v => v === 'wm-sl-l');\n iconDef.isStreamlineRegularIcon = !!splits.find(v => v === 'wm-sl-r');\n if (iconDef.isFontAwesome) {\n iconDef.type = splits.find(v => v.startsWith('fa-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineLightIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineRegularIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else {\n iconDef.isWavIcon = !iconDef.isFontAwesome && !!splits.find(v => v === 'wi');\n iconDef.type = (iconDef.isWavIcon && splits.find(v => v.startsWith('wi-'))?.substring(3)) || '';\n }\n if (iconClass.indexOf('fa-spin') >= 0) {\n iconDef.animation = 'spin';\n } else if (iconClass.indexOf('fa-pulse') >= 0) {\n iconDef.animation = 'pulse';\n }\n iconDef.size = splits.map(v => ICON_SIZES.get(v)).find(v => !!v) || 12;\n iconDef.rotate = splits.map(v => ICON_ROTATTION.get(v)).find(v => !!v) || '0deg';\n return iconDef;\n }\n\n private spin () {\n if (this.stopAnimation) {\n return;\n }\n this.spinValue.setValue(0);\n Animated.timing(\n this.spinValue,\n {\n toValue: 1,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true\n }\n ).start(() => this.spin());\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.spin();\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.stopAnimation = true;\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case 'iconclass':\n $new && this.updateState({iconDef: this.getIconDef($new)} as WmIconState);\n break;\n }\n }\n\n private getCustomIcon(props: WmIconProps, style: any) {\n const customIcon = this.theme.mergeStyle({}, this.theme.getStyle(props?.iconclass || '')?.icon || this.styles.icon);\n const customIconContent = customIcon?.content;\n if (customIconContent) {\n delete customIcon.content;\n return (<Text\n style={[style, customIcon.fontFamily ? {fontFamily: customIcon.fontFamily}: null]}>\n {decodeURIComponent(customIconContent)}\n </Text>);\n }\n return null;\n }\n\n public renderSkeleton(props: WmIconProps) {\n let skeletonWidth = (this.props.skeletonwidth || this.props.iconsize || this.styles.root.width) as DimensionValue;\n let skeletonHeight = (this.props.skeletonheight || this.props.iconsize || this.styles.root.height) as DimensionValue\n\n if(this.props.skeletonheight == \"0\") {\n skeletonWidth = 0\n }\n\n if(this.props.skeletonheight == \"0\") {\n skeletonHeight = 0\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: skeletonWidth,\n height: skeletonHeight\n });\n }\n\n getElementToShow(props: WmIconProps, iconSrc: any) {\n\n const { iconmargin, iconheight, iconwidth } = props;\n let width, height;\n let elementToshow, source;\n\n if (iconwidth) width = iconwidth;\n else if (iconheight) width = iconheight;\n else width = this.styles.image?.width || 12;\n if (iconheight) height = iconheight;\n else if (iconwidth) height = iconwidth;\n else height = this.styles.image?.height || 12;\n\n const SvgComponent = typeof iconSrc === 'function'\n ? iconSrc\n : (iconSrc && typeof iconSrc === 'object' && typeof iconSrc?.default === 'function')\n ? iconSrc.default\n : null;\n\n if (SvgComponent) {\n const color = this.styles.root?.color || this.styles.text?.color;\n const size = props.iconsize\n || this.styles.icon?.fontSize\n || this.styles.root?.fontSize\n || this.styles.text?.fontSize\n || width;\n return (\n <SvgComponent\n width={size}\n height={size}\n color={color || undefined}\n />\n );\n }\n\n const isSvgUrl = typeof iconSrc === 'string'\n && (props.iconurl?.toLowerCase().endsWith('.svg') || iconSrc.toLowerCase().endsWith('.svg'));\n\n if (isSvgUrl) {\n const color = this.styles.root?.color || this.styles.text?.color;\n const size = (props.iconsize\n || this.styles.icon?.fontSize\n || this.styles.root?.fontSize\n || this.styles.text?.fontSize\n || width) as number;\n return (\n <SvgUrlIcon\n uri={iconSrc}\n width={size}\n height={size}\n color={color ? String(color) : undefined}\n style={{ margin: iconmargin ?? 0 }}\n />\n );\n }\n\n if (isFullPathUrl(iconSrc)) {\n source = {\n uri: iconSrc\n };\n } else {\n source = iconSrc;\n }\n elementToshow = <Image testID={this.getTestId('icon')}\n style={{\n margin: iconmargin ?? 0,\n height: height,\n width: width,\n borderRadius: this.styles.image?.borderRadius || 0\n }}\n source={source}/>;\n return elementToshow;\n }\n\n loadIcon(iconImage: string | undefined) {\n if (!iconImage || !this.loadAsset) {\n return null;\n }\n const iconImageSrc = this.loadAsset(iconImage);\n if (iconImageSrc != null) {\n return iconImageSrc;\n }\n return null;\n }\n\n renderIcon(props: WmIconProps) {\n let iconJsx = null;\n this._iconSource = this._iconSource || this.loadIcon(props.iconurl);\n const iconSrc: any = this._iconSource\n if (iconSrc) {\n return this.getElementToShow(props, iconSrc);\n }\n const iconDef = this.state.iconDef;\n if (!iconDef) {\n return null;\n }\n const { root, text, icon } = this.styles;\n const style = [{ color: root.color || text.color },\n icon,\n { transform: [{ rotate: iconDef.rotate }] }];\n\n const customIcon = this.getCustomIcon(props, style);\n const iconSize = props.iconsize || this.styles.root.fontSize || this.styles.text.fontSize || iconDef.size;\n if (props.show && iconDef && iconDef.isFontAwesome) {\n //@ts-ignore type information is not matching\n iconJsx = (<FontAwesome name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}\n {...this.getTestProps('icon')}>\n {customIcon}\n </FontAwesome>);\n } else if (props.show && iconDef) {\n let WMCustomIcon = WavIcon as unknown;\n if (iconDef.isStreamlineLightIcon) {\n WMCustomIcon = StreamlineLightIcon;\n } else if (iconDef.isStreamlineRegularIcon) {\n WMCustomIcon = StreamlineRegularIcon;\n } else if (!iconDef.isWavIcon && !customIcon && !this.styles.icon?.fontFamily) {\n return null;\n }\n //@ts-ignore type information is not matching\n iconJsx = WMCustomIcon ? (<WMCustomIcon name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}\n {...this.getTestProps('icon')}>\n {customIcon}\n </WMCustomIcon>) : null;\n }\n if (iconJsx && iconDef.animation === 'spin') {\n const rotate = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg']});\n const animation = { transform: [{ rotate }] };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{iconJsx}</Animated.View>);\n } else if (iconJsx && iconDef.animation === 'pulse') {\n const opacity = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: [0, 1]});\n const animation = { opacity: opacity };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{iconJsx}</Animated.View>);\n } else {\n this.stopAnimation = true;\n }\n return (\n <View\n // {...getAccessibilityProps(AccessibilityWidgetType.ICON, this.props)}\n >\n {iconJsx}\n </View>\n );\n }\n\n renderWidget(props: WmIconProps) {\n let icon = this.renderIcon(props);\n let iterationCount: any = props.iterationcount ? (props.iterationcount != 'infinite' ? parseInt(props.iterationcount): 'infinite') : undefined;\n return (\n <Tappable\n target={this}\n rippleColor = {this.styles.root.rippleColor}\n {...this.getTestPropsForAction()}\n disableTouchEffect={this.state.props.disabletoucheffect}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n <Animatedview entryanimation={props.animation} delay={props.animationdelay} style={this.styles.root} iterationCount={iterationCount} accessibilityProps={props.accessible ? {...getAccessibilityProps(AccessibilityWidgetType.ICON, props)} : {}}>\n {this._background}\n {(props.iconposition === 'left' && icon) || null}\n {(props.caption && (<Text {...this.getTestPropsForLabel('caption')} style={this.styles.text}\n importantForAccessibility=\"no\">{props.caption}\n </Text>)) || null}\n {(props.iconposition === 'right' && icon) || null}\n </Animatedview>\n </Tappable>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Animated","Easing","Text","Image","View","FontAwesome","SvgUrlIcon","BaseComponent","BaseComponentState","isFullPathUrl","AccessibilityWidgetType","getAccessibilityProps","WmIconProps","DEFAULT_CLASS","WavIcon","StreamlineLightIcon","StreamlineRegularIcon","Tappable","Animatedview","createSkeleton","ICON_SIZES","Map","ICON_ROTATTION","WmIconState","constructor","args","_defineProperty","WmIcon","props","Value","getIconDef","iconClass","iconDef","rotate","splits","split","isFontAwesome","find","v","isStreamlineLightIcon","isStreamlineRegularIcon","_splits$find","type","startsWith","substring","_splits$find2","_splits$find3","_splits$find4","isWavIcon","indexOf","animation","size","map","get","spin","stopAnimation","spinValue","setValue","timing","toValue","duration","easing","linear","useNativeDriver","start","componentDidMount","componentWillUnmount","onPropertyChange","name","$new","$old","updateState","getCustomIcon","style","_this$theme$getStyle","customIcon","theme","mergeStyle","getStyle","iconclass","icon","styles","customIconContent","content","createElement","fontFamily","decodeURIComponent","renderSkeleton","skeletonWidth","skeletonwidth","iconsize","root","width","skeletonHeight","skeletonheight","height","skeleton","getElementToShow","iconSrc","_this$styles$image","_this$styles$image2","_props$iconurl","_this$styles$image3","iconmargin","iconheight","iconwidth","elementToshow","source","image","SvgComponent","default","_this$styles$icon","_this$styles$root","_this$styles$text","_this$styles$icon2","_this$styles$root2","_this$styles$text2","color","text","fontSize","undefined","isSvgUrl","iconurl","toLowerCase","endsWith","_this$styles$icon3","_this$styles$root3","_this$styles$text3","_this$styles$icon4","_this$styles$root4","_this$styles$text4","uri","String","margin","testID","getTestId","borderRadius","loadIcon","iconImage","loadAsset","iconImageSrc","renderIcon","iconJsx","_iconSource","state","transform","iconSize","show","_extends","getTestProps","_this$styles$icon5","WMCustomIcon","interpolate","inputRange","outputRange","opacity","renderWidget","iterationCount","iterationcount","parseInt","target","rippleColor","getTestPropsForAction","disableTouchEffect","disabletoucheffect","onLayout","event","handleLayout","entryanimation","delay","animationdelay","accessibilityProps","accessible","ICON","_background","iconposition","caption","getTestPropsForLabel","importantForAccessibility"],"sources":["icon.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, DimensionValue, Easing, Text, Image, View, LayoutChangeEvent } from 'react-native';\nimport { FontAwesome } from '@expo/vector-icons';\nimport SvgUrlIcon from './svg-url-icon.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { isFullPathUrl } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\n\nimport WmIconProps from './icon.props';\nimport { DEFAULT_CLASS, WmIconStyles } from './icon.styles';\nimport WavIcon from './wavicon/wavicon.component';\nimport StreamlineLightIcon from './streamline-light-icon/streamline-light-icon.component';\nimport StreamlineRegularIcon from './streamline-regular-icon/streamline-regular-icon.component';\nimport { Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker-ai/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\n\ninterface IconDef {\n isFontAwesome: boolean;\n isWavIcon: boolean;\n isStreamlineLightIcon: boolean;\n isStreamlineRegularIcon: boolean;\n type: string;\n rotate: string;\n size: number;\n animation: string;\n}\n\nconst ICON_SIZES = new Map([\n ['fa-lg', 24],\n ['fa-2x', 36],\n ['fa-3x', 48],\n ['fa-4x', 60],\n ['fa-5x', 72]\n]);\n\nconst ICON_ROTATTION = new Map([\n ['fa-rotate-90', '90deg'],\n ['fa-rotate-180', '180deg'],\n ['fa-rotate-270', '270deg']\n]);\n\nexport class WmIconState extends BaseComponentState<WmIconProps> {\n public iconDef = {} as IconDef;\n}\n\nexport default class WmIcon extends BaseComponent<WmIconProps, WmIconState, WmIconStyles> {\n spinValue = new Animated.Value(0);\n pulseValue = new Animated.Value(0);\n public stopAnimation = true;\n private _iconSource = null as any;\n\n constructor(props: WmIconProps) {\n super(props, DEFAULT_CLASS, new WmIconProps());\n }\n\n getIconDef(iconClass: string): IconDef {\n const iconDef = {\n rotate: '0'\n } as IconDef;\n const splits = iconClass.split(' ');\n iconDef.isFontAwesome = !!splits.find(v => v === 'fa');\n iconDef.isStreamlineLightIcon = !!splits.find(v => v === 'wm-sl-l');\n iconDef.isStreamlineRegularIcon = !!splits.find(v => v === 'wm-sl-r');\n if (iconDef.isFontAwesome) {\n iconDef.type = splits.find(v => v.startsWith('fa-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineLightIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineRegularIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else {\n iconDef.isWavIcon = !iconDef.isFontAwesome && !!splits.find(v => v === 'wi');\n iconDef.type = (iconDef.isWavIcon && splits.find(v => v.startsWith('wi-'))?.substring(3)) || '';\n }\n if (iconClass.indexOf('fa-spin') >= 0) {\n iconDef.animation = 'spin';\n } else if (iconClass.indexOf('fa-pulse') >= 0) {\n iconDef.animation = 'pulse';\n }\n iconDef.size = splits.map(v => ICON_SIZES.get(v)).find(v => !!v) || 12;\n iconDef.rotate = splits.map(v => ICON_ROTATTION.get(v)).find(v => !!v) || '0deg';\n return iconDef;\n }\n\n private spin () {\n if (this.stopAnimation) {\n return;\n }\n this.spinValue.setValue(0);\n Animated.timing(\n this.spinValue,\n {\n toValue: 1,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true\n }\n ).start(() => this.spin());\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.spin();\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.stopAnimation = true;\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case 'iconclass':\n $new && this.updateState({iconDef: this.getIconDef($new)} as WmIconState);\n break;\n }\n }\n\n private getCustomIcon(props: WmIconProps, style: any) {\n const customIcon = this.theme.mergeStyle({}, this.theme.getStyle(props?.iconclass || '')?.icon || this.styles.icon);\n const customIconContent = customIcon?.content;\n if (customIconContent) {\n delete customIcon.content;\n return (<Text\n style={[style, customIcon.fontFamily ? {fontFamily: customIcon.fontFamily}: null]}>\n {decodeURIComponent(customIconContent)}\n </Text>);\n }\n return null;\n }\n\n public renderSkeleton(props: WmIconProps) {\n let skeletonWidth = (this.props.skeletonwidth || this.props.iconsize || this.styles.root.width) as DimensionValue;\n let skeletonHeight = (this.props.skeletonheight || this.props.iconsize || this.styles.root.height) as DimensionValue\n\n if(this.props.skeletonheight == \"0\") {\n skeletonWidth = 0\n }\n\n if(this.props.skeletonheight == \"0\") {\n skeletonHeight = 0\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: skeletonWidth,\n height: skeletonHeight\n });\n }\n\n getElementToShow(props: WmIconProps, iconSrc: any) {\n\n const { iconmargin, iconheight, iconwidth } = props;\n let width, height;\n let elementToshow, source;\n\n if (iconwidth) width = iconwidth;\n else if (iconheight) width = iconheight;\n else width = this.styles.image?.width || 12;\n if (iconheight) height = iconheight;\n else if (iconwidth) height = iconwidth;\n else height = this.styles.image?.height || 12;\n\n const SvgComponent = typeof iconSrc === 'function'\n ? iconSrc\n : (iconSrc && typeof iconSrc === 'object' && typeof iconSrc?.default === 'function')\n ? iconSrc.default\n : null;\n\n if (SvgComponent) {\n const color = this.styles.icon?.color || this.styles.root?.color || this.styles.text?.color;\n const size = props.iconsize\n || this.styles.icon?.fontSize\n || this.styles.root?.fontSize\n || this.styles.text?.fontSize\n || width;\n return (\n <SvgComponent\n width={size}\n height={size}\n color={color || undefined}\n />\n );\n }\n\n const isSvgUrl = typeof iconSrc === 'string'\n && (props.iconurl?.toLowerCase().endsWith('.svg') || iconSrc.toLowerCase().endsWith('.svg'));\n\n if (isSvgUrl) {\n const color = this.styles.icon?.color || this.styles.root?.color || this.styles.text?.color;\n const size = (props.iconsize\n || this.styles.icon?.fontSize\n || this.styles.root?.fontSize\n || this.styles.text?.fontSize\n || width) as number;\n return (\n <SvgUrlIcon\n uri={iconSrc}\n width={size}\n height={size}\n color={color ? String(color) : undefined}\n style={{ margin: iconmargin ?? 0 }}\n />\n );\n }\n\n if (isFullPathUrl(iconSrc)) {\n source = {\n uri: iconSrc\n };\n } else {\n source = iconSrc;\n }\n elementToshow = <Image testID={this.getTestId('icon')}\n style={{\n margin: iconmargin ?? 0,\n height: height,\n width: width,\n borderRadius: this.styles.image?.borderRadius || 0\n }}\n source={source}/>;\n return elementToshow;\n }\n\n loadIcon(iconImage: string | undefined) {\n if (!iconImage || !this.loadAsset) {\n return null;\n }\n const iconImageSrc = this.loadAsset(iconImage);\n if (iconImageSrc != null) {\n return iconImageSrc;\n }\n return null;\n }\n\n renderIcon(props: WmIconProps) {\n let iconJsx = null;\n this._iconSource = this._iconSource || this.loadIcon(props.iconurl);\n const iconSrc: any = this._iconSource\n if (iconSrc) {\n return this.getElementToShow(props, iconSrc);\n }\n const iconDef = this.state.iconDef;\n if (!iconDef) {\n return null;\n }\n const { root, text, icon } = this.styles;\n const style = [{ color: root.color || text.color },\n icon,\n { transform: [{ rotate: iconDef.rotate }] }];\n\n const customIcon = this.getCustomIcon(props, style);\n const iconSize = props.iconsize || this.styles.root.fontSize || this.styles.text.fontSize || iconDef.size;\n if (props.show && iconDef && iconDef.isFontAwesome) {\n //@ts-ignore type information is not matching\n iconJsx = (<FontAwesome name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}\n {...this.getTestProps('icon')}>\n {customIcon}\n </FontAwesome>);\n } else if (props.show && iconDef) {\n let WMCustomIcon = WavIcon as unknown;\n if (iconDef.isStreamlineLightIcon) {\n WMCustomIcon = StreamlineLightIcon;\n } else if (iconDef.isStreamlineRegularIcon) {\n WMCustomIcon = StreamlineRegularIcon;\n } else if (!iconDef.isWavIcon && !customIcon && !this.styles.icon?.fontFamily) {\n return null;\n }\n //@ts-ignore type information is not matching\n iconJsx = WMCustomIcon ? (<WMCustomIcon name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}\n {...this.getTestProps('icon')}>\n {customIcon}\n </WMCustomIcon>) : null;\n }\n if (iconJsx && iconDef.animation === 'spin') {\n const rotate = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg']});\n const animation = { transform: [{ rotate }] };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{iconJsx}</Animated.View>);\n } else if (iconJsx && iconDef.animation === 'pulse') {\n const opacity = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: [0, 1]});\n const animation = { opacity: opacity };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{iconJsx}</Animated.View>);\n } else {\n this.stopAnimation = true;\n }\n return (\n <View\n // {...getAccessibilityProps(AccessibilityWidgetType.ICON, this.props)}\n >\n {iconJsx}\n </View>\n );\n }\n\n renderWidget(props: WmIconProps) {\n let icon = this.renderIcon(props);\n let iterationCount: any = props.iterationcount ? (props.iterationcount != 'infinite' ? parseInt(props.iterationcount): 'infinite') : undefined;\n return (\n <Tappable\n target={this}\n rippleColor = {this.styles.root.rippleColor}\n {...this.getTestPropsForAction()}\n disableTouchEffect={this.state.props.disabletoucheffect}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n <Animatedview entryanimation={props.animation} delay={props.animationdelay} style={this.styles.root} iterationCount={iterationCount} accessibilityProps={props.accessible ? {...getAccessibilityProps(AccessibilityWidgetType.ICON, props)} : {}}>\n {this._background}\n {(props.iconposition === 'left' && icon) || null}\n {(props.caption && (<Text {...this.getTestPropsForLabel('caption')} style={this.styles.text}\n importantForAccessibility=\"no\">{props.caption}\n </Text>)) || null}\n {(props.iconposition === 'right' && icon) || null}\n </Animatedview>\n </Tappable>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ import { FixedView } from '@wavemaker-ai/app-rn-runtime/core/fixed-view.componen
|
|
|
19
19
|
import { SafeAreaInsetsContext } from 'react-native-safe-area-context';
|
|
20
20
|
import injector from '@wavemaker-ai/app-rn-runtime/core/injector';
|
|
21
21
|
import { StickyWrapperContext } from '@wavemaker-ai/app-rn-runtime/core/sticky-wrapper';
|
|
22
|
+
import { deepCopy } from '@wavemaker-ai/app-rn-runtime/core/utils';
|
|
22
23
|
const scale = n => n;
|
|
23
24
|
class WmTabbarState extends BaseNavState {
|
|
24
25
|
constructor(...args) {
|
|
@@ -65,9 +66,34 @@ export default class WmTabbar extends BaseNavComponent {
|
|
|
65
66
|
const activeOnParent = props.highlightactivetab === 'parent view';
|
|
66
67
|
const getDisplayLabel = this.props.getDisplayExpression || (label => label);
|
|
67
68
|
const displayLabel = getDisplayLabel(item.label);
|
|
69
|
+
// Active state is a delta over the base item (mirrors how tabIcon/activeTabIcon are merged
|
|
70
|
+
// below) so an appearance that only overrides border/background for the active state doesn't
|
|
71
|
+
// lose the base item's shape (radius, min sizing) that isn't repeated in the active variant.
|
|
72
|
+
const mergedItem = deepCopy({}, this.styles.tabItem, isActive ? this.styles.activeTabItem : {});
|
|
73
|
+
|
|
74
|
+
// flexDirection/justifyContent/alignItems aren't tokens (no item.* entry ever sets them), and
|
|
75
|
+
// `gap` only ever acts between this item's own icon-box and label (both children of this
|
|
76
|
+
// TouchableOpacity) — so these always stay on the parent regardless of highlightactivetab.
|
|
77
|
+
const {
|
|
78
|
+
flexDirection,
|
|
79
|
+
justifyContent,
|
|
80
|
+
alignItems,
|
|
81
|
+
gap,
|
|
82
|
+
...boxStyle
|
|
83
|
+
} = mergedItem;
|
|
84
|
+
const alwaysOuterStyle = {
|
|
85
|
+
flexDirection,
|
|
86
|
+
justifyContent,
|
|
87
|
+
alignItems,
|
|
88
|
+
gap
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// Everything else (min size, padding, opacity, background, border, margin) defines the shape of
|
|
92
|
+
// the "highlight box" itself and moves as one bundle to whichever view highlightactivetab points
|
|
93
|
+
// at, so a variant can size/shape that box (bigger chip, circle, full-width strip, ...) freely.
|
|
68
94
|
let increasedGap = Number(testId) === (item === null || item === void 0 ? void 0 : item.indexBeforeMid) && this.state.dataItems.length % 2 != 0 && (props.classname || '').indexOf('clipped-tabbar') >= 0 ? [this.styles.tabItem, {
|
|
69
95
|
paddingRight: 70
|
|
70
|
-
}] : [
|
|
96
|
+
}] : [alwaysOuterStyle, activeOnParent ? boxStyle : {}];
|
|
71
97
|
return /*#__PURE__*/React.createElement(TouchableOpacity, _extends({}, this.getTestPropsForAction('item' + testId), {
|
|
72
98
|
style: [increasedGap, floating ? this.styles.centerHubItem : {}],
|
|
73
99
|
key: `${item.label}_${testId}`,
|
|
@@ -75,7 +101,11 @@ export default class WmTabbar extends BaseNavComponent {
|
|
|
75
101
|
}), /*#__PURE__*/React.createElement(View, {
|
|
76
102
|
key: item.key
|
|
77
103
|
}, /*#__PURE__*/React.createElement(View, {
|
|
78
|
-
style: [
|
|
104
|
+
style: [!activeOnParent && !floating ? {
|
|
105
|
+
...boxStyle,
|
|
106
|
+
justifyContent,
|
|
107
|
+
alignItems
|
|
108
|
+
} : {}]
|
|
79
109
|
}, /*#__PURE__*/React.createElement(WmIcon, {
|
|
80
110
|
styles: this.theme.mergeStyle({}, this.styles.tabIcon, floating ? this.styles.centerHubIcon : {}, isActive ? this.styles.activeTabIcon : {}),
|
|
81
111
|
iconclass: item.icon,
|
|
@@ -1 +1 @@
|
|
|
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","StickyWrapperContext","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","activeOnParent","highlightactivetab","getDisplayLabel","getDisplayExpression","label","displayLabel","increasedGap","Number","indexBeforeMid","state","dataItems","length","classname","indexOf","styles","tabItem","paddingRight","activeTabItem","createElement","_extends","getTestPropsForAction","style","centerHubItem","key","onPress","theme","mergeStyle","tabIcon","centerHubIcon","activeTabIcon","iconclass","icon","iconurl","iconUrl","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","tabbarHeightWithInsets","subscribe","event","_this$getLayout","_this$insets","contentOffset","layoutMeasurement","contentSize","nativeEvent","scrollPosition","y","getLayout","height","visibleContentHeight","endReached","bottomInsets","insets","e","Math","abs","scrollDelta","scrollDirection","componentWillUnmount","renderContent","max","tabItems","tabItemsLength","bottomTabHeightValue","isClippedTabbar","middleIndex","floor","returnpathDown","maxWidth","root","moreItems","moreItemsCount","ceil","j","i","row","Consumer","top","left","right","_this$appConfig","paddingBottomVal","paddingBottom","padding","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","stylesWithFs","backgroundColor","menu","ref","baseView","onLayout","context","bottomTabHeight","hideonscroll","layout","notify","handleLayout","zIndex","position","INSTANCE","transparent","fill","tabbarBackgroundColor","d","Fragment","modalService","showMore","showModal","moreMenu","map","a","moreMenuRow","index","hideModal","testID","filter","morebuttonlabel","morebuttoniconclass","updateState","renderWidget","isFixed","animateStyle","transform","animated","_background"],"sources":["tabbar.component.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Text, View, TouchableOpacity, Dimensions, Keyboard, Animated, Easing, LayoutChangeEvent,\n NativeSyntheticEvent, NativeScrollEvent\n} from 'react-native';\nimport { ThemeProvider } from '@wavemaker-ai/app-rn-runtime/styles/theme';\nimport { ModalConsumer, ModalOptions, ModalService } from '@wavemaker-ai/app-rn-runtime/core/modal.service';\nimport WmIcon from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker-ai/app-rn-runtime/core/navigation.service';\nimport { BaseNavProps } from '@wavemaker-ai/app-rn-runtime/components/navigation/basenav/basenav.props';\nimport { BaseNavComponent, BaseNavState, NavigationDataItem } from '@wavemaker-ai/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-ai/app-rn-runtime/styles/theme.variables';\nimport { FixedView } from '@wavemaker-ai/app-rn-runtime/core/fixed-view.component';\nimport { EdgeInsets, SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport injector from '@wavemaker-ai/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker-ai/app-rn-runtime/core/AppConfig';\nimport { StickyWrapperContext, StickyWrapperContextType } from '@wavemaker-ai/app-rn-runtime/core/sticky-wrapper';\n\ninterface TabDataItem extends NavigationDataItem {\n floating: boolean;\n indexBeforeMid: number;\n}\n\ninterface CustomScrollEvent {\n scrollDirection: number;\n scrollDelta: 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 private tabbarHeightWithInsets: number = 0;\n static contextType = StickyWrapperContext;\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 activeOnParent = props.highlightactivetab === 'parent view';\n const getDisplayLabel = this.props.getDisplayExpression || ((label: string) => label);\n const displayLabel = getDisplayLabel(item.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 : [isActive && activeOnParent ? this.styles.activeTabItem : 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 iconurl={item.iconUrl}\n ></WmIcon>\n </View>\n </View>\n {displayLabel ? (\n <Text style={[this.styles.tabLabel, floating? this.styles.centerHubLabel: {}, isActive ? this.styles.activeTabLabel : {}]} numberOfLines={1}>\n {displayLabel}\n </Text>\n ) : null}\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: false\n }).start()\n }\n\n subscribeToPageScroll(){\n this.tabbarHeightWithInsets = 0;\n this.destroyScrollListner = this.subscribe('scroll', (event: NativeSyntheticEvent<NativeScrollEvent>)=>{\n const { contentOffset, layoutMeasurement, contentSize } = event.nativeEvent ;\n const scrollPosition = contentOffset.y ;\n this.tabbarHeightWithInsets = this.tabbarHeightWithInsets ? this.tabbarHeightWithInsets : this.getLayout()?.height ;\n const visibleContentHeight = layoutMeasurement.height ;\n const endReached = (scrollPosition + visibleContentHeight + this.tabbarHeightWithInsets) + 8 >= contentSize.height ;\n const bottomInsets = this.insets?.bottom || 0\n const e = event.nativeEvent as any as CustomScrollEvent;\n if(Math.abs(e?.scrollDelta) >= 2){\n if(e?.scrollDirection > 0){\n this.animateWithTiming(0, 100)\n }else if(e?.scrollDirection < 0) {\n this.animateWithTiming(this.tabbarHeightWithInsets + bottomInsets, 100)\n }\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 let bottomTabHeightValue;\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 isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n const stylesWithFs = isEdgeToEdgeApp ? {height: this.styles.root.height as number + (insets?.bottom || 0) as number,\n paddingBottom: (paddingBottomVal || 0) as number + (insets?.bottom || 0) as number , backgroundColor: this.styles.root.backgroundColor || this.styles.menu.backgroundColor} : {}\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) => {\n if(this.context && (this.context as StickyWrapperContextType).bottomTabHeight && props.hideonscroll) {\n bottomTabHeightValue = event.nativeEvent.layout.height || 0;\n (this.context as StickyWrapperContextType).bottomTabHeight.value = bottomTabHeightValue;\n this.notify('updateBottomTabHeight', [bottomTabHeightValue], true);\n }\n this.handleLayout(event);\n }}\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\n testID=\"test_tabbar-menu\"\n 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 this.isFixed = true;\n const animateStyle = props.hideonscroll ? {transform: [{translateY: this.translateY}]} : {};\n return props.hideonscroll ? (\n <FixedView\n name={this.props.name}\n style={{...{bottom: 0, width:'100%', zIndex: 11}, ...animateStyle}}\n theme={this.theme}\n animated={props.hideonscroll || false}>\n {this._background}\n {this.renderContent(props)}\n </FixedView>\n ) : this.renderContent(props)\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","StickyWrapperContext","deepCopy","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","activeOnParent","highlightactivetab","getDisplayLabel","getDisplayExpression","label","displayLabel","mergedItem","styles","tabItem","activeTabItem","flexDirection","justifyContent","alignItems","gap","boxStyle","alwaysOuterStyle","increasedGap","Number","indexBeforeMid","state","dataItems","length","classname","indexOf","paddingRight","createElement","_extends","getTestPropsForAction","style","centerHubItem","key","onPress","theme","mergeStyle","tabIcon","centerHubIcon","activeTabIcon","iconclass","icon","iconurl","iconUrl","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","tabbarHeightWithInsets","subscribe","event","_this$getLayout","_this$insets","contentOffset","layoutMeasurement","contentSize","nativeEvent","scrollPosition","y","getLayout","height","visibleContentHeight","endReached","bottomInsets","insets","e","Math","abs","scrollDelta","scrollDirection","componentWillUnmount","renderContent","max","tabItems","tabItemsLength","bottomTabHeightValue","isClippedTabbar","middleIndex","floor","returnpathDown","maxWidth","root","moreItems","moreItemsCount","ceil","j","i","row","Consumer","top","left","right","_this$appConfig","paddingBottomVal","paddingBottom","padding","isEdgeToEdgeApp","appConfig","edgeToEdgeConfig","stylesWithFs","backgroundColor","menu","ref","baseView","onLayout","context","bottomTabHeight","hideonscroll","layout","notify","handleLayout","zIndex","position","INSTANCE","transparent","fill","tabbarBackgroundColor","d","Fragment","modalService","showMore","showModal","moreMenu","map","a","moreMenuRow","index","hideModal","testID","filter","morebuttonlabel","morebuttoniconclass","updateState","renderWidget","isFixed","animateStyle","transform","animated","_background"],"sources":["tabbar.component.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { Text, View, TouchableOpacity, Dimensions, Keyboard, Animated, Easing, LayoutChangeEvent,\n NativeSyntheticEvent, NativeScrollEvent\n} from 'react-native';\nimport { ThemeProvider } from '@wavemaker-ai/app-rn-runtime/styles/theme';\nimport { ModalConsumer, ModalOptions, ModalService } from '@wavemaker-ai/app-rn-runtime/core/modal.service';\nimport WmIcon from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker-ai/app-rn-runtime/core/navigation.service';\nimport { BaseNavProps } from '@wavemaker-ai/app-rn-runtime/components/navigation/basenav/basenav.props';\nimport { BaseNavComponent, BaseNavState, NavigationDataItem } from '@wavemaker-ai/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-ai/app-rn-runtime/styles/theme.variables';\nimport { FixedView } from '@wavemaker-ai/app-rn-runtime/core/fixed-view.component';\nimport { EdgeInsets, SafeAreaInsetsContext } from 'react-native-safe-area-context';\nimport injector from '@wavemaker-ai/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker-ai/app-rn-runtime/core/AppConfig';\nimport { StickyWrapperContext, StickyWrapperContextType } from '@wavemaker-ai/app-rn-runtime/core/sticky-wrapper';\nimport { deepCopy } from '@wavemaker-ai/app-rn-runtime/core/utils';\n\ninterface TabDataItem extends NavigationDataItem {\n floating: boolean;\n indexBeforeMid: number;\n}\n\ninterface CustomScrollEvent {\n scrollDirection: number;\n scrollDelta: 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 private tabbarHeightWithInsets: number = 0;\n static contextType = StickyWrapperContext;\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 activeOnParent = props.highlightactivetab === 'parent view';\n const getDisplayLabel = this.props.getDisplayExpression || ((label: string) => label);\n const displayLabel = getDisplayLabel(item.label);\n // Active state is a delta over the base item (mirrors how tabIcon/activeTabIcon are merged\n // below) so an appearance that only overrides border/background for the active state doesn't\n // lose the base item's shape (radius, min sizing) that isn't repeated in the active variant.\n const mergedItem = deepCopy({}, this.styles.tabItem, isActive ? this.styles.activeTabItem : {});\n\n // flexDirection/justifyContent/alignItems aren't tokens (no item.* entry ever sets them), and\n // `gap` only ever acts between this item's own icon-box and label (both children of this\n // TouchableOpacity) — so these always stay on the parent regardless of highlightactivetab.\n const { flexDirection, justifyContent, alignItems, gap, ...boxStyle } = mergedItem;\n const alwaysOuterStyle = { flexDirection, justifyContent, alignItems, gap };\n\n // Everything else (min size, padding, opacity, background, border, margin) defines the shape of\n // the \"highlight box\" itself and moves as one bundle to whichever view highlightactivetab points\n // at, so a variant can size/shape that box (bigger chip, circle, full-width strip, ...) freely.\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 : [alwaysOuterStyle, activeOnParent ? boxStyle : {}];\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 {/* justifyContent/alignItems are repeated here (not just on the parent) so the icon stays\n centered inside this box when it's the designated one and sized bigger than the icon\n itself (e.g. a padded circle) — boxStyle alone only sizes/paints the box, it doesn't\n center its own content. */}\n <View style={[!activeOnParent && !floating ? { ...boxStyle, justifyContent, alignItems } : {}]}>\n <WmIcon\n styles={this.theme.mergeStyle({}, this.styles.tabIcon, floating? this.styles.centerHubIcon: {}, isActive ? this.styles.activeTabIcon : {})}\n iconclass={item.icon}\n iconurl={item.iconUrl}\n ></WmIcon>\n </View>\n </View>\n {displayLabel ? (\n <Text style={[this.styles.tabLabel, floating? this.styles.centerHubLabel: {}, isActive ? this.styles.activeTabLabel : {}]} numberOfLines={1}>\n {displayLabel}\n </Text>\n ) : null}\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: false\n }).start()\n }\n\n subscribeToPageScroll(){\n this.tabbarHeightWithInsets = 0;\n this.destroyScrollListner = this.subscribe('scroll', (event: NativeSyntheticEvent<NativeScrollEvent>)=>{\n const { contentOffset, layoutMeasurement, contentSize } = event.nativeEvent ;\n const scrollPosition = contentOffset.y ;\n this.tabbarHeightWithInsets = this.tabbarHeightWithInsets ? this.tabbarHeightWithInsets : this.getLayout()?.height ;\n const visibleContentHeight = layoutMeasurement.height ;\n const endReached = (scrollPosition + visibleContentHeight + this.tabbarHeightWithInsets) + 8 >= contentSize.height ;\n const bottomInsets = this.insets?.bottom || 0\n const e = event.nativeEvent as any as CustomScrollEvent;\n if(Math.abs(e?.scrollDelta) >= 2){\n if(e?.scrollDirection > 0){\n this.animateWithTiming(0, 100)\n }else if(e?.scrollDirection < 0) {\n this.animateWithTiming(this.tabbarHeightWithInsets + bottomInsets, 100)\n }\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 let bottomTabHeightValue;\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 isEdgeToEdgeApp = !!this.appConfig?.edgeToEdgeConfig?.isEdgeToEdgeApp;\n const stylesWithFs = isEdgeToEdgeApp ? {height: this.styles.root.height as number + (insets?.bottom || 0) as number,\n paddingBottom: (paddingBottomVal || 0) as number + (insets?.bottom || 0) as number , backgroundColor: this.styles.root.backgroundColor || this.styles.menu.backgroundColor} : {}\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) => {\n if(this.context && (this.context as StickyWrapperContextType).bottomTabHeight && props.hideonscroll) {\n bottomTabHeightValue = event.nativeEvent.layout.height || 0;\n (this.context as StickyWrapperContextType).bottomTabHeight.value = bottomTabHeightValue;\n this.notify('updateBottomTabHeight', [bottomTabHeightValue], true);\n }\n this.handleLayout(event);\n }}\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\n testID=\"test_tabbar-menu\"\n 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 this.isFixed = true;\n const animateStyle = props.hideonscroll ? {transform: [{translateY: this.translateY}]} : {};\n return props.hideonscroll ? (\n <FixedView\n name={this.props.name}\n style={{...{bottom: 0, width:'100%', zIndex: 11}, ...animateStyle}}\n theme={this.theme}\n animated={props.hideonscroll || false}>\n {this._background}\n {this.renderContent(props)}\n </FixedView>\n ) : this.renderContent(props)\n }\n}\n"],"mappings":"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","ignoreList":[]}
|