@wavemaker-ai/app-rn-runtime 12.0.1-rc.647767 → 12.0.1-rc.647806
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/container/tabs/tabheader/tabheader.component.js +10 -3
- package/components/container/tabs/tabheader/tabheader.component.js.map +1 -1
- package/components/data/form/form.component.js +12 -8
- package/components/data/form/form.component.js.map +1 -1
- package/components/input/textarea/textarea.component.js +1 -1
- package/components/input/textarea/textarea.component.js.map +1 -1
- package/components/page/page-content/page-content.component.js +17 -5
- package/components/page/page-content/page-content.component.js.map +1 -1
- package/components/page/page-content/page-content.props.js +2 -0
- package/components/page/page-content/page-content.props.js.map +1 -1
- package/core/AppConfig.js.map +1 -1
- package/gestures/carousel-swipe.animation.js +1 -0
- package/gestures/carousel-swipe.animation.js.map +1 -1
- package/npm-shrinkwrap.json +225 -226
- package/package-lock.json +225 -226
- package/package.json +2 -2
- package/runtime/navigator/stack.navigator.js +6 -0
- package/runtime/navigator/stack.navigator.js.map +1 -1
- package/styles/theme.js +32 -1
- package/styles/theme.js.map +1 -1
- package/components-prism/basic/search/search.component.js +0 -208
- package/components-prism/basic/search/search.component.js.map +0 -1
- package/components-prism/basic/search/search.props.js +0 -16
- package/components-prism/basic/search/search.props.js.map +0 -1
- package/components-prism/basic/search/search.styles.js +0 -127
- package/components-prism/basic/search/search.styles.js.map +0 -1
- package/core/outside-press-handler.js +0 -65
- package/core/outside-press-handler.js.map +0 -1
|
@@ -29,11 +29,19 @@ export default class WmTabheader extends BaseComponent {
|
|
|
29
29
|
}) => this.headerScrollPositionValue = value);
|
|
30
30
|
}
|
|
31
31
|
setHeaderPanelPositon(nativeEvent) {
|
|
32
|
-
this.headerPanelLayout
|
|
33
|
-
|
|
32
|
+
if (this.headerPanelLayout === null) {
|
|
33
|
+
this.headerPanelLayout = nativeEvent.nativeEvent.layout;
|
|
34
|
+
this.forceUpdate();
|
|
35
|
+
} else if (this.headerPanelLayout.x !== nativeEvent.nativeEvent.layout.x || this.headerPanelLayout.y !== nativeEvent.nativeEvent.layout.y) {
|
|
36
|
+
this.headerPanelLayout = nativeEvent.nativeEvent.layout;
|
|
37
|
+
this.forceUpdate();
|
|
38
|
+
}
|
|
34
39
|
}
|
|
35
40
|
setHeaderPositon(index, nativeEvent) {
|
|
36
41
|
this.headersLayout[index] = nativeEvent.nativeEvent.layout;
|
|
42
|
+
if (this.state.props.data.length === this.headersLayout.length) {
|
|
43
|
+
this.setPosition();
|
|
44
|
+
}
|
|
37
45
|
if (index === this.props.selectedTabIndex) {
|
|
38
46
|
this.forceUpdate();
|
|
39
47
|
}
|
|
@@ -208,7 +216,6 @@ export default class WmTabheader extends BaseComponent {
|
|
|
208
216
|
}))));
|
|
209
217
|
}
|
|
210
218
|
renderWidget(props) {
|
|
211
|
-
this.setPosition();
|
|
212
219
|
return /*#__PURE__*/React.createElement(View, _extends({
|
|
213
220
|
style: {
|
|
214
221
|
overflow: 'hidden',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createRef","Animated","Easing","Text","View","ScrollView","BaseComponent","BaseComponentState","WmTabheaderProps","DEFAULT_CLASS","Tappable","createSkeleton","BackgroundComponent","WmIcon","AccessibilityWidgetType","getAccessibilityProps","WmTabheaderState","WmTabheader","constructor","props","_defineProperty","Value","headerScrollPosition","addListener","value","headerScrollPositionValue","setHeaderPanelPositon","nativeEvent","headerPanelLayout","layout","forceUpdate","setHeaderPositon","index","headersLayout","selectedTabIndex","onTabSelection","state","onIndexChange","scrollPosition","totalWidth","toIndicatorPosition","_this$headersLayout$s","_this$headersLayout$s2","_this$headerPanelLayo","initialPosition","isRTL","baseWidth","elementWidth","width","positionX","setPosition","_this$headersLayout$s3","_this$headerPanelLayo2","_this$headerPanelLayo3","_this$listRef$current","toIndicatorWidth","toHeaderScrollPosition","data","length","forEach","p","i","minScrollPosition","maxScrollPosition","Math","max","min","positionIndicator","position","listRef","current","scrollTo","x","y","parallel","timing","useNativeDriver","toValue","duration","easing","linear","indicatorWidth","reverseIndicatorWidth","indicatorPosition","start","renderSkeleton","createElement","style","transform","translateX","onLayout","bind","styles","root","map","header","_this$styles$root","_this$styles$root2","_this$styles$activeHe","isSelected","onTap","key","flex","disableTouchEffect","disabletoucheffect","activeHeader","theme","borderRadius","height","activeHeaderText","fontSize","activeIndicator","scaleX","renderHeaderContent","arrowIndicator","_background","accessibilityProps","TABS","selected","accessibilitylabel","hint","accessibilityrole","_extends","getTestPropsForAction","flexGrow","undefined","id","getTestId","mergeStyle","headerIcon","activeHeaderIcon","iconclass","icon","accessible","numberOfLines","headerText","getTestPropsForLabel","title","backgroundImage","image","backgroundPosition","size","backgroundSize","repeat","backgroundRepeat","resizeMode","backgroundResizeMode","arrowIndicatorDot","renderWidget","overflow","zIndex","getTestProps","event","handleLayout","shouldScroll","ref","horizontal","contentContainerStyle","showsHorizontalScrollIndicator","scrollEnabled","Fragment"],"sources":["tabheader.component.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { Animated, Easing, LayoutChangeEvent, LayoutRectangle, Text, View, ScrollView } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\n\nimport WmTabheaderProps from './tabheader.props';\nimport { DEFAULT_CLASS, WmTabheaderStyles } from './tabheader.styles';\nimport { Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\nimport WmSkeleton, { createSkeleton } from '@wavemaker-ai/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '@wavemaker-ai/app-rn-runtime/components/basic/skeleton/skeleton.styles';\nimport { BackgroundComponent } from '@wavemaker-ai/app-rn-runtime/styles/background.component';\nimport WmIcon from \"@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component\";\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\n\nexport class WmTabheaderState extends BaseComponentState<WmTabheaderProps> {\n}\n\nexport default class WmTabheader extends BaseComponent<WmTabheaderProps, WmTabheaderState, WmTabheaderStyles> {\n\n private headerPanelLayout: LayoutRectangle = null as any;\n private headersLayout: LayoutRectangle[] = [];\n private headerScrollPosition = new Animated.Value(0);\n private headerScrollPositionValue = 0;\n private indicatorPosition = new Animated.Value(0);\n private reverseIndicatorWidth = new Animated.Value(0);\n private indicatorWidth = new Animated.Value(0);\n private listRef: any = createRef();\n\n constructor(props: WmTabheaderProps) {\n super(props, DEFAULT_CLASS, new WmTabheaderProps(), new WmTabheaderState());\n this.headerScrollPosition.addListener(({value}) => this.headerScrollPositionValue = value);\n }\n\n setHeaderPanelPositon(nativeEvent: LayoutChangeEvent) {\n this.headerPanelLayout = nativeEvent.nativeEvent.layout;\n this.forceUpdate();\n }\n\n setHeaderPositon(index: number, nativeEvent: LayoutChangeEvent) {\n this.headersLayout[index] = nativeEvent.nativeEvent.layout;\n if (index === this.props.selectedTabIndex) {\n this.forceUpdate();\n }\n }\n\n onTabSelection(index: number) {\n if (this.state.props.selectedTabIndex != index) {\n this.state.props.onIndexChange && this.state.props.onIndexChange(index);\n }\n }\n\n scrollPosition(selectedTabIndex: number, totalWidth: number, toIndicatorPosition: number) {\n const initialPosition = this.isRTL ? totalWidth : 0;\n const baseWidth = this.isRTL ? totalWidth - toIndicatorPosition : toIndicatorPosition;\n const elementWidth = this.isRTL ? -1 * (this.headersLayout[selectedTabIndex]?.width/2) : this.headersLayout[selectedTabIndex]?.width/2\n const positionX = selectedTabIndex === 0 ? initialPosition :\n ((baseWidth + (elementWidth)) - (this.headerPanelLayout?.width || 0) / 2);\n\n return positionX\n }\n\n setPosition() {\n const selectedTabIndex = this.state.props.selectedTabIndex ? this.state.props.selectedTabIndex : 0\n let toIndicatorPosition = 0;\n let toIndicatorWidth = this.headersLayout[selectedTabIndex]?.width || 0;\n let toHeaderScrollPosition = this.headerScrollPositionValue;\n let totalWidth = 0;\n if (this.state.props.data.length !== this.headersLayout.length) {\n return;\n }\n this.headersLayout.forEach((p, i) => {\n if (i < selectedTabIndex) {\n toIndicatorPosition += p.width;\n }\n totalWidth += p.width;\n });\n toHeaderScrollPosition = -1 * (toIndicatorPosition - (this.headerPanelLayout?.width || 0) / 2 + toIndicatorWidth/ 2) ;\n const minScrollPosition = -1 * (totalWidth - (this.headerPanelLayout?.width || 0));\n const maxScrollPosition = 0;\n toHeaderScrollPosition = Math.max(minScrollPosition, toHeaderScrollPosition);\n toHeaderScrollPosition = Math.min(maxScrollPosition, toHeaderScrollPosition);\n let positionIndicator = (toIndicatorPosition - (100 - toIndicatorWidth) / 2);\n let position = this.isRTL?-positionIndicator:positionIndicator;\n\n const positionX = this.scrollPosition(selectedTabIndex, totalWidth, toIndicatorPosition)\n\n this.listRef.current?.scrollTo({\n x: positionX,\n y: 0,\n Animated: true\n });\n\n Animated.parallel([\n Animated.timing(this.headerScrollPosition, {\n useNativeDriver: true,\n toValue: toHeaderScrollPosition,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.indicatorWidth, {\n useNativeDriver: true,\n toValue: toIndicatorWidth / 100,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.reverseIndicatorWidth, {\n useNativeDriver: true,\n toValue: toIndicatorWidth ? 100 / toIndicatorWidth : 0,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.indicatorPosition, {\n useNativeDriver: true,\n toValue: position,\n duration: 200,\n easing: Easing.linear\n })\n ]).start();\n }\n\n public renderSkeleton(props: WmTabheaderProps){\n return(\n <Animated.View style={{\n transform: [{\n translateX: this.headerScrollPosition\n }]\n }}\n onLayout={this.setHeaderPanelPositon.bind(this)}>\n <View style={this.styles.root}>\n {this.props.data.map((header ,i) => {\n const isSelected = i === this.props.selectedTabIndex;\n return (\n <Tappable onTap={this.onTabSelection.bind(this, i)} key={header.key} styles={{flex: 1}} disableTouchEffect={this.state.props.disabletoucheffect}>\n <View onLayout={this.setHeaderPositon.bind(this, i)} style={[\n this.styles.header,\n isSelected ? this.styles.activeHeader : null]}>\n {\n createSkeleton(this.theme, { root: { borderRadius: 4 }} as WmSkeletonStyles, {\n ...this.styles.root,\n width: this.styles.root?.width || \"80%\",\n height: this.styles.root?.height || this.styles.activeHeaderText?.fontSize || 16\n })\n }\n </View>\n </Tappable>\n );\n })}\n </View>\n <Animated.View style={[this.styles.activeIndicator, {\n transform: [{\n translateX: this.indicatorPosition\n }, {\n scaleX: this.indicatorWidth\n }]\n }]}></Animated.View>\n </Animated.View>\n\n )\n }\n\n public renderHeaderContent(props: WmTabheaderProps){\n const arrowIndicator = this.styles.arrowIndicator as any;\n return (\n <View>\n <View style={this.styles.root}>\n {this._background}\n {props.data.map((header ,i) => {\n const isSelected = i === props.selectedTabIndex ;\n const accessibilityProps = getAccessibilityProps(AccessibilityWidgetType.TABS, {\n selected: isSelected,\n accessibilitylabel: props.accessibilityProps[i].accessibilitylabel,\n hint: props.accessibilityProps[i].hint,\n accessibilityrole: props.accessibilityProps[i].accessibilityrole,\n });\n return (\n <Tappable onTap={this.onTabSelection.bind(this, i)}\n {...this.getTestPropsForAction(i +'')}\n key={header.key}\n disableTouchEffect={this.state.props.disabletoucheffect}\n styles={this.styles.header.flexGrow ? {flexGrow: this.styles.header.flexGrow} : null} accessibilityProps={accessibilityProps}>\n <View onLayout={this.setHeaderPositon.bind(this, i)}>\n <View style={[\n this.styles.header,\n {flexGrow: undefined},\n isSelected ? this.styles.activeHeader : null]}>\n <WmIcon\n id={this.getTestId(i + 'icon')}\n styles={this.theme.mergeStyle({}, this.styles.headerIcon, isSelected ? this.styles.activeHeaderIcon : null)}\n iconclass={header.icon}\n accessible={false}></WmIcon>\n <Text numberOfLines={1} style={[\n this.styles.headerText,\n isSelected ? this.styles.activeHeaderText : null]}\n {...this.getTestPropsForLabel(i + '_title')}\n >{header.title}</Text>\n </View>\n </View>\n </Tappable>\n );\n })}\n </View>\n <Animated.View style={[this.styles.activeIndicator, {\n transform: [{\n translateX: this.indicatorPosition\n }, {\n scaleX: this.indicatorWidth\n }]\n }]}>\n <Animated.View style={[{\n transform: [{\n scaleX: this.reverseIndicatorWidth\n }]\n },\n this.styles.arrowIndicator\n ]}>\n {\n arrowIndicator.backgroundImage ? (\n <BackgroundComponent\n image={arrowIndicator.backgroundImage}\n position={arrowIndicator.backgroundPosition}\n size={arrowIndicator.backgroundSize}\n repeat={arrowIndicator.backgroundRepeat}\n resizeMode={arrowIndicator.backgroundResizeMode}\n style={{borderRadius: this.styles.root.borderRadius}}\n ></BackgroundComponent>\n ) : null }\n <View style={this.styles.arrowIndicatorDot}></View>\n </Animated.View>\n </Animated.View>\n </View>)\n }\n\n renderWidget(props: WmTabheaderProps) {\n this.setPosition();\n return (\n <View\n style={{overflow: 'hidden', zIndex: 16}}\n {...this.getTestProps('tabheader')}\n onLayout={(event) => this.handleLayout(event)}\n >\n {props.shouldScroll ?\n <ScrollView\n ref={this.listRef}\n horizontal={true}\n onLayout={this.setHeaderPanelPositon.bind(this)}\n contentContainerStyle={{width: '100%'}}\n showsHorizontalScrollIndicator={false}\n scrollEnabled={props.shouldScroll}\n >\n {this.renderHeaderContent(props)}\n </ScrollView> : <>\n {this.renderHeaderContent(props)}\n </>\n }\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","createRef","Animated","Easing","Text","View","ScrollView","BaseComponent","BaseComponentState","WmTabheaderProps","DEFAULT_CLASS","Tappable","createSkeleton","BackgroundComponent","WmIcon","AccessibilityWidgetType","getAccessibilityProps","WmTabheaderState","WmTabheader","constructor","props","_defineProperty","Value","headerScrollPosition","addListener","value","headerScrollPositionValue","setHeaderPanelPositon","nativeEvent","headerPanelLayout","layout","forceUpdate","x","y","setHeaderPositon","index","headersLayout","state","data","length","setPosition","selectedTabIndex","onTabSelection","onIndexChange","scrollPosition","totalWidth","toIndicatorPosition","_this$headersLayout$s","_this$headersLayout$s2","_this$headerPanelLayo","initialPosition","isRTL","baseWidth","elementWidth","width","positionX","_this$headersLayout$s3","_this$headerPanelLayo2","_this$headerPanelLayo3","_this$listRef$current","toIndicatorWidth","toHeaderScrollPosition","forEach","p","i","minScrollPosition","maxScrollPosition","Math","max","min","positionIndicator","position","listRef","current","scrollTo","parallel","timing","useNativeDriver","toValue","duration","easing","linear","indicatorWidth","reverseIndicatorWidth","indicatorPosition","start","renderSkeleton","createElement","style","transform","translateX","onLayout","bind","styles","root","map","header","_this$styles$root","_this$styles$root2","_this$styles$activeHe","isSelected","onTap","key","flex","disableTouchEffect","disabletoucheffect","activeHeader","theme","borderRadius","height","activeHeaderText","fontSize","activeIndicator","scaleX","renderHeaderContent","arrowIndicator","_background","accessibilityProps","TABS","selected","accessibilitylabel","hint","accessibilityrole","_extends","getTestPropsForAction","flexGrow","undefined","id","getTestId","mergeStyle","headerIcon","activeHeaderIcon","iconclass","icon","accessible","numberOfLines","headerText","getTestPropsForLabel","title","backgroundImage","image","backgroundPosition","size","backgroundSize","repeat","backgroundRepeat","resizeMode","backgroundResizeMode","arrowIndicatorDot","renderWidget","overflow","zIndex","getTestProps","event","handleLayout","shouldScroll","ref","horizontal","contentContainerStyle","showsHorizontalScrollIndicator","scrollEnabled","Fragment"],"sources":["tabheader.component.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { Animated, Easing, LayoutChangeEvent, LayoutRectangle, Text, View, ScrollView } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\n\nimport WmTabheaderProps from './tabheader.props';\nimport { DEFAULT_CLASS, WmTabheaderStyles } from './tabheader.styles';\nimport { Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\nimport WmSkeleton, { createSkeleton } from '@wavemaker-ai/app-rn-runtime/components/basic/skeleton/skeleton.component';\nimport { WmSkeletonStyles } from '@wavemaker-ai/app-rn-runtime/components/basic/skeleton/skeleton.styles';\nimport { BackgroundComponent } from '@wavemaker-ai/app-rn-runtime/styles/background.component';\nimport WmIcon from \"@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component\";\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\n\nexport class WmTabheaderState extends BaseComponentState<WmTabheaderProps> {\n}\n\nexport default class WmTabheader extends BaseComponent<WmTabheaderProps, WmTabheaderState, WmTabheaderStyles> {\n\n private headerPanelLayout: LayoutRectangle = null as any;\n private headersLayout: LayoutRectangle[] = [];\n private headerScrollPosition = new Animated.Value(0);\n private headerScrollPositionValue = 0;\n private indicatorPosition = new Animated.Value(0);\n private reverseIndicatorWidth = new Animated.Value(0);\n private indicatorWidth = new Animated.Value(0);\n private listRef: any = createRef();\n\n constructor(props: WmTabheaderProps) {\n super(props, DEFAULT_CLASS, new WmTabheaderProps(), new WmTabheaderState());\n this.headerScrollPosition.addListener(({value}) => this.headerScrollPositionValue = value);\n }\n\n setHeaderPanelPositon(nativeEvent: LayoutChangeEvent) {\n if(this.headerPanelLayout === null) {\n this.headerPanelLayout = nativeEvent.nativeEvent.layout;\n this.forceUpdate();\n } else if (this.headerPanelLayout.x !== nativeEvent.nativeEvent.layout.x || this.headerPanelLayout.y !== nativeEvent.nativeEvent.layout.y) {\n this.headerPanelLayout = nativeEvent.nativeEvent.layout;\n this.forceUpdate();\n }\n }\n\n setHeaderPositon(index: number, nativeEvent: LayoutChangeEvent) {\n this.headersLayout[index] = nativeEvent.nativeEvent.layout;\n if(this.state.props.data.length === this.headersLayout.length) {\n this.setPosition()\n }\n\n if (index === this.props.selectedTabIndex) {\n this.forceUpdate();\n }\n }\n\n onTabSelection(index: number) {\n if (this.state.props.selectedTabIndex != index) {\n this.state.props.onIndexChange && this.state.props.onIndexChange(index);\n }\n }\n\n scrollPosition(selectedTabIndex: number, totalWidth: number, toIndicatorPosition: number) {\n const initialPosition = this.isRTL ? totalWidth : 0;\n const baseWidth = this.isRTL ? totalWidth - toIndicatorPosition : toIndicatorPosition;\n const elementWidth = this.isRTL ? -1 * (this.headersLayout[selectedTabIndex]?.width/2) : this.headersLayout[selectedTabIndex]?.width/2\n const positionX = selectedTabIndex === 0 ? initialPosition :\n ((baseWidth + (elementWidth)) - (this.headerPanelLayout?.width || 0) / 2);\n\n return positionX\n }\n\n setPosition() {\n const selectedTabIndex = this.state.props.selectedTabIndex ? this.state.props.selectedTabIndex : 0\n let toIndicatorPosition = 0;\n let toIndicatorWidth = this.headersLayout[selectedTabIndex]?.width || 0;\n let toHeaderScrollPosition = this.headerScrollPositionValue;\n let totalWidth = 0;\n if (this.state.props.data.length !== this.headersLayout.length) {\n return;\n }\n this.headersLayout.forEach((p, i) => {\n if (i < selectedTabIndex) {\n toIndicatorPosition += p.width;\n }\n totalWidth += p.width;\n });\n toHeaderScrollPosition = -1 * (toIndicatorPosition - (this.headerPanelLayout?.width || 0) / 2 + toIndicatorWidth/ 2) ;\n const minScrollPosition = -1 * (totalWidth - (this.headerPanelLayout?.width || 0));\n const maxScrollPosition = 0;\n toHeaderScrollPosition = Math.max(minScrollPosition, toHeaderScrollPosition);\n toHeaderScrollPosition = Math.min(maxScrollPosition, toHeaderScrollPosition);\n let positionIndicator = (toIndicatorPosition - (100 - toIndicatorWidth) / 2);\n let position = this.isRTL?-positionIndicator:positionIndicator;\n\n const positionX = this.scrollPosition(selectedTabIndex, totalWidth, toIndicatorPosition)\n\n this.listRef.current?.scrollTo({\n x: positionX,\n y: 0,\n Animated: true\n });\n\n Animated.parallel([\n Animated.timing(this.headerScrollPosition, {\n useNativeDriver: true,\n toValue: toHeaderScrollPosition,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.indicatorWidth, {\n useNativeDriver: true,\n toValue: toIndicatorWidth / 100,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.reverseIndicatorWidth, {\n useNativeDriver: true,\n toValue: toIndicatorWidth ? 100 / toIndicatorWidth : 0,\n duration: 200,\n easing: Easing.linear\n }),\n Animated.timing(this.indicatorPosition, {\n useNativeDriver: true,\n toValue: position,\n duration: 200,\n easing: Easing.linear\n })\n ]).start();\n }\n\n public renderSkeleton(props: WmTabheaderProps){\n return(\n <Animated.View style={{\n transform: [{\n translateX: this.headerScrollPosition\n }]\n }}\n onLayout={this.setHeaderPanelPositon.bind(this)}>\n <View style={this.styles.root}>\n {this.props.data.map((header ,i) => {\n const isSelected = i === this.props.selectedTabIndex;\n return (\n <Tappable onTap={this.onTabSelection.bind(this, i)} key={header.key} styles={{flex: 1}} disableTouchEffect={this.state.props.disabletoucheffect}>\n <View onLayout={this.setHeaderPositon.bind(this, i)} style={[\n this.styles.header,\n isSelected ? this.styles.activeHeader : null]}>\n {\n createSkeleton(this.theme, { root: { borderRadius: 4 }} as WmSkeletonStyles, {\n ...this.styles.root,\n width: this.styles.root?.width || \"80%\",\n height: this.styles.root?.height || this.styles.activeHeaderText?.fontSize || 16\n })\n }\n </View>\n </Tappable>\n );\n })}\n </View>\n <Animated.View style={[this.styles.activeIndicator, {\n transform: [{\n translateX: this.indicatorPosition\n }, {\n scaleX: this.indicatorWidth\n }]\n }]}></Animated.View>\n </Animated.View>\n\n )\n }\n\n public renderHeaderContent(props: WmTabheaderProps){\n const arrowIndicator = this.styles.arrowIndicator as any;\n return (\n <View>\n <View style={this.styles.root}>\n {this._background}\n {props.data.map((header ,i) => {\n const isSelected = i === props.selectedTabIndex ;\n const accessibilityProps = getAccessibilityProps(AccessibilityWidgetType.TABS, {\n selected: isSelected,\n accessibilitylabel: props.accessibilityProps[i].accessibilitylabel,\n hint: props.accessibilityProps[i].hint,\n accessibilityrole: props.accessibilityProps[i].accessibilityrole,\n });\n return (\n <Tappable onTap={this.onTabSelection.bind(this, i)}\n {...this.getTestPropsForAction(i +'')}\n key={header.key}\n disableTouchEffect={this.state.props.disabletoucheffect}\n styles={this.styles.header.flexGrow ? {flexGrow: this.styles.header.flexGrow} : null} accessibilityProps={accessibilityProps}>\n <View onLayout={this.setHeaderPositon.bind(this, i)}>\n <View style={[\n this.styles.header,\n {flexGrow: undefined},\n isSelected ? this.styles.activeHeader : null]}>\n <WmIcon\n id={this.getTestId(i + 'icon')}\n styles={this.theme.mergeStyle({}, this.styles.headerIcon, isSelected ? this.styles.activeHeaderIcon : null)}\n iconclass={header.icon}\n accessible={false}></WmIcon>\n <Text numberOfLines={1} style={[\n this.styles.headerText,\n isSelected ? this.styles.activeHeaderText : null]}\n {...this.getTestPropsForLabel(i + '_title')}\n >{header.title}</Text>\n </View>\n </View>\n </Tappable>\n );\n })}\n </View>\n <Animated.View style={[this.styles.activeIndicator, {\n transform: [{\n translateX: this.indicatorPosition\n }, {\n scaleX: this.indicatorWidth\n }]\n }]}>\n <Animated.View style={[{\n transform: [{\n scaleX: this.reverseIndicatorWidth\n }]\n },\n this.styles.arrowIndicator\n ]}>\n {\n arrowIndicator.backgroundImage ? (\n <BackgroundComponent\n image={arrowIndicator.backgroundImage}\n position={arrowIndicator.backgroundPosition}\n size={arrowIndicator.backgroundSize}\n repeat={arrowIndicator.backgroundRepeat}\n resizeMode={arrowIndicator.backgroundResizeMode}\n style={{borderRadius: this.styles.root.borderRadius}}\n ></BackgroundComponent>\n ) : null }\n <View style={this.styles.arrowIndicatorDot}></View>\n </Animated.View>\n </Animated.View>\n </View>)\n }\n\n renderWidget(props: WmTabheaderProps) {\n return (\n <View\n style={{overflow: 'hidden', zIndex: 16}}\n {...this.getTestProps('tabheader')}\n onLayout={(event) => this.handleLayout(event)}\n >\n {props.shouldScroll ?\n <ScrollView\n ref={this.listRef}\n horizontal={true}\n onLayout={this.setHeaderPanelPositon.bind(this)}\n contentContainerStyle={{width: '100%'}}\n showsHorizontalScrollIndicator={false}\n scrollEnabled={props.shouldScroll}\n >\n {this.renderHeaderContent(props)}\n </ScrollView> : <>\n {this.renderHeaderContent(props)}\n </>\n }\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -117,18 +117,22 @@ export default class WmForm extends BaseComponent {
|
|
|
117
117
|
}
|
|
118
118
|
delete() {}
|
|
119
119
|
registerFormFields(formFields, formWidgets) {
|
|
120
|
-
|
|
120
|
+
// A form without fields (only actions) gets a placeholder entry with no formFields/formWidgets
|
|
121
|
+
// from the fragment, so default them here instead of propagating undefined.
|
|
122
|
+
const formFieldsCopy = formFields || [];
|
|
123
|
+
const formWidgetsCopy = formWidgets || {};
|
|
124
|
+
forEach(formFieldsCopy, w => {
|
|
121
125
|
if (!w.form) {
|
|
122
126
|
w.form = this;
|
|
123
|
-
w.formwidget = w.props.formKey &&
|
|
127
|
+
w.formwidget = w.props.formKey && formWidgetsCopy[w.props.formKey] || w.props.name && formWidgetsCopy[w.props.name];
|
|
124
128
|
}
|
|
125
129
|
});
|
|
126
|
-
this.formFields =
|
|
127
|
-
this.formWidgets =
|
|
128
|
-
if (this.fieldRefs.length !==
|
|
129
|
-
this.fieldRefs =
|
|
130
|
+
this.formFields = formFieldsCopy;
|
|
131
|
+
this.formWidgets = formWidgetsCopy;
|
|
132
|
+
if (this.fieldRefs.length !== formFieldsCopy.length) {
|
|
133
|
+
this.fieldRefs = formFieldsCopy.map(() => /*#__PURE__*/React.createRef());
|
|
130
134
|
}
|
|
131
|
-
|
|
135
|
+
formFieldsCopy === null || formFieldsCopy === void 0 || formFieldsCopy.forEach((f, index) => {
|
|
132
136
|
f.fieldIndex = index;
|
|
133
137
|
if (f.props.name) {
|
|
134
138
|
set(this.formfields, f.props.name, f);
|
|
@@ -165,7 +169,7 @@ export default class WmForm extends BaseComponent {
|
|
|
165
169
|
});
|
|
166
170
|
}
|
|
167
171
|
registerFormActions(formActions) {
|
|
168
|
-
this.buttonArray = formActions;
|
|
172
|
+
this.buttonArray = formActions || [];
|
|
169
173
|
this.showActions();
|
|
170
174
|
}
|
|
171
175
|
_updateFieldOnDataSourceChange(field, formFields) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","BaseComponent","BaseComponentState","isDefined","debounce","find","forEach","isNil","get","set","cloneDeep","isEmpty","WmLabel","WmIcon","WmMessage","ToastConsumer","_viewPort","EVENTS","viewportEvents","getNumberOfColumnsFromResponsiveConfig","WmFormProps","DEFAULT_CLASS","isDataSetWidget","DEFAULT_FIELD_LAYOUT","width","flexGrow","flexShrink","WmFormState","constructor","args","_defineProperty","WmForm","props","handleSubmit","componentDidMount","getParentFormRef","parentForm","viewportUnsubscribe","subscribe","SIZE_CHANGE","updateFieldLayout","componentWillUnmount","itemsperrow","state","cols","basePercent","Math","floor","widthPercent","fieldLayoutStyle","currentStyle","setState","pformName","current","parent","parentFormRef","setReadonlyFields","_this$formFields","formFields","field","setReadOnlyState","isUpdateMode","setReadonlyState","updateMode","updateState","setTimeout","showActions","edit","new","cancel","delete","registerFormFields","formWidgets","w","form","formwidget","formKey","name","fieldRefs","length","map","createRef","f","index","fieldIndex","formfields","applyFormData","applyDefaultValue","formdataoutput","datavalue","dataoutput","_this$buttonArray","buttonArray","action","show","registerFormActions","formActions","_updateFieldOnDataSourceChange","isDataSetBound","widget","isRelated","relatedData","_this$parentFormRef","formData","formdata","formField","_formField$props","fw","key","isDefault","Array","isArray","updateFormFieldDefaultValue","dv","defaultvalue","_formField$props2","invokeEventCallback","bind","undefined","formreset","ff","defaultValue","id","_widget","isValid","reset","submit","_debouncedSubmitForm","generateFormFields","userFields","fields","metadata","data","onBeforerender","proxy","dynamicForm","generateComponent","layoutposition","onPropertyChange","$new","$old","_this$formFields2","setPrimaryKey","fieldName","primaryKey","indexOf","push","validateFieldsOnSubmit","val","onValidate","required","generator","msg","defaultValidatorMessages","validationmessage","validate","event","preventDefault","onBeforesubmit","formSubmit","onResultCb","error","response","status","onSuccess","postmessage","toggleMessage","onError","errormessage","updateDataOutput","Object","assign","type","message","messagelayout","showInlineMsg","toaster","showToast","placement","styles","bottom","text","hideOnClick","duration","onMsgClose","renderWidget","createElement","toastService","style","root","onLayout","handleLayout","showSpinner","_background","iconclass","iconurl","title","subheading","heading","flex","flexDirection","getTestId","listIcon","caption","accessibilityrole","hideclose","onClose","children"],"sources":["form.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, DimensionValue } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { isDefined, widgetsWithUndefinedValue } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { debounce, find, forEach, isNil, get, set, cloneDeep, isEmpty } from 'lodash';\n\nimport WmLabel from '@wavemaker-ai/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component';\nimport WmFormField, { WmFormFieldState } from '@wavemaker-ai/app-rn-runtime/components/data/form/form-field/form-field.component';\nimport WmMessage from '@wavemaker-ai/app-rn-runtime/components/basic/message/message.component';\nimport { ToastConsumer, ToastService } from '@wavemaker-ai/app-rn-runtime/core/toast.service';\nimport _viewPort, { EVENTS as viewportEvents } from '@wavemaker-ai/app-rn-runtime/core/viewport';\nimport { getNumberOfColumnsFromResponsiveConfig } from '@wavemaker-ai/app-rn-runtime/core/responsive.utils';\n\nimport WmFormProps from './form.props';\nimport { DEFAULT_CLASS, WmFormStyles } from './form.styles';\nimport { isDataSetWidget } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport WmFormAction, {\n WmFormActionState\n} from '@wavemaker-ai/app-rn-runtime/components/data/form/form-action/form-action.component';\n\nexport interface FormFieldLayoutStyle {\n width: DimensionValue;\n flexGrow: number;\n flexShrink: number;\n}\n\nconst DEFAULT_FIELD_LAYOUT: FormFieldLayoutStyle = {\n width: '100%',\n flexGrow: 0,\n flexShrink: 0,\n};\n\nexport class WmFormState extends BaseComponentState<WmFormProps> {\n isValid = false;\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined = 'success';\n message: string = '';\n showInlineMsg: boolean = false;\n isUpdateMode: boolean = true;\n dynamicForm: any;\n fieldLayoutStyle: FormFieldLayoutStyle = DEFAULT_FIELD_LAYOUT;\n}\nexport default class WmForm extends BaseComponent<WmFormProps, WmFormState, WmFormStyles> {\n public formFields: Array<WmFormField> = []; // contains array of direct widget elements [WmText, WmNumber, WmCurrent]\n public parentFormRef: any;\n public formfields: {[key: string]: WmFormField} = {};\n public formdataoutput: any;\n private toaster: any;\n public formActions: Array<WmFormAction> = [];\n public fieldRefs: Array<React.RefObject<any>> = [];\n primaryKey = [];\n buttonArray: Array<WmFormAction> = [];\n formWidgets: { [key: string]: BaseComponent<any, any, any> } = {}; // object containing key as name of formField and value as WmFormField proxy.\n constructor(props: WmFormProps) {\n super(props, DEFAULT_CLASS, new WmFormProps(), new WmFormState());\n }\n\n private _debouncedSubmitForm = debounce(this.handleSubmit, 250);\n private viewportUnsubscribe: (() => void) | null = null;\n\n componentDidMount() {\n super.componentDidMount();\n this.getParentFormRef(this.props.parentForm);\n this.viewportUnsubscribe = _viewPort.subscribe(viewportEvents.SIZE_CHANGE, () => {\n this.updateFieldLayout();\n });\n this.updateFieldLayout();\n }\n\n componentWillUnmount() {\n super.componentWillUnmount && super.componentWillUnmount();\n if (this.viewportUnsubscribe) {\n this.viewportUnsubscribe();\n }\n }\n\n private updateFieldLayout() {\n const itemsperrow = this.state.props.itemsperrow;\n const cols = getNumberOfColumnsFromResponsiveConfig(itemsperrow);\n const basePercent = cols > 0 ? Math.floor(100 / cols) : 100;\n const widthPercent = cols > 1 ? basePercent - 2 : basePercent;\n\n const fieldLayoutStyle: FormFieldLayoutStyle = {\n width: `${widthPercent}%` as DimensionValue,\n flexGrow: cols > 1 ? 1 : 0,\n flexShrink: 0,\n };\n\n const currentStyle = this.state.fieldLayoutStyle;\n if (currentStyle.width !== fieldLayoutStyle.width ||\n currentStyle.flexGrow !== fieldLayoutStyle.flexGrow) {\n this.setState({ fieldLayoutStyle } as WmFormState);\n }\n }\n\n getParentFormRef(pformName: string) {\n let current = this.parent;\n while (current) {\n if (pformName && (get(current, 'props.name') === pformName)) {\n this.parentFormRef = current;\n break;\n }\n current = current.parent;\n }\n }\n\n setReadonlyFields() {\n this.formFields?.forEach((field: any) => {\n field.setReadOnlyState(this.state.isUpdateMode);\n });\n }\n\n setReadonlyState(updateMode: any) {\n this.updateState({\n isUpdateMode: updateMode,\n } as WmFormState);\n setTimeout(() => {\n this.showActions();\n this.setReadonlyFields();\n }, 100);\n }\n\n edit() {\n this.setReadonlyState(true);\n }\n\n new() {\n this.setReadonlyState(true);\n }\n\n cancel() {\n this.setReadonlyState(false);\n }\n\n delete() { }\n\n registerFormFields(\n formFields: Array<WmFormField>,\n formWidgets: { [key: string]: BaseComponent<any, any, any> }\n ) {\n forEach(formFields, (w: WmFormField) => {\n if (!w.form) {\n w.form = this;\n w.formwidget = (w.props.formKey && formWidgets[w.props.formKey])\n || (w.props.name && formWidgets[w.props.name]);\n }\n });\n\n this.formFields = formFields;\n this.formWidgets = formWidgets;\n if (this.fieldRefs.length !== formFields.length) {\n this.fieldRefs = formFields.map(() => React.createRef());\n }\n formFields?.forEach((f: WmFormField, index: number) => {\n f.fieldIndex = index;\n if (f.props.name) {\n set(this.formfields, f.props.name, f);\n }\n })\n\n this.setReadonlyFields();\n\n this.applyFormData();\n this.applyDefaultValue();\n\n // setting default form dataoutput.\n if (!this.formdataoutput) {\n this.formdataoutput = {};\n formFields?.forEach((w: WmFormField) => {\n const name = get(w.props, 'formKey') || w.props.name;\n if (name) {\n set(this.formdataoutput, name, w.props.datavalue);\n }\n });\n this.updateState({\n props: {\n dataoutput: this.formdataoutput\n }\n } as WmFormState);\n }\n }\n\n showActions () {\n this.buttonArray?.forEach((action: any) => {\n action.updateState({\n props: {\n show: action.updateMode === this.state.isUpdateMode\n }} as WmFormActionState);\n });\n }\n\n registerFormActions(formActions: Array<WmFormAction>) {\n this.buttonArray = formActions;\n this.showActions();\n }\n\n private _updateFieldOnDataSourceChange(field: WmFormField, formFields: Array<WmFormField>) {\n if (!field.state.props.isDataSetBound && isDataSetWidget(field.props.widget)) {\n if (field.state.props.isRelated) {\n field.updateState({\n props: {\n isDataSetBound: true\n }} as WmFormFieldState);\n this.props.relatedData && this.props.relatedData(field);\n }\n }\n }\n\n applyFormData() {\n let formData = this.state.props.formdata || this.parentFormRef?.state.props.formdata;\n if (!formData || (this.parentFormRef && this.state.props.formdata)) {\n return;\n }\n forEach(this.formFields, (formField: WmFormField) => {\n let fw = formField.props?.name && this.formWidgets[formField.props.name];\n if (!fw) {\n fw = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n let key = get(formField, 'formKey') || get(fw, 'props.name');\n fw && fw.setState({ isDefault: true });\n if(Array.isArray(formData)){\n formData = formData[0];\n }\n formField.updateState({\n props: {\n datavalue: get(formData, key)\n }\n } as WmFormFieldState);\n });\n }\n\n updateFormFieldDefaultValue(formField: WmFormField) {\n if (formField) {\n const dv = formField.state.props.defaultvalue;\n if (isDefined(dv) && dv !== null && this.formFields) {\n let field = formField.props?.name && this.formWidgets[formField.props.name];\n if (!field) {\n field = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n if (field) {\n field.setState({ isDefault: true });\n field.updateState({\n props: {\n datavalue: dv\n }\n }, this.invokeEventCallback.bind(formField, 'onFieldChange', [undefined, formField, dv]));\n }\n }\n }\n }\n\n get dataoutput() {\n return this.formdataoutput;\n }\n\n applyDefaultValue(formField?: WmFormField) {\n if (formField) {\n this.updateFormFieldDefaultValue(formField);\n return;\n }\n forEach(this.formFields, (w: WmFormField) => {\n this.updateFormFieldDefaultValue(w);\n });\n }\n\n formreset() {\n this.formdataoutput = {};\n forEach(this.formFields, (ff: WmFormField) => {\n const defaultValue = isNil(ff.state.props.defaultvalue) ? '' : ff.state.props.defaultvalue;\n ff.updateState({\n props : {\n datavalue: defaultValue\n }\n } as WmFormFieldState, () => {\n const id = ff.props.formKey || ff.props.name;\n if (id) {\n let widget: BaseComponent<any, any, any> | undefined | any = this.formWidgets[id];\n if (!widget) {\n widget = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === ff.props.name\n });\n }\n widget.updateState({\n isValid: true,\n props : {\n datavalue: defaultValue\n }\n }, () => ff.updateState({\n isValid: true\n } as WmFormFieldState));\n widget?.reset();\n }\n }\n );\n });\n }\n\n submit() {\n this._debouncedSubmitForm();\n }\n\n // Function to generate and compile the form fields from the metadata\n generateFormFields() {\n let userFields;\n let fields = this.state.props.metadata ? this.state.props.metadata.data || this.state.props.metadata : [];\n\n if (isEmpty(fields)) {\n return;\n }\n\n if (this.props.onBeforerender) {\n userFields = this.invokeEventCallback('onBeforerender', [fields, this.proxy]);\n if (userFields) {\n fields = userFields;\n }\n }\n\n this.updateState({\n dynamicForm: this.props.generateComponent(fields, this.props.name, this.proxy, this.state.props.layoutposition === 'horizontal')\n } as WmFormState);\n\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'formdata':\n if ($new) {\n this.applyFormData();\n }\n break;\n case 'defaultmode':\n this.updateState({\n isUpdateMode: $new && $new === 'Edit' ? true : false,\n } as WmFormState);\n break;\n case 'dataset':\n this.formFields?.forEach((w: WmFormField) => {\n this._updateFieldOnDataSourceChange(w, this.formFields);\n });\n break;\n case 'metadata':\n // wait until addPageScript is called\n setTimeout(() => {\n this.generateFormFields();\n }, 0);\n break;\n }\n }\n setPrimaryKey(fieldName: string) {\n /*Store the primary key of data*/\n this.primaryKey = this.primaryKey || [];\n // @ts-ignore\n if (this.primaryKey.indexOf(fieldName) === -1) {\n // @ts-ignore\n this.primaryKey.push(fieldName);\n }\n }\n // Disable the form submit if form is in invalid state. Highlight all the invalid fields if validation type is default\n validateFieldsOnSubmit() {\n let isValid = true;\n forEach(this.formFields, (field) => {\n const val = field?.state.props.datavalue;\n\n const onValidate = get(field, 'props.onValidate');\n onValidate && onValidate(field);\n if (!val && field?.state.props.required && ((field?.props.primaryKey && field?.props.generator === 'assigned') || !field?.props.primaryKey)) {\n isValid = false;\n const msg = get(field.defaultValidatorMessages, 'required') || field.state.props.validationmessage;\n field.updateState({ isValid: isValid, props: {\n validationmessage: msg\n }} as WmFormFieldState);\n field.formwidget.validate && field.formwidget.validate(val);\n }\n // check for isvalid state of formwidget\n if (field.formwidget.state.isValid === false) {\n isValid = false;\n }\n });\n return isValid;\n }\n\n // @ts-ignore\n handleSubmit(event?: any) {\n event?.preventDefault();\n const formData = cloneDeep(this.state.props.dataoutput || this.formdataoutput);\n\n if (!this.validateFieldsOnSubmit()) {\n return false;\n }\n if (this.props.onBeforesubmit) {\n this.invokeEventCallback('onBeforesubmit', [ null, this.proxy, formData ]);\n }\n if (this.props.formSubmit) {\n this.props.formSubmit(formData, ((data: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(get(data, 'params'), 'success');\n }), ((error: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(error, '');\n }));\n } else {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n }\n }\n\n onResultCb(response: any, status: string, event?: any) {\n this.invokeEventCallback('onResult', [ null, this.proxy, response ]);\n if (status) {\n this.invokeEventCallback('onSuccess', [ null, this.proxy, response ]);\n !this.props.onSuccess && this.state.props.postmessage && this.toggleMessage('success', this.state.props.postmessage);\n } else {\n this.invokeEventCallback('onError', [ null, this.proxy, response ]);\n !this.props.onError && this.toggleMessage('error', this.state.props.errormessage || get(response, 'message'));\n }\n }\n\n updateDataOutput(key: string, val: any) {\n const current = this.formdataoutput || {};\n if (key) {\n set(current, key, val);\n } else {\n Object.assign(current, val)\n }\n this.formdataoutput = current;\n this.updateState({ props: { dataoutput: current }} as WmFormState);\n this.parentFormRef && this.parentFormRef.updateDataOutput && this.parentFormRef.updateDataOutput(undefined, this.formdataoutput);\n this.updateState({\n props: {\n dataoutput: this.formdataoutput\n }\n } as WmFormState);\n }\n\n toggleMessage(\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined,\n message: string\n ) {\n if (this.state.props.messagelayout === 'Inline') {\n this.setState({\n type: type,\n message: message,\n showInlineMsg: true\n } as WmFormState)\n return;\n }\n this.toaster.showToast({\n name: this, placement: \"\", styles: {bottom: 0},\n text: message,\n type: type,\n hideOnClick: true,\n duration: 5000\n });\n }\n\n onMsgClose() {\n this.setState({\n showInlineMsg: false\n } as WmFormState)\n }\n\n renderWidget(props: WmFormProps) {\n return (\n <ToastConsumer>\n {(toastService: ToastService) => {\n this.toaster = toastService;\n return <View style={this.styles.root} onLayout={(event) => this.handleLayout(event)}>\n {this.showSpinner()}\n {this._background}\n {props.iconclass || props.iconurl || props.title || props.subheading ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon id={this.getTestId('icon')} styles={this.styles.listIcon} iconclass={props.iconclass} iconurl={props.iconurl}></WmIcon>\n <View>\n <WmLabel id={this.getTestId('title')} styles={this.styles.title} caption={props.title} accessibilityrole='header'></WmLabel>\n <WmLabel id={this.getTestId('description')} styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>\n ) : null}\n {this.state.showInlineMsg ? <WmMessage type={this.state.type} caption={this.state.message} hideclose={false} onClose={this.onMsgClose.bind(this)}></WmMessage> : null\n }\n { props.metadata && this.state.dynamicForm }\n { props.children}\n </View>\n }\n }\n </ToastConsumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","View","BaseComponent","BaseComponentState","isDefined","debounce","find","forEach","isNil","get","set","cloneDeep","isEmpty","WmLabel","WmIcon","WmMessage","ToastConsumer","_viewPort","EVENTS","viewportEvents","getNumberOfColumnsFromResponsiveConfig","WmFormProps","DEFAULT_CLASS","isDataSetWidget","DEFAULT_FIELD_LAYOUT","width","flexGrow","flexShrink","WmFormState","constructor","args","_defineProperty","WmForm","props","handleSubmit","componentDidMount","getParentFormRef","parentForm","viewportUnsubscribe","subscribe","SIZE_CHANGE","updateFieldLayout","componentWillUnmount","itemsperrow","state","cols","basePercent","Math","floor","widthPercent","fieldLayoutStyle","currentStyle","setState","pformName","current","parent","parentFormRef","setReadonlyFields","_this$formFields","formFields","field","setReadOnlyState","isUpdateMode","setReadonlyState","updateMode","updateState","setTimeout","showActions","edit","new","cancel","delete","registerFormFields","formWidgets","formFieldsCopy","formWidgetsCopy","w","form","formwidget","formKey","name","fieldRefs","length","map","createRef","f","index","fieldIndex","formfields","applyFormData","applyDefaultValue","formdataoutput","datavalue","dataoutput","_this$buttonArray","buttonArray","action","show","registerFormActions","formActions","_updateFieldOnDataSourceChange","isDataSetBound","widget","isRelated","relatedData","_this$parentFormRef","formData","formdata","formField","_formField$props","fw","key","isDefault","Array","isArray","updateFormFieldDefaultValue","dv","defaultvalue","_formField$props2","invokeEventCallback","bind","undefined","formreset","ff","defaultValue","id","_widget","isValid","reset","submit","_debouncedSubmitForm","generateFormFields","userFields","fields","metadata","data","onBeforerender","proxy","dynamicForm","generateComponent","layoutposition","onPropertyChange","$new","$old","_this$formFields2","setPrimaryKey","fieldName","primaryKey","indexOf","push","validateFieldsOnSubmit","val","onValidate","required","generator","msg","defaultValidatorMessages","validationmessage","validate","event","preventDefault","onBeforesubmit","formSubmit","onResultCb","error","response","status","onSuccess","postmessage","toggleMessage","onError","errormessage","updateDataOutput","Object","assign","type","message","messagelayout","showInlineMsg","toaster","showToast","placement","styles","bottom","text","hideOnClick","duration","onMsgClose","renderWidget","createElement","toastService","style","root","onLayout","handleLayout","showSpinner","_background","iconclass","iconurl","title","subheading","heading","flex","flexDirection","getTestId","listIcon","caption","accessibilityrole","hideclose","onClose","children"],"sources":["form.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, DimensionValue } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { isDefined, widgetsWithUndefinedValue } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { debounce, find, forEach, isNil, get, set, cloneDeep, isEmpty } from 'lodash';\n\nimport WmLabel from '@wavemaker-ai/app-rn-runtime/components/basic/label/label.component';\nimport WmIcon from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component';\nimport WmFormField, { WmFormFieldState } from '@wavemaker-ai/app-rn-runtime/components/data/form/form-field/form-field.component';\nimport WmMessage from '@wavemaker-ai/app-rn-runtime/components/basic/message/message.component';\nimport { ToastConsumer, ToastService } from '@wavemaker-ai/app-rn-runtime/core/toast.service';\nimport _viewPort, { EVENTS as viewportEvents } from '@wavemaker-ai/app-rn-runtime/core/viewport';\nimport { getNumberOfColumnsFromResponsiveConfig } from '@wavemaker-ai/app-rn-runtime/core/responsive.utils';\n\nimport WmFormProps from './form.props';\nimport { DEFAULT_CLASS, WmFormStyles } from './form.styles';\nimport { isDataSetWidget } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport WmFormAction, {\n WmFormActionState\n} from '@wavemaker-ai/app-rn-runtime/components/data/form/form-action/form-action.component';\n\nexport interface FormFieldLayoutStyle {\n width: DimensionValue;\n flexGrow: number;\n flexShrink: number;\n}\n\nconst DEFAULT_FIELD_LAYOUT: FormFieldLayoutStyle = {\n width: '100%',\n flexGrow: 0,\n flexShrink: 0,\n};\n\nexport class WmFormState extends BaseComponentState<WmFormProps> {\n isValid = false;\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined = 'success';\n message: string = '';\n showInlineMsg: boolean = false;\n isUpdateMode: boolean = true;\n dynamicForm: any;\n fieldLayoutStyle: FormFieldLayoutStyle = DEFAULT_FIELD_LAYOUT;\n}\nexport default class WmForm extends BaseComponent<WmFormProps, WmFormState, WmFormStyles> {\n public formFields: Array<WmFormField> = []; // contains array of direct widget elements [WmText, WmNumber, WmCurrent]\n public parentFormRef: any;\n public formfields: {[key: string]: WmFormField} = {};\n public formdataoutput: any;\n private toaster: any;\n public formActions: Array<WmFormAction> = [];\n public fieldRefs: Array<React.RefObject<any>> = [];\n primaryKey = [];\n buttonArray: Array<WmFormAction> = [];\n formWidgets: { [key: string]: BaseComponent<any, any, any> } = {}; // object containing key as name of formField and value as WmFormField proxy.\n constructor(props: WmFormProps) {\n super(props, DEFAULT_CLASS, new WmFormProps(), new WmFormState());\n }\n\n private _debouncedSubmitForm = debounce(this.handleSubmit, 250);\n private viewportUnsubscribe: (() => void) | null = null;\n\n componentDidMount() {\n super.componentDidMount();\n this.getParentFormRef(this.props.parentForm);\n this.viewportUnsubscribe = _viewPort.subscribe(viewportEvents.SIZE_CHANGE, () => {\n this.updateFieldLayout();\n });\n this.updateFieldLayout();\n }\n\n componentWillUnmount() {\n super.componentWillUnmount && super.componentWillUnmount();\n if (this.viewportUnsubscribe) {\n this.viewportUnsubscribe();\n }\n }\n\n private updateFieldLayout() {\n const itemsperrow = this.state.props.itemsperrow;\n const cols = getNumberOfColumnsFromResponsiveConfig(itemsperrow);\n const basePercent = cols > 0 ? Math.floor(100 / cols) : 100;\n const widthPercent = cols > 1 ? basePercent - 2 : basePercent;\n\n const fieldLayoutStyle: FormFieldLayoutStyle = {\n width: `${widthPercent}%` as DimensionValue,\n flexGrow: cols > 1 ? 1 : 0,\n flexShrink: 0,\n };\n\n const currentStyle = this.state.fieldLayoutStyle;\n if (currentStyle.width !== fieldLayoutStyle.width ||\n currentStyle.flexGrow !== fieldLayoutStyle.flexGrow) {\n this.setState({ fieldLayoutStyle } as WmFormState);\n }\n }\n\n getParentFormRef(pformName: string) {\n let current = this.parent;\n while (current) {\n if (pformName && (get(current, 'props.name') === pformName)) {\n this.parentFormRef = current;\n break;\n }\n current = current.parent;\n }\n }\n\n setReadonlyFields() {\n this.formFields?.forEach((field: any) => {\n field.setReadOnlyState(this.state.isUpdateMode);\n });\n }\n\n setReadonlyState(updateMode: any) {\n this.updateState({\n isUpdateMode: updateMode,\n } as WmFormState);\n setTimeout(() => {\n this.showActions();\n this.setReadonlyFields();\n }, 100);\n }\n\n edit() {\n this.setReadonlyState(true);\n }\n\n new() {\n this.setReadonlyState(true);\n }\n\n cancel() {\n this.setReadonlyState(false);\n }\n\n delete() { }\n\n registerFormFields(\n formFields: Array<WmFormField>,\n formWidgets: { [key: string]: BaseComponent<any, any, any> }\n ) {\n // A form without fields (only actions) gets a placeholder entry with no formFields/formWidgets\n // from the fragment, so default them here instead of propagating undefined.\n const formFieldsCopy = formFields || [];\n const formWidgetsCopy = formWidgets || {};\n forEach(formFieldsCopy, (w: WmFormField) => {\n if (!w.form) {\n w.form = this;\n w.formwidget = (w.props.formKey && formWidgetsCopy[w.props.formKey])\n || (w.props.name && formWidgetsCopy[w.props.name]);\n }\n });\n\n this.formFields = formFieldsCopy;\n this.formWidgets = formWidgetsCopy;\n if (this.fieldRefs.length !== formFieldsCopy.length) {\n this.fieldRefs = formFieldsCopy.map(() => React.createRef());\n }\n formFieldsCopy?.forEach((f: WmFormField, index: number) => {\n f.fieldIndex = index;\n if (f.props.name) {\n set(this.formfields, f.props.name, f);\n }\n })\n\n this.setReadonlyFields();\n\n this.applyFormData();\n this.applyDefaultValue();\n\n // setting default form dataoutput.\n if (!this.formdataoutput) {\n this.formdataoutput = {};\n formFields?.forEach((w: WmFormField) => {\n const name = get(w.props, 'formKey') || w.props.name;\n if (name) {\n set(this.formdataoutput, name, w.props.datavalue);\n }\n });\n this.updateState({\n props: {\n dataoutput: this.formdataoutput\n }\n } as WmFormState);\n }\n }\n\n showActions () {\n this.buttonArray?.forEach((action: any) => {\n action.updateState({\n props: {\n show: action.updateMode === this.state.isUpdateMode\n }} as WmFormActionState);\n });\n }\n\n registerFormActions(formActions: Array<WmFormAction>) {\n this.buttonArray = formActions || [];\n this.showActions();\n }\n\n private _updateFieldOnDataSourceChange(field: WmFormField, formFields: Array<WmFormField>) {\n if (!field.state.props.isDataSetBound && isDataSetWidget(field.props.widget)) {\n if (field.state.props.isRelated) {\n field.updateState({\n props: {\n isDataSetBound: true\n }} as WmFormFieldState);\n this.props.relatedData && this.props.relatedData(field);\n }\n }\n }\n\n applyFormData() {\n let formData = this.state.props.formdata || this.parentFormRef?.state.props.formdata;\n if (!formData || (this.parentFormRef && this.state.props.formdata)) {\n return;\n }\n forEach(this.formFields, (formField: WmFormField) => {\n let fw = formField.props?.name && this.formWidgets[formField.props.name];\n if (!fw) {\n fw = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n let key = get(formField, 'formKey') || get(fw, 'props.name');\n fw && fw.setState({ isDefault: true });\n if(Array.isArray(formData)){\n formData = formData[0];\n }\n formField.updateState({\n props: {\n datavalue: get(formData, key)\n }\n } as WmFormFieldState);\n });\n }\n\n updateFormFieldDefaultValue(formField: WmFormField) {\n if (formField) {\n const dv = formField.state.props.defaultvalue;\n if (isDefined(dv) && dv !== null && this.formFields) {\n let field = formField.props?.name && this.formWidgets[formField.props.name];\n if (!field) {\n field = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === formField.props.name\n });\n }\n if (field) {\n field.setState({ isDefault: true });\n field.updateState({\n props: {\n datavalue: dv\n }\n }, this.invokeEventCallback.bind(formField, 'onFieldChange', [undefined, formField, dv]));\n }\n }\n }\n }\n\n get dataoutput() {\n return this.formdataoutput;\n }\n\n applyDefaultValue(formField?: WmFormField) {\n if (formField) {\n this.updateFormFieldDefaultValue(formField);\n return;\n }\n forEach(this.formFields, (w: WmFormField) => {\n this.updateFormFieldDefaultValue(w);\n });\n }\n\n formreset() {\n this.formdataoutput = {};\n forEach(this.formFields, (ff: WmFormField) => {\n const defaultValue = isNil(ff.state.props.defaultvalue) ? '' : ff.state.props.defaultvalue;\n ff.updateState({\n props : {\n datavalue: defaultValue\n }\n } as WmFormFieldState, () => {\n const id = ff.props.formKey || ff.props.name;\n if (id) {\n let widget: BaseComponent<any, any, any> | undefined | any = this.formWidgets[id];\n if (!widget) {\n widget = find(this.formWidgets, (fw: BaseComponent<any, any, any>) => {\n return get(fw, 'formfieldname') === ff.props.name\n });\n }\n widget.updateState({\n isValid: true,\n props : {\n datavalue: defaultValue\n }\n }, () => ff.updateState({\n isValid: true\n } as WmFormFieldState));\n widget?.reset();\n }\n }\n );\n });\n }\n\n submit() {\n this._debouncedSubmitForm();\n }\n\n // Function to generate and compile the form fields from the metadata\n generateFormFields() {\n let userFields;\n let fields = this.state.props.metadata ? this.state.props.metadata.data || this.state.props.metadata : [];\n\n if (isEmpty(fields)) {\n return;\n }\n\n if (this.props.onBeforerender) {\n userFields = this.invokeEventCallback('onBeforerender', [fields, this.proxy]);\n if (userFields) {\n fields = userFields;\n }\n }\n\n this.updateState({\n dynamicForm: this.props.generateComponent(fields, this.props.name, this.proxy, this.state.props.layoutposition === 'horizontal')\n } as WmFormState);\n\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'formdata':\n if ($new) {\n this.applyFormData();\n }\n break;\n case 'defaultmode':\n this.updateState({\n isUpdateMode: $new && $new === 'Edit' ? true : false,\n } as WmFormState);\n break;\n case 'dataset':\n this.formFields?.forEach((w: WmFormField) => {\n this._updateFieldOnDataSourceChange(w, this.formFields);\n });\n break;\n case 'metadata':\n // wait until addPageScript is called\n setTimeout(() => {\n this.generateFormFields();\n }, 0);\n break;\n }\n }\n setPrimaryKey(fieldName: string) {\n /*Store the primary key of data*/\n this.primaryKey = this.primaryKey || [];\n // @ts-ignore\n if (this.primaryKey.indexOf(fieldName) === -1) {\n // @ts-ignore\n this.primaryKey.push(fieldName);\n }\n }\n // Disable the form submit if form is in invalid state. Highlight all the invalid fields if validation type is default\n validateFieldsOnSubmit() {\n let isValid = true;\n forEach(this.formFields, (field) => {\n const val = field?.state.props.datavalue;\n\n const onValidate = get(field, 'props.onValidate');\n onValidate && onValidate(field);\n if (!val && field?.state.props.required && ((field?.props.primaryKey && field?.props.generator === 'assigned') || !field?.props.primaryKey)) {\n isValid = false;\n const msg = get(field.defaultValidatorMessages, 'required') || field.state.props.validationmessage;\n field.updateState({ isValid: isValid, props: {\n validationmessage: msg\n }} as WmFormFieldState);\n field.formwidget.validate && field.formwidget.validate(val);\n }\n // check for isvalid state of formwidget\n if (field.formwidget.state.isValid === false) {\n isValid = false;\n }\n });\n return isValid;\n }\n\n // @ts-ignore\n handleSubmit(event?: any) {\n event?.preventDefault();\n const formData = cloneDeep(this.state.props.dataoutput || this.formdataoutput);\n\n if (!this.validateFieldsOnSubmit()) {\n return false;\n }\n if (this.props.onBeforesubmit) {\n this.invokeEventCallback('onBeforesubmit', [ null, this.proxy, formData ]);\n }\n if (this.props.formSubmit) {\n this.props.formSubmit(formData, ((data: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(get(data, 'params'), 'success');\n }), ((error: any) => {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n this.onResultCb(error, '');\n }));\n } else {\n this.invokeEventCallback('onSubmit', [ null, this.proxy, formData ]);\n }\n }\n\n onResultCb(response: any, status: string, event?: any) {\n this.invokeEventCallback('onResult', [ null, this.proxy, response ]);\n if (status) {\n this.invokeEventCallback('onSuccess', [ null, this.proxy, response ]);\n !this.props.onSuccess && this.state.props.postmessage && this.toggleMessage('success', this.state.props.postmessage);\n } else {\n this.invokeEventCallback('onError', [ null, this.proxy, response ]);\n !this.props.onError && this.toggleMessage('error', this.state.props.errormessage || get(response, 'message'));\n }\n }\n\n updateDataOutput(key: string, val: any) {\n const current = this.formdataoutput || {};\n if (key) {\n set(current, key, val);\n } else {\n Object.assign(current, val)\n }\n this.formdataoutput = current;\n this.updateState({ props: { dataoutput: current }} as WmFormState);\n this.parentFormRef && this.parentFormRef.updateDataOutput && this.parentFormRef.updateDataOutput(undefined, this.formdataoutput);\n this.updateState({\n props: {\n dataoutput: this.formdataoutput\n }\n } as WmFormState);\n }\n\n toggleMessage(\n type: 'success' | 'warning' | 'error' | 'info' | 'loading' | undefined,\n message: string\n ) {\n if (this.state.props.messagelayout === 'Inline') {\n this.setState({\n type: type,\n message: message,\n showInlineMsg: true\n } as WmFormState)\n return;\n }\n this.toaster.showToast({\n name: this, placement: \"\", styles: {bottom: 0},\n text: message,\n type: type,\n hideOnClick: true,\n duration: 5000\n });\n }\n\n onMsgClose() {\n this.setState({\n showInlineMsg: false\n } as WmFormState)\n }\n\n renderWidget(props: WmFormProps) {\n return (\n <ToastConsumer>\n {(toastService: ToastService) => {\n this.toaster = toastService;\n return <View style={this.styles.root} onLayout={(event) => this.handleLayout(event)}>\n {this.showSpinner()}\n {this._background}\n {props.iconclass || props.iconurl || props.title || props.subheading ? (\n <View style={this.styles.heading}>\n <View style={{flex: 1, flexDirection: 'row'}}>\n <WmIcon id={this.getTestId('icon')} styles={this.styles.listIcon} iconclass={props.iconclass} iconurl={props.iconurl}></WmIcon>\n <View>\n <WmLabel id={this.getTestId('title')} styles={this.styles.title} caption={props.title} accessibilityrole='header'></WmLabel>\n <WmLabel id={this.getTestId('description')} styles={this.styles.subheading} caption={props.subheading}></WmLabel>\n </View>\n </View>\n </View>\n ) : null}\n {this.state.showInlineMsg ? <WmMessage type={this.state.type} caption={this.state.message} hideclose={false} onClose={this.onMsgClose.bind(this)}></WmMessage> : null\n }\n { props.metadata && this.state.dynamicForm }\n { props.children}\n </View>\n }\n }\n </ToastConsumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -59,7 +59,7 @@ export default class WmTextarea extends BaseInputComponent {
|
|
|
59
59
|
},
|
|
60
60
|
placeholderTextColor: this.styles.placeholderText.color,
|
|
61
61
|
isInputFocused: this.state.isInputFocused,
|
|
62
|
-
style: [this.styles.root, this.styles.text, this.state.isValid ? {} : this.styles.invalid, this.state.isInputFocused ? this.theme.mergeStyle(this.styles.root, this.styles.focused, foundationStyle === null || foundationStyle === void 0 ? void 0 : foundationStyle.focused, this.theme.getStyle(`${classname}`).focused) : {}, this.state.props.disabled ? this.theme.mergeStyle(this.styles.root, foundationStyle === null || foundationStyle === void 0 ? void 0 : foundationStyle.disabled, this.theme.getStyle(`${classname}`).disabled) : {}],
|
|
62
|
+
style: [this.theme.mergeStyle(this.styles.root, foundationStyle === null || foundationStyle === void 0 ? void 0 : foundationStyle.root), this.theme.mergeStyle(this.styles.text, foundationStyle === null || foundationStyle === void 0 ? void 0 : foundationStyle.text, this.theme.getStyle(`${classname}`)), this.state.isValid ? {} : this.styles.invalid, this.state.isInputFocused ? this.theme.mergeStyle(this.styles.root, this.styles.focused, foundationStyle === null || foundationStyle === void 0 ? void 0 : foundationStyle.focused, this.theme.getStyle(`${classname}`).focused) : {}, this.state.props.disabled ? this.theme.mergeStyle(this.styles.root, foundationStyle === null || foundationStyle === void 0 ? void 0 : foundationStyle.disabled, this.theme.getStyle(`${classname}`).disabled) : {}],
|
|
63
63
|
multiline: true,
|
|
64
64
|
numberOfLines: 4,
|
|
65
65
|
background: this._background,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","Text","WmTextareaProps","DEFAULT_CLASS","BaseInputComponent","BaseInputState","WMTextInput","isNull","AccessibilityWidgetType","getAccessibilityProps","createSkeleton","WmTextareaState","WmTextarea","constructor","props","getStyleClassName","classes","state","floatinglabel","push","join","renderSkeleton","skeletonWidth","skeletonHeight","skeletonwidth","_this$styles$root","styles","root","width","skeletonheight","_this$styles$root2","height","theme","skeleton","renderWidget","_this$state$textValue","_this$theme$getStyle","_this$theme$getStyle2","_this$styles$root3","_props$maxchars","opts","valueExpr","OS","foundationStyle","getStyle","classname","split","pop","textValue","toString","createElement","Fragment","_extends","getTestPropsForInput","TEXTAREA","ref","widgetRef","selectionStart","selectionEnd","cursor","placeholderTextColor","placeholderText","color","isInputFocused","style","text","isValid","invalid","mergeStyle","focused","disabled","multiline","numberOfLines","background","_background","keyboardType","floatingLabel","floatingLabelStyle","activeFloatingLabelStyle","activeFloatingLabel","variant","labelBackground","backgroundColor","undefined","inactiveFloatingLabelStyle","inactiveFloatingLabel","autoComplete","autocomplete","autoFocus","autofocus","editable","readonly","maxLength","maxchars","placeholder","onBlur","bind","onFocus","onKeyPress","onChangeText","onChange","invokeChange","allowContentSelection","userSelect","handleLayout","limitdisplaytext","helpText"],"sources":["textarea.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Platform,Text } from 'react-native';\nimport WmTextareaProps from './textarea.props';\nimport { DEFAULT_CLASS, WmTextareaStyles } from './textarea.styles';\nimport {\n BaseInputComponent,\n BaseInputState\n} from '@wavemaker-ai/app-rn-runtime/components/input/baseinput/baseinput.component';\nimport { WMTextInput } from '@wavemaker-ai/app-rn-runtime/core/components/textinput.component';\nimport { isNull } from 'lodash';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\nimport { createSkeleton } from '@wavemaker-ai/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmTextareaState extends BaseInputState<WmTextareaProps> {}\n\nexport default class WmTextarea extends BaseInputComponent<WmTextareaProps, WmTextareaState, WmTextareaStyles> {\n\n constructor(props: WmTextareaProps) {\n super(props, DEFAULT_CLASS, new WmTextareaProps(), new WmTextareaState());\n }\n\n public getStyleClassName(): string | undefined {\n const classes = [];\n if (this.state.props.floatinglabel) {\n classes.push('app-textarea-with-label');\n }\n classes.push(super.getStyleClassName());\n return classes.join(' ');\n }\n\n public renderSkeleton(props: WmTextareaProps): React.ReactNode {\n let skeletonWidth, skeletonHeight;\n if(this.props.skeletonwidth == \"0\") {\n skeletonWidth = 0\n } else {\n skeletonWidth = this.props.skeletonwidth || this.styles.root?.width\n }\n\n if(this.props.skeletonheight == \"0\") {\n skeletonHeight = 0\n } else {\n skeletonHeight = this.props.skeletonheight || this.styles.root?.height;\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: skeletonWidth as DimensionValue,\n height: skeletonHeight as DimensionValue\n });\n }\n\n renderWidget(props: WmTextareaProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n const foundationStyle = this.theme.getStyle('app-input');\n const classname = this.state.props.classname ? this.state.props.classname.split(\" \").pop() : '';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return (\n <>\n <WMTextInput\n {...this.getTestPropsForInput()}\n {...getAccessibilityProps(\n AccessibilityWidgetType.TEXTAREA,\n props\n )}\n ref={(ref: any) => {this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }}}\n placeholderTextColor={this.styles.placeholderText.color as any}\n isInputFocused={ this.state.isInputFocused }\n style={[this.styles.root, this.styles.text, this.state.isValid ? {} : this.styles.invalid,\n this.state.isInputFocused ? this.theme.mergeStyle(this.styles.root, this.styles.focused, foundationStyle?.focused, this.theme.getStyle(`${classname}`).focused) : {},\n this.state.props.disabled ? this.theme.mergeStyle(this.styles.root, foundationStyle?.disabled, this.theme.getStyle(`${classname}`).disabled) : {}\n ]}\n multiline={true}\n numberOfLines={4}\n background={this._background}\n keyboardType={this.state.keyboardType}\n {...opts}\n floatingLabel={props.floatinglabel}\n floatingLabelStyle={this.styles.floatingLabel}\n activeFloatingLabelStyle={this.theme.mergeStyle(this.styles.activeFloatingLabel,\n this.theme.getStyle('app-textarea-with-label')?.activeFloatingLabel,\n this.theme.getStyle(`${classname}`)?.focused)}\n variant={props.variant as 'filled' | 'outlined' | undefined}\n labelBackground={props.variant === 'outlined' ? (this.styles.root?.backgroundColor as string) : undefined}\n inactiveFloatingLabelStyle={this.styles.inactiveFloatingLabel}\n autoComplete={props.autocomplete ? 'username' : 'off'}\n autoFocus={props.autofocus}\n editable={props.disabled || props.readonly ? false : true}\n maxLength={props.maxchars ?? undefined}\n placeholder={props.placeholder || 'Place your text'}\n onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.onKeyPress.bind(this)}\n onChangeText={this.onChangeText.bind(this)}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n handleLayout={this.handleLayout}\n />\n { (props.maxchars && props.limitdisplaytext) && <Text\n style={[\n this.styles.helpText\n ]} >\n {props.limitdisplaytext}\n </Text>}\n </>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Platform","Text","WmTextareaProps","DEFAULT_CLASS","BaseInputComponent","BaseInputState","WMTextInput","isNull","AccessibilityWidgetType","getAccessibilityProps","createSkeleton","WmTextareaState","WmTextarea","constructor","props","getStyleClassName","classes","state","floatinglabel","push","join","renderSkeleton","skeletonWidth","skeletonHeight","skeletonwidth","_this$styles$root","styles","root","width","skeletonheight","_this$styles$root2","height","theme","skeleton","renderWidget","_this$state$textValue","_this$theme$getStyle","_this$theme$getStyle2","_this$styles$root3","_props$maxchars","opts","valueExpr","OS","foundationStyle","getStyle","classname","split","pop","textValue","toString","createElement","Fragment","_extends","getTestPropsForInput","TEXTAREA","ref","widgetRef","selectionStart","selectionEnd","cursor","placeholderTextColor","placeholderText","color","isInputFocused","style","mergeStyle","text","isValid","invalid","focused","disabled","multiline","numberOfLines","background","_background","keyboardType","floatingLabel","floatingLabelStyle","activeFloatingLabelStyle","activeFloatingLabel","variant","labelBackground","backgroundColor","undefined","inactiveFloatingLabelStyle","inactiveFloatingLabel","autoComplete","autocomplete","autoFocus","autofocus","editable","readonly","maxLength","maxchars","placeholder","onBlur","bind","onFocus","onKeyPress","onChangeText","onChange","invokeChange","allowContentSelection","userSelect","handleLayout","limitdisplaytext","helpText"],"sources":["textarea.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Platform,Text } from 'react-native';\nimport WmTextareaProps from './textarea.props';\nimport { DEFAULT_CLASS, WmTextareaStyles } from './textarea.styles';\nimport {\n BaseInputComponent,\n BaseInputState\n} from '@wavemaker-ai/app-rn-runtime/components/input/baseinput/baseinput.component';\nimport { WMTextInput } from '@wavemaker-ai/app-rn-runtime/core/components/textinput.component';\nimport { isNull } from 'lodash';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\nimport { createSkeleton } from '@wavemaker-ai/app-rn-runtime/components/basic/skeleton/skeleton.component';\n\nexport class WmTextareaState extends BaseInputState<WmTextareaProps> {}\n\nexport default class WmTextarea extends BaseInputComponent<WmTextareaProps, WmTextareaState, WmTextareaStyles> {\n\n constructor(props: WmTextareaProps) {\n super(props, DEFAULT_CLASS, new WmTextareaProps(), new WmTextareaState());\n }\n\n public getStyleClassName(): string | undefined {\n const classes = [];\n if (this.state.props.floatinglabel) {\n classes.push('app-textarea-with-label');\n }\n classes.push(super.getStyleClassName());\n return classes.join(' ');\n }\n\n public renderSkeleton(props: WmTextareaProps): React.ReactNode {\n let skeletonWidth, skeletonHeight;\n if(this.props.skeletonwidth == \"0\") {\n skeletonWidth = 0\n } else {\n skeletonWidth = this.props.skeletonwidth || this.styles.root?.width\n }\n\n if(this.props.skeletonheight == \"0\") {\n skeletonHeight = 0\n } else {\n skeletonHeight = this.props.skeletonheight || this.styles.root?.height;\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: skeletonWidth as DimensionValue,\n height: skeletonHeight as DimensionValue\n });\n }\n\n renderWidget(props: WmTextareaProps) {\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n const foundationStyle = this.theme.getStyle('app-input');\n const classname = this.state.props.classname ? this.state.props.classname.split(\" \").pop() : '';\n opts[valueExpr] = this.state.textValue?.toString() || '';\n return (\n <>\n <WMTextInput\n {...this.getTestPropsForInput()}\n {...getAccessibilityProps(\n AccessibilityWidgetType.TEXTAREA,\n props\n )}\n ref={(ref: any) => {this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }}}\n placeholderTextColor={this.styles.placeholderText.color as any}\n isInputFocused={ this.state.isInputFocused }\n style={[this.theme.mergeStyle(this.styles.root, foundationStyle?.root),\n this.theme.mergeStyle(this.styles.text, foundationStyle?.text, this.theme.getStyle(`${classname}`)),\n this.state.isValid ? {} : this.styles.invalid,\n this.state.isInputFocused ? this.theme.mergeStyle(this.styles.root, this.styles.focused, foundationStyle?.focused, this.theme.getStyle(`${classname}`).focused) : {},\n this.state.props.disabled ? this.theme.mergeStyle(this.styles.root, foundationStyle?.disabled, this.theme.getStyle(`${classname}`).disabled) : {}\n ]}\n multiline={true}\n numberOfLines={4}\n background={this._background}\n keyboardType={this.state.keyboardType}\n {...opts}\n floatingLabel={props.floatinglabel}\n floatingLabelStyle={this.styles.floatingLabel}\n activeFloatingLabelStyle={this.theme.mergeStyle(this.styles.activeFloatingLabel,\n this.theme.getStyle('app-textarea-with-label')?.activeFloatingLabel,\n this.theme.getStyle(`${classname}`)?.focused)}\n variant={props.variant as 'filled' | 'outlined' | undefined}\n labelBackground={props.variant === 'outlined' ? (this.styles.root?.backgroundColor as string) : undefined}\n inactiveFloatingLabelStyle={this.styles.inactiveFloatingLabel}\n autoComplete={props.autocomplete ? 'username' : 'off'}\n autoFocus={props.autofocus}\n editable={props.disabled || props.readonly ? false : true}\n maxLength={props.maxchars ?? undefined}\n placeholder={props.placeholder || 'Place your text'}\n onBlur={this.onBlur.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onKeyPress={this.onKeyPress.bind(this)}\n onChangeText={this.onChangeText.bind(this)}\n onChange={this.invokeChange.bind(this)}\n allowContentSelection={this.styles.text.userSelect === 'text'}\n handleLayout={this.handleLayout}\n />\n { (props.maxchars && props.limitdisplaytext) && <Text\n style={[\n this.styles.helpText\n ]} >\n {props.limitdisplaytext}\n </Text>}\n </>);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
1
2
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
3
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
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); }
|
|
4
5
|
import React, { createRef } from 'react';
|
|
5
|
-
import { KeyboardAvoidingView, Platform, View } from 'react-native';
|
|
6
|
+
import { KeyboardAvoidingView, PanResponder, Platform, View } from 'react-native';
|
|
6
7
|
import { isWebPreviewMode } from '@wavemaker-ai/app-rn-runtime/core/utils';
|
|
7
8
|
import { HideMode } from '@wavemaker-ai/app-rn-runtime/core/if.component';
|
|
8
9
|
import { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';
|
|
@@ -26,6 +27,17 @@ export default class WmPageContent extends BaseComponent {
|
|
|
26
27
|
super(props, DEFAULT_CLASS, new WmPageContentProps());
|
|
27
28
|
_defineProperty(this, "scrollRef", void 0);
|
|
28
29
|
_defineProperty(this, "_unsubscribeNavHeight", void 0);
|
|
30
|
+
_defineProperty(this, "handleHorizontalSwipeEnd", dx => {
|
|
31
|
+
if (dx <= -50) {
|
|
32
|
+
this.invokeEventCallback('onSwipeleft', [null, this.proxy]);
|
|
33
|
+
} else if (dx >= 50) {
|
|
34
|
+
this.invokeEventCallback('onSwiperight', [null, this.proxy]);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
_defineProperty(this, "horizontalSwipeResponder", PanResponder.create({
|
|
38
|
+
onMoveShouldSetPanResponder: (e, gestureState) => !!(this.props.onSwipeleft || this.props.onSwiperight) && Math.abs(gestureState.dx) > Math.abs(gestureState.dy) && Math.abs(gestureState.dx) > 30,
|
|
39
|
+
onPanResponderRelease: (e, gestureState) => this.handleHorizontalSwipeEnd(gestureState.dx)
|
|
40
|
+
}));
|
|
29
41
|
_defineProperty(this, "handleOnScrollEndDrag", event => {
|
|
30
42
|
if (this.context) {
|
|
31
43
|
var _event$nativeEvent;
|
|
@@ -141,14 +153,14 @@ export default class WmPageContent extends BaseComponent {
|
|
|
141
153
|
const autoLayoutProps = extractAutoLayoutProps(props);
|
|
142
154
|
const hasAutoLayout = isAutoLayout(autoLayoutProps);
|
|
143
155
|
const autoLayoutStyles = hasAutoLayout ? [getDirectionStyle(autoLayoutProps), getContentContainerStyle(autoLayoutProps), getDimensionStyle(autoLayoutProps, this.styles.root)] : [];
|
|
144
|
-
return props.overflow == "scroll" || isWebPreviewMode() ? /*#__PURE__*/React.createElement(View, {
|
|
156
|
+
return props.overflow == "scroll" || isWebPreviewMode() ? /*#__PURE__*/React.createElement(View, _extends({
|
|
145
157
|
style: {
|
|
146
158
|
height: '100%',
|
|
147
159
|
width: '100%',
|
|
148
160
|
...borderRadiusStyles,
|
|
149
161
|
backgroundColor: this._showSkeleton && this.styles.skeleton.root.backgroundColor ? this.styles.skeleton.root.backgroundColor : this.styles.root.backgroundColor
|
|
150
162
|
}
|
|
151
|
-
}, this._background, /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, (insets = {
|
|
163
|
+
}, this.horizontalSwipeResponder.panHandlers), this._background, /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, (insets = {
|
|
152
164
|
top: 0,
|
|
153
165
|
bottom: 0,
|
|
154
166
|
left: 0,
|
|
@@ -188,11 +200,11 @@ export default class WmPageContent extends BaseComponent {
|
|
|
188
200
|
removeClippedSubviews: Platform.OS == 'android',
|
|
189
201
|
onScrollEndDrag: this.handleOnScrollEndDrag
|
|
190
202
|
}, props.children));
|
|
191
|
-
})) : /*#__PURE__*/React.createElement(View, {
|
|
203
|
+
})) : /*#__PURE__*/React.createElement(View, _extends({
|
|
192
204
|
style: [this.styles.root, {
|
|
193
205
|
backgroundColor: this._showSkeleton ? this.styles.skeleton.root.backgroundColor : this.styles.root.backgroundColor
|
|
194
206
|
}, ...autoLayoutStyles]
|
|
195
|
-
}, /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, (insets = {
|
|
207
|
+
}, this.horizontalSwipeResponder.panHandlers), /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, (insets = {
|
|
196
208
|
top: 0,
|
|
197
209
|
bottom: 0,
|
|
198
210
|
left: 0,
|