@wavemaker-ai/app-rn-runtime 12.0.2-rc.647771 → 12.1.0-rc.347

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/components/advanced/webview/webview.component.js +1 -1
  2. package/components/advanced/webview/webview.component.js.map +1 -1
  3. package/components/basic/bottomsheet/bottomsheet.component.js +1 -1
  4. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  5. package/components/basic/label/label.component.js +2 -2
  6. package/components/basic/label/label.component.js.map +1 -1
  7. package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
  8. package/components/container/tabs/tabheader/tabheader.component.js +10 -3
  9. package/components/container/tabs/tabheader/tabheader.component.js.map +1 -1
  10. package/components/data/form/form-field/form-field.component.js +5 -0
  11. package/components/data/form/form-field/form-field.component.js.map +1 -1
  12. package/components/data/form/form.component.js +12 -8
  13. package/components/data/form/form.component.js.map +1 -1
  14. package/components/data/list/list.component.js +5 -2
  15. package/components/data/list/list.component.js.map +1 -1
  16. package/components/dialogs/dialog/dialog.component.js +1 -1
  17. package/components/dialogs/dialog/dialog.component.js.map +1 -1
  18. package/components/input/chips/chips.component.js +1 -1
  19. package/components/input/chips/chips.component.js.map +1 -1
  20. package/components/input/chips/chips.props.js +1 -0
  21. package/components/input/chips/chips.props.js.map +1 -1
  22. package/components/input/textarea/textarea.component.js +1 -1
  23. package/components/input/textarea/textarea.component.js.map +1 -1
  24. package/components/page/page-content/page-content.component.js +152 -17
  25. package/components/page/page-content/page-content.component.js.map +1 -1
  26. package/components/page/page-content/page-content.props.js +5 -0
  27. package/components/page/page-content/page-content.props.js.map +1 -1
  28. package/components/page/page-content/pull-to-refresh.component.js +288 -0
  29. package/components/page/page-content/pull-to-refresh.component.js.map +1 -0
  30. package/core/AppConfig.js.map +1 -1
  31. package/core/base.component.js +14 -0
  32. package/core/base.component.js.map +1 -1
  33. package/core/sticky-wrapper.js +37 -34
  34. package/core/sticky-wrapper.js.map +1 -1
  35. package/gestures/carousel-swipe.animation.js +1 -0
  36. package/gestures/carousel-swipe.animation.js.map +1 -1
  37. package/npm-shrinkwrap.json +1285 -570
  38. package/package-lock.json +1285 -570
  39. package/package.json +3 -3
  40. package/runtime/App.js +52 -36
  41. package/runtime/App.js.map +1 -1
  42. package/runtime/App.navigator.js +4 -1
  43. package/runtime/App.navigator.js.map +1 -1
  44. package/runtime/base-fragment.component.js +1 -0
  45. package/runtime/base-fragment.component.js.map +1 -1
  46. package/runtime/services/app-security.service.js +40 -19
  47. package/runtime/services/app-security.service.js.map +1 -1
  48. package/runtime/services/browser.constants.js +3 -0
  49. package/runtime/services/browser.constants.js.map +1 -0
  50. package/runtime/services/browser.service.js +321 -0
  51. package/runtime/services/browser.service.js.map +1 -0
  52. package/runtime/services/external-auth-callback.service.js +44 -0
  53. package/runtime/services/external-auth-callback.service.js.map +1 -0
  54. package/runtime/services/webprocess.service.js +8 -3
  55. package/runtime/services/webprocess.service.js.map +1 -1
  56. package/styles/background.component.js +61 -2
  57. package/styles/background.component.js.map +1 -1
  58. package/styles/style-prop.validator.js +4 -0
  59. package/styles/style-prop.validator.js.map +1 -1
  60. package/styles/style-props.js +2 -0
  61. package/styles/style-props.js.map +1 -1
  62. package/styles/theme.js +52 -11
  63. package/styles/theme.js.map +1 -1
  64. package/components-prism/basic/search/search.component.js +0 -208
  65. package/components-prism/basic/search/search.component.js.map +0 -1
  66. package/components-prism/basic/search/search.props.js +0 -16
  67. package/components-prism/basic/search/search.props.js.map +0 -1
  68. package/components-prism/basic/search/search.styles.js +0 -127
  69. package/components-prism/basic/search/search.styles.js.map +0 -1
  70. package/core/outside-press-handler.js +0 -65
  71. package/core/outside-press-handler.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","Text","View","Platform","Animated","BaseComponent","BaseComponentState","Tappable","NavigationServiceConsumer","AccessibilityWidgetType","getAccessibilityProps","WmLabelProps","DEFAULT_CLASS","isNil","toString","Animatedview","createSkeleton","LinearGradient","MaskedView","parseLinearGradient","WmLabelState","constructor","args","_defineProperty","WmLabel","props","updateState","parts","parseCaption","caption","getAsterisk","createElement","style","styles","asterisk","onPropertyChange","name","$new","$old","String","animationId","Date","now","getMultilineSkeleton","width","height","borderRadius","marginBottom","theme","skeleton","replace","lastIndex","match","pattern","exec","index","push","text","substring","undefined","boldContent","linkPattern","linkMatch","beforeLink","bold","link","afterLink","length","renderSkeleton","skeletonWidth","skeletonHeight","skeletonwidth","_this$styles$root","root","skeletonheight","_this$styles$root2","fontSize","multilineskeleton","shouldUseAndroidEllipsis","OS","enableandroidellipsis","getNumberOfLines","numOfLines","wrap","nooflines","getEllipsizeMode","_props$ellipsizemode","ellipsizemode","tokenizeWords","split","filter","t","map","token","isSpace","test","isTextAnimationExists","state","textanimation","getWordAnimConfig","_Number","step","Number","animationspeed","fadeDuration","Math","max","renderWordswithAnimation","navigationService","isHidden","_this$state$parts","shouldAnimate","runningIndex","containerStyle","flexDirection","flexWrap","alignItems","opacity","getBaseStyle","part","fontWeight","isValid","color","onTokenPress","startsWith","openUrl","eventName","invokeEventCallback","proxy","renderToken","key","baseStyle","onPress","Value","delay","timing","toValue","duration","useNativeDriver","start","_extends","LABEL","getTestPropsForLabel","flatMap","pIdx","_raw$","raw","merged","leadingSpace","firstWordEmitted","i","_raw","tk","nextIsSpace","prefix","required","renderLabelTextContent","hasLinearGradient","_this$styles","_this$state$parts2","_this$state$parts3","gradientTextWebStyle","backgroundImage","backgroundClip","showWebTextGradient","ellipsizeMode","useAndroidEllipsis","hiddenStyle","gradientStyle","isSinglePart","androidEllipsisTextStyle","userSelect","textAlign","content","join","numberOfLines","combinedTextStyle","isLink","selectable","renderWidget","_this$styles2","linkStyles","mergeStyle","end","gradientColors","colorStops","entryanimation","animation","animationdelay","onLayout","event","handleLayout","_background","target","disableTouchEffect","disabletoucheffect","maskElement","colors","locations"],"sources":["label.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, LayoutChangeEvent, Text, View,Platform, Animated } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker-ai/app-rn-runtime/core/navigation.service';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\n\nimport WmLabelProps from './label.props';\nimport { DEFAULT_CLASS, WmLabelStyles } from './label.styles';\nimport { isNil, toString } from 'lodash-es';\nimport { Animatedview } from '@wavemaker-ai/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\nimport { LinearGradient } from 'expo-linear-gradient';\nimport MaskedView from '@react-native-masked-view/masked-view';\nimport { parseLinearGradient } from '@wavemaker-ai/app-rn-runtime/core/utils';\n\n\ntype PartType = {\n text?: string,\n link?: string,\n bold?: boolean;\n};\n\nexport class WmLabelState extends BaseComponentState<WmLabelProps> {\n parts: PartType[] = []\n}\n\nexport default class WmLabel extends BaseComponent<WmLabelProps, WmLabelState, WmLabelStyles> {\n\n constructor(props: WmLabelProps) {\n super(props, DEFAULT_CLASS, new WmLabelProps(), new WmLabelState());\n this.updateState({\n parts: this.parseCaption(props.caption || '')\n } as WmLabelState);\n }\n\n private getAsterisk() {\n return <Text style={this.styles.asterisk}>*</Text>;\n }\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n\n switch (name) {\n case \"caption\":\n this.updateState({\n parts: this.parseCaption(String($new)),\n animationId: Date.now()\n } as WmLabelState);\n break;\n }\n }\n private getMultilineSkeleton(width: any, height: any) {\n const styles = {\n borderRadius: 4,\n marginBottom: 10,\n height: height\n };\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...styles,\n width: width,\n height: height\n });\n }\n\n parseCaption(caption: string) {\n if (!caption) {\n return [];\n }\n caption += '';\n caption = caption.replace(/\\s*\\(\\s*\\$event,\\s*\\$widget\\s*\\)\\s*/, '');\n caption = caption.replace(/\\(\\s*\\)/, '(#/__EMPTY__)');\n\n let parts: PartType[] = [];\n let lastIndex = 0;\n let match;\n\n // Updated pattern to handle asterisks properly - using lazy matching and proper boundaries\n const pattern = /\\*\\*(.*?)\\*\\*|\\[([^\\]]+)\\]\\(([^)]*)\\)/g;\n\n while ((match = pattern.exec(caption)) !== null) {\n // Add any text before the match\n if (match.index > lastIndex) {\n parts.push({ text: caption.substring(lastIndex, match.index) });\n }\n\n if (match[1] !== undefined) {\n // This is a bold section (first capture group)\n const boldContent = match[1];\n\n // Check if the bold content contains a link\n const linkPattern = /\\[([^\\]]+)\\]\\(([^)]*)\\)/;\n const linkMatch = boldContent.match(linkPattern);\n\n if (linkMatch) {\n // If there's text before the link\n const beforeLink = boldContent.substring(0, linkMatch.index);\n if (beforeLink) {\n parts.push({ text: beforeLink, bold: true });\n }\n\n // Add the link part\n parts.push({ text: linkMatch[1], link: linkMatch[2], bold: true });\n\n // If there's text after the link\n if(linkMatch.index !== undefined) {\n const afterLink = boldContent.substring(linkMatch.index + linkMatch[0].length);\n if (afterLink) {\n parts.push({ text: afterLink, bold: true });\n }\n }\n } else {\n // If no link, just add the entire content as bold\n parts.push({ text: boldContent, bold: true });\n }\n } else if (match[2] !== undefined && match[3] !== undefined) {\n // This is a standalone link (second and third capture groups)\n parts.push({ text: match[2], link: match[3] });\n }\n\n lastIndex = pattern.lastIndex;\n }\n\n // Add any remaining text after the last match\n if (lastIndex < caption.length) {\n parts.push({ text: caption.substring(lastIndex) });\n }\n\n return parts;\n }\n\n public renderSkeleton(props: WmLabelProps) {\n\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 || this.styles.text.fontSize;\n }\n\n if (this.props.multilineskeleton) {\n return (<View style={{\n width: skeletonWidth as DimensionValue\n }}>\n {this.getMultilineSkeleton('100%', skeletonHeight)}\n {this.getMultilineSkeleton('70%', skeletonHeight)}\n {this.getMultilineSkeleton('40%', skeletonHeight)}\n </View>)\n }\n else {\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 \n private shouldUseAndroidEllipsis(props: WmLabelProps): boolean {\n return Platform.OS === 'android' && props.enableandroidellipsis !== false;\n }\n\n // Helper to get the proper number of lines\n private getNumberOfLines(props: WmLabelProps): number | undefined {\n let numOfLines: number | undefined = undefined;\n if (props.wrap === false) {\n numOfLines = 1;\n } else if (typeof props.nooflines === 'number' && props.nooflines > 0) {\n numOfLines = props.nooflines;\n }\n return numOfLines;\n }\n\n private getEllipsizeMode(props: WmLabelProps): 'head' | 'middle' | 'tail' {\n return props.ellipsizemode ?? 'tail';\n }\n\n // Helpers to dedupe common logic\n private tokenizeWords(text?: string) {\n return (text ? text.split(/(\\s+)/) : [])\n .filter(t => t !== '')\n .map(t => ({ token: t, isSpace: /^\\s+$/.test(t) }));\n }\n\n private isTextAnimationExists(): boolean {\n return this.state.props.textanimation === 'fadeIn';\n }\n\n private getWordAnimConfig() {\n const step = Number(this.state.props.animationspeed) ?? 80;\n const fadeDuration = Math.max(120, step * 2);\n return { step, fadeDuration };\n }\n\n private renderWordswithAnimation(navigationService: NavigationService, isHidden: boolean) {\n const shouldAnimate = this.isTextAnimationExists();\n const { step, fadeDuration } = this.getWordAnimConfig();\n let runningIndex = 0;\n\n const containerStyle: any = {\n flexDirection: 'row',\n flexWrap: 'wrap',\n alignItems: 'flex-start',\n opacity: isHidden ? 0 : 1,\n width: '100%'\n };\n\n const getBaseStyle = (part: { link?: string; bold?: boolean }) => ([\n this.styles.text,\n part.link ? this.styles.link.text : null,\n part.bold ? { fontWeight: 'bold' } : null,\n this.state.props.isValid ? null : { color: 'red' },\n ]);\n\n const onTokenPress = (part: { link?: string }) => {\n if (part.link) {\n if (part.link.startsWith('http:') || part.link.startsWith('https:') || part.link.startsWith('#')) {\n navigationService.openUrl(part.link, '_blank');\n } else if (part.link.startsWith('javascript:')) {\n const eventName = part.link.substring(11);\n this.invokeEventCallback(eventName, [null, this.proxy]);\n }\n }\n this.invokeEventCallback('onTap', [null, this.proxy]);\n };\n\n const renderToken = (part: any, t: { token: string; isSpace: boolean }, key: string) => {\n if (t.isSpace) return <Text key={key} style={this.styles.text}>{t.token}</Text>;\n\n const baseStyle = getBaseStyle(part);\n if (!shouldAnimate) {\n return <Text key={key} style={baseStyle as any} onPress={() => onTokenPress(part)}>{t.token}</Text>;\n }\n\n const opacity = new Animated.Value(0);\n const delay = step * (runningIndex++);\n Animated.timing(opacity, { toValue: 1, duration: fadeDuration, delay, useNativeDriver: true }).start();\n\n return (\n <Animated.Text key={key} style={[baseStyle as any, { opacity }]} onPress={() => onTokenPress(part)}>\n {t.token}\n </Animated.Text>\n );\n };\n\n return (\n <View style={containerStyle} {...getAccessibilityProps(AccessibilityWidgetType.LABEL, this.state.props)} {...this.getTestPropsForLabel('caption')}>\n {this.state.parts?.flatMap((part, pIdx) => {\n const raw = this.tokenizeWords(toString(part.text));\n const merged: { token: string; isSpace: boolean }[] = [];\n const leadingSpace = !!raw[0]?.isSpace;\n let firstWordEmitted = false;\n for (let i = 0; i < raw.length; i++) {\n const tk = raw[i];\n if (tk.isSpace) { continue; }\n const nextIsSpace = !!raw[i + 1]?.isSpace;\n const prefix = (!firstWordEmitted && leadingSpace) ? ' ' : '';\n merged.push({ token: prefix + tk.token + (nextIsSpace ? ' ' : ''), isSpace: false });\n firstWordEmitted = true;\n if (nextIsSpace) { i++; }\n }\n return merged.map((t, i) => renderToken(part, t, `p${pIdx}_${i}`));\n })}\n {this.state.props.required && this.getAsterisk()}\n </View>\n );\n }\n\n private renderLabelTextContent(navigationService: NavigationService, isHidden: boolean = false, hasLinearGradient: boolean = false) {\n //gradient text support for web\n const gradientTextWebStyle = {\n backgroundImage: (this.styles?.text.color as string),\n color: 'transparent',\n backgroundClip: 'text',\n }\n const showWebTextGradient = (hasLinearGradient && Platform.OS === 'web');\n const numOfLines = this.getNumberOfLines(this.state.props);\n const ellipsizeMode = this.getEllipsizeMode(this.state.props);\n const useAndroidEllipsis = this.shouldUseAndroidEllipsis(this.state.props);\n\n // Shared styles\n const baseStyle = this.styles.text;\n const hiddenStyle = isHidden ? { opacity: 0 } : {};\n const gradientStyle = showWebTextGradient ? gradientTextWebStyle : {};\n\n // Determine if it's a single part\n const isSinglePart = this.state.parts.length <= 1;\n // if numOfLines is exists then the animation won't work.\n if (numOfLines === undefined && this.isTextAnimationExists()) {\n return this.renderWordswithAnimation(navigationService, isHidden);\n }\n\n if (useAndroidEllipsis) {\n const androidEllipsisTextStyle: any = {\n ...baseStyle,\n ...hiddenStyle,\n ...gradientStyle,\n userSelect: 'none',\n width: '100%',\n textAlign: baseStyle.textAlign,\n };\n // Keep single-string content in Android ellipsis branch to ensure reliable truncation\n const content = this.state.parts.length === 1\n ? toString(this.state.props.caption)\n : this.state.parts.map(part => toString(part.text)).join('');\n return (\n <Text\n style={androidEllipsisTextStyle}\n numberOfLines={numOfLines}\n ellipsizeMode=\"tail\"\n {...(this.state.parts.length <= 1 ? this.getTestPropsForLabel('caption') : {})}\n {...getAccessibilityProps(AccessibilityWidgetType.LABEL, this.state.props)}\n >\n {content}\n {this.state.props.required && this.getAsterisk()}\n </Text>\n );\n }\n\n\n // Compose final style\n const combinedTextStyle: any = isSinglePart\n ? { ...baseStyle, ...hiddenStyle, ...gradientStyle }\n : {\n flexWrap: 'wrap',\n textAlign: baseStyle.textAlign,\n ...hiddenStyle,\n ...gradientStyle,\n };\n\n\n // **NOTE: using \"userSelect\" style property breaks the layout engine's native ellipse calculation in Android\n if(Platform.OS === 'android' && this.props.nooflines === 1) {\n delete combinedTextStyle?.['userSelect'];\n }\n\n return (\n <Text style={combinedTextStyle}\n {...this.state.parts.length <= 1 ? this.getTestPropsForLabel('caption') : {}}\n {...getAccessibilityProps(AccessibilityWidgetType.LABEL, this.state.props)}\n numberOfLines={numOfLines} \n ellipsizeMode={ellipsizeMode}\n >\n {(this.state.parts?.length === 1 && !this.state.parts[0].link && !this.state.parts[0].bold) ? toString(this.state.props.caption) : this.state.parts?.map((part, index) => {\n const isLink = !isNil(part.link);\n return (\n <Text\n key={`part_${index}`}\n style={[\n this.styles.text,\n isLink ? this.styles.link.text : null,\n part.bold ? { fontWeight: 'bold'} : null,\n this.state.props.isValid ? null : { color: 'red' }\n ]}\n {...this.getTestPropsForLabel(isLink ? `link_${index}` : `caption_${index}`)}\n selectable={this.styles.text.userSelect === 'text'}\n onPress={() => {\n if (part.link) {\n if (part.link.startsWith('http:')\n || part.link.startsWith('https:')\n || part.link.startsWith('#')) {\n navigationService.openUrl(part.link, '_blank');\n } else if (part.link.startsWith('javascript:')) {\n const eventName = part.link.substring(11);\n this.invokeEventCallback(eventName, [null, this.proxy]);\n }\n }\n this.invokeEventCallback('onTap', [null, this.proxy]);\n }}\n // {...getAccessibilityProps(AccessibilityWidgetType.LABEL, props)}\n >\n {toString(part.text)}\n </Text>\n );\n })}\n {this.state.props.required && this.getAsterisk()}\n </Text>\n )\n\n }\n renderWidget(props: WmLabelProps) {\n const linkStyles = this.theme.mergeStyle({ text: this.styles.text }, this.styles.link);\n const { hasLinearGradient, start, end, gradientColors,colorStops } = parseLinearGradient((this.styles?.text.color) as string);\n\n return !isNil(props.caption) ? (\n <Animatedview\n entryanimation={props.animation}\n delay={props.animationdelay}\n style={this.styles.root}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n {this._background}\n <NavigationServiceConsumer>\n {(navigationService: NavigationService) => {\n return (<Tappable target={this} disableTouchEffect={this.state.props.disabletoucheffect} >\n {hasLinearGradient ? <MaskedView\n maskElement={this.renderLabelTextContent(navigationService, false, hasLinearGradient)}\n >\n <LinearGradient colors={gradientColors as any} start={start} end={end} locations={colorStops.length > 0 ? colorStops as any : undefined}>\n {this.renderLabelTextContent(navigationService, true)}\n </LinearGradient>\n </MaskedView> : this.renderLabelTextContent(navigationService)}\n </Tappable>)\n }}\n </NavigationServiceConsumer>\n </Animatedview>\n ) : null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Text","View","Platform","Animated","BaseComponent","BaseComponentState","Tappable","NavigationServiceConsumer","AccessibilityWidgetType","getAccessibilityProps","WmLabelProps","DEFAULT_CLASS","isNil","toString","Animatedview","createSkeleton","LinearGradient","MaskedView","parseLinearGradient","WmLabelState","constructor","args","_defineProperty","WmLabel","props","updateState","parts","parseCaption","caption","getAsterisk","createElement","style","styles","asterisk","onPropertyChange","name","$new","$old","String","animationId","Date","now","getMultilineSkeleton","width","height","borderRadius","marginBottom","theme","skeleton","replace","lastIndex","match","pattern","exec","index","push","text","substring","undefined","boldContent","linkPattern","linkMatch","beforeLink","bold","link","afterLink","length","renderSkeleton","skeletonWidth","skeletonHeight","skeletonwidth","_this$styles$root","root","skeletonheight","_this$styles$root2","fontSize","multilineskeleton","shouldUseAndroidEllipsis","OS","enableandroidellipsis","getNumberOfLines","numOfLines","wrap","nooflines","getEllipsizeMode","_props$ellipsizemode","ellipsizemode","tokenizeWords","split","filter","t","map","token","isSpace","test","isTextAnimationExists","state","textanimation","getWordAnimConfig","_Number","step","Number","animationspeed","fadeDuration","Math","max","renderWordswithAnimation","navigationService","isHidden","_this$state$parts","shouldAnimate","runningIndex","containerStyle","flexDirection","flexWrap","alignItems","opacity","getBaseStyle","part","fontWeight","isValid","color","onTokenPress","startsWith","openUrl","eventName","invokeEventCallback","proxy","renderToken","key","baseStyle","onPress","Value","delay","timing","toValue","duration","useNativeDriver","start","_extends","LABEL","getTestPropsForLabel","flatMap","pIdx","_raw$","raw","merged","leadingSpace","firstWordEmitted","i","_raw","tk","nextIsSpace","prefix","required","renderLabelTextContent","hasLinearGradient","_this$styles","_this$state$parts2","_this$state$parts3","gradientTextWebStyle","backgroundImage","backgroundClip","showWebTextGradient","ellipsizeMode","useAndroidEllipsis","hiddenStyle","gradientStyle","isSinglePart","androidEllipsisTextStyle","userSelect","textAlign","content","join","numberOfLines","combinedTextStyle","isLink","selectable","renderWidget","_this$styles2","linkStyles","mergeStyle","end","gradientColors","colorStops","entryanimation","animation","animationdelay","onLayout","event","handleLayout","_background","target","disableTouchEffect","disabletoucheffect","maskElement","colors","locations"],"sources":["label.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, LayoutChangeEvent, Text, View,Platform, Animated } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker-ai/app-rn-runtime/core/navigation.service';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\n\nimport WmLabelProps from './label.props';\nimport { DEFAULT_CLASS, WmLabelStyles } from './label.styles';\nimport { isNil, toString } from 'lodash-es';\nimport { Animatedview } from '@wavemaker-ai/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\nimport { LinearGradient } from 'expo-linear-gradient';\nimport MaskedView from '@react-native-masked-view/masked-view';\nimport { parseLinearGradient } from '@wavemaker-ai/app-rn-runtime/core/utils';\n\n\ntype PartType = {\n text?: string,\n link?: string,\n bold?: boolean;\n};\n\nexport class WmLabelState extends BaseComponentState<WmLabelProps> {\n parts: PartType[] = []\n}\n\nexport default class WmLabel extends BaseComponent<WmLabelProps, WmLabelState, WmLabelStyles> {\n\n constructor(props: WmLabelProps) {\n super(props, DEFAULT_CLASS, new WmLabelProps(), new WmLabelState());\n this.updateState({\n parts: this.parseCaption(props.caption || '')\n } as WmLabelState);\n }\n\n private getAsterisk() {\n return <Text style={this.styles.asterisk}>*</Text>;\n }\n\n public onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n\n switch (name) {\n case \"caption\":\n this.updateState({\n parts: this.parseCaption(String($new)),\n animationId: Date.now()\n } as WmLabelState);\n break;\n }\n }\n private getMultilineSkeleton(width: any, height: any) {\n const styles = {\n borderRadius: 4,\n marginBottom: 10,\n height: height\n };\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...styles,\n width: width,\n height: height\n });\n }\n\n parseCaption(caption: string) {\n if (!caption) {\n return [];\n }\n caption += '';\n caption = caption.replace(/\\s*\\(\\s*\\$event,\\s*\\$widget\\s*\\)\\s*/, '');\n caption = caption.replace(/\\(\\s*\\)/, '(#/__EMPTY__)');\n\n let parts: PartType[] = [];\n let lastIndex = 0;\n let match;\n\n // Updated pattern to handle asterisks properly - using lazy matching and proper boundaries\n const pattern = /\\*\\*(.*?)\\*\\*|\\[([^\\]]+)\\]\\(([^)]*)\\)/g;\n\n while ((match = pattern.exec(caption)) !== null) {\n // Add any text before the match\n if (match.index > lastIndex) {\n parts.push({ text: caption.substring(lastIndex, match.index) });\n }\n\n if (match[1] !== undefined) {\n // This is a bold section (first capture group)\n const boldContent = match[1];\n\n // Check if the bold content contains a link\n const linkPattern = /\\[([^\\]]+)\\]\\(([^)]*)\\)/;\n const linkMatch = boldContent.match(linkPattern);\n\n if (linkMatch) {\n // If there's text before the link\n const beforeLink = boldContent.substring(0, linkMatch.index);\n if (beforeLink) {\n parts.push({ text: beforeLink, bold: true });\n }\n\n // Add the link part\n parts.push({ text: linkMatch[1], link: linkMatch[2], bold: true });\n\n // If there's text after the link\n if(linkMatch.index !== undefined) {\n const afterLink = boldContent.substring(linkMatch.index + linkMatch[0].length);\n if (afterLink) {\n parts.push({ text: afterLink, bold: true });\n }\n }\n } else {\n // If no link, just add the entire content as bold\n parts.push({ text: boldContent, bold: true });\n }\n } else if (match[2] !== undefined && match[3] !== undefined) {\n // This is a standalone link (second and third capture groups)\n parts.push({ text: match[2], link: match[3] });\n }\n\n lastIndex = pattern.lastIndex;\n }\n\n // Add any remaining text after the last match\n if (lastIndex < caption.length) {\n parts.push({ text: caption.substring(lastIndex) });\n }\n\n return parts;\n }\n\n public renderSkeleton(props: WmLabelProps) {\n\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 || this.styles.text.fontSize;\n }\n\n if (this.props.multilineskeleton) {\n return (<View style={{\n width: skeletonWidth as DimensionValue\n }}>\n {this.getMultilineSkeleton('100%', skeletonHeight)}\n {this.getMultilineSkeleton('70%', skeletonHeight)}\n {this.getMultilineSkeleton('40%', skeletonHeight)}\n </View>)\n }\n else {\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 \n private shouldUseAndroidEllipsis(props: WmLabelProps): boolean {\n return Platform.OS === 'android' && props.enableandroidellipsis !== false;\n }\n\n // Helper to get the proper number of lines\n private getNumberOfLines(props: WmLabelProps): number | undefined {\n let numOfLines: number | undefined = undefined;\n if (props.wrap === false) {\n numOfLines = 1;\n } else if (typeof props.nooflines === 'number' && props.nooflines > 0) {\n numOfLines = props.nooflines;\n }\n return numOfLines;\n }\n\n private getEllipsizeMode(props: WmLabelProps): 'head' | 'middle' | 'tail' {\n return props.ellipsizemode ?? 'tail';\n }\n\n // Helpers to dedupe common logic\n private tokenizeWords(text?: string) {\n return (text ? text.split(/(\\s+)/) : [])\n .filter(t => t !== '')\n .map(t => ({ token: t, isSpace: /^\\s+$/.test(t) }));\n }\n\n private isTextAnimationExists(): boolean {\n return this.state.props.textanimation === 'fadeIn';\n }\n\n private getWordAnimConfig() {\n const step = Number(this.state.props.animationspeed) ?? 80;\n const fadeDuration = Math.max(120, step * 2);\n return { step, fadeDuration };\n }\n\n private renderWordswithAnimation(navigationService: NavigationService, isHidden: boolean) {\n const shouldAnimate = this.isTextAnimationExists();\n const { step, fadeDuration } = this.getWordAnimConfig();\n let runningIndex = 0;\n\n const containerStyle: any = {\n flexDirection: 'row',\n flexWrap: 'wrap',\n alignItems: 'flex-start',\n opacity: isHidden ? 0 : 1,\n width: '100%'\n };\n\n const getBaseStyle = (part: { link?: string; bold?: boolean }) => ([\n this.styles.text,\n part.link ? this.styles.link.text : null,\n part.bold ? { fontWeight: 'bold' } : null,\n this.state.props.isValid ? null : { color: 'red' },\n ]);\n\n const onTokenPress = (part: { link?: string }) => {\n if (part.link) {\n if (part.link.startsWith('http:') || part.link.startsWith('https:') || part.link.startsWith('#')) {\n navigationService.openUrl(part.link);\n } else if (part.link.startsWith('javascript:')) {\n const eventName = part.link.substring(11);\n this.invokeEventCallback(eventName, [null, this.proxy]);\n }\n }\n this.invokeEventCallback('onTap', [null, this.proxy]);\n };\n\n const renderToken = (part: any, t: { token: string; isSpace: boolean }, key: string) => {\n if (t.isSpace) return <Text key={key} style={this.styles.text}>{t.token}</Text>;\n\n const baseStyle = getBaseStyle(part);\n if (!shouldAnimate) {\n return <Text key={key} style={baseStyle as any} onPress={() => onTokenPress(part)}>{t.token}</Text>;\n }\n\n const opacity = new Animated.Value(0);\n const delay = step * (runningIndex++);\n Animated.timing(opacity, { toValue: 1, duration: fadeDuration, delay, useNativeDriver: true }).start();\n\n return (\n <Animated.Text key={key} style={[baseStyle as any, { opacity }]} onPress={() => onTokenPress(part)}>\n {t.token}\n </Animated.Text>\n );\n };\n\n return (\n <View style={containerStyle} {...getAccessibilityProps(AccessibilityWidgetType.LABEL, this.state.props)} {...this.getTestPropsForLabel('caption')}>\n {this.state.parts?.flatMap((part, pIdx) => {\n const raw = this.tokenizeWords(toString(part.text));\n const merged: { token: string; isSpace: boolean }[] = [];\n const leadingSpace = !!raw[0]?.isSpace;\n let firstWordEmitted = false;\n for (let i = 0; i < raw.length; i++) {\n const tk = raw[i];\n if (tk.isSpace) { continue; }\n const nextIsSpace = !!raw[i + 1]?.isSpace;\n const prefix = (!firstWordEmitted && leadingSpace) ? ' ' : '';\n merged.push({ token: prefix + tk.token + (nextIsSpace ? ' ' : ''), isSpace: false });\n firstWordEmitted = true;\n if (nextIsSpace) { i++; }\n }\n return merged.map((t, i) => renderToken(part, t, `p${pIdx}_${i}`));\n })}\n {this.state.props.required && this.getAsterisk()}\n </View>\n );\n }\n\n private renderLabelTextContent(navigationService: NavigationService, isHidden: boolean = false, hasLinearGradient: boolean = false) {\n //gradient text support for web\n const gradientTextWebStyle = {\n backgroundImage: (this.styles?.text.color as string),\n color: 'transparent',\n backgroundClip: 'text',\n }\n const showWebTextGradient = (hasLinearGradient && Platform.OS === 'web');\n const numOfLines = this.getNumberOfLines(this.state.props);\n const ellipsizeMode = this.getEllipsizeMode(this.state.props);\n const useAndroidEllipsis = this.shouldUseAndroidEllipsis(this.state.props);\n\n // Shared styles\n const baseStyle = this.styles.text;\n const hiddenStyle = isHidden ? { opacity: 0 } : {};\n const gradientStyle = showWebTextGradient ? gradientTextWebStyle : {};\n\n // Determine if it's a single part\n const isSinglePart = this.state.parts.length <= 1;\n // if numOfLines is exists then the animation won't work.\n if (numOfLines === undefined && this.isTextAnimationExists()) {\n return this.renderWordswithAnimation(navigationService, isHidden);\n }\n\n if (useAndroidEllipsis) {\n const androidEllipsisTextStyle: any = {\n ...baseStyle,\n ...hiddenStyle,\n ...gradientStyle,\n userSelect: 'none',\n width: '100%',\n textAlign: baseStyle.textAlign,\n };\n // Keep single-string content in Android ellipsis branch to ensure reliable truncation\n const content = this.state.parts.length === 1\n ? toString(this.state.props.caption)\n : this.state.parts.map(part => toString(part.text)).join('');\n return (\n <Text\n style={androidEllipsisTextStyle}\n numberOfLines={numOfLines}\n ellipsizeMode=\"tail\"\n {...(this.state.parts.length <= 1 ? this.getTestPropsForLabel('caption') : {})}\n {...getAccessibilityProps(AccessibilityWidgetType.LABEL, this.state.props)}\n >\n {content}\n {this.state.props.required && this.getAsterisk()}\n </Text>\n );\n }\n\n\n // Compose final style\n const combinedTextStyle: any = isSinglePart\n ? { ...baseStyle, ...hiddenStyle, ...gradientStyle }\n : {\n flexWrap: 'wrap',\n textAlign: baseStyle.textAlign,\n ...hiddenStyle,\n ...gradientStyle,\n };\n\n\n // **NOTE: using \"userSelect\" style property breaks the layout engine's native ellipse calculation in Android\n if(Platform.OS === 'android' && this.props.nooflines === 1) {\n delete combinedTextStyle?.['userSelect'];\n }\n\n return (\n <Text style={combinedTextStyle}\n {...this.state.parts.length <= 1 ? this.getTestPropsForLabel('caption') : {}}\n {...getAccessibilityProps(AccessibilityWidgetType.LABEL, this.state.props)}\n numberOfLines={numOfLines} \n ellipsizeMode={ellipsizeMode}\n >\n {(this.state.parts?.length === 1 && !this.state.parts[0].link && !this.state.parts[0].bold) ? toString(this.state.props.caption) : this.state.parts?.map((part, index) => {\n const isLink = !isNil(part.link);\n return (\n <Text\n key={`part_${index}`}\n style={[\n this.styles.text,\n isLink ? this.styles.link.text : null,\n part.bold ? { fontWeight: 'bold'} : null,\n this.state.props.isValid ? null : { color: 'red' }\n ]}\n {...this.getTestPropsForLabel(isLink ? `link_${index}` : `caption_${index}`)}\n selectable={this.styles.text.userSelect === 'text'}\n onPress={() => {\n if (part.link) {\n if (part.link.startsWith('http:')\n || part.link.startsWith('https:')\n || part.link.startsWith('#')) {\n navigationService.openUrl(part.link);\n } else if (part.link.startsWith('javascript:')) {\n const eventName = part.link.substring(11);\n this.invokeEventCallback(eventName, [null, this.proxy]);\n }\n }\n this.invokeEventCallback('onTap', [null, this.proxy]);\n }}\n // {...getAccessibilityProps(AccessibilityWidgetType.LABEL, props)}\n >\n {toString(part.text)}\n </Text>\n );\n })}\n {this.state.props.required && this.getAsterisk()}\n </Text>\n )\n\n }\n renderWidget(props: WmLabelProps) {\n const linkStyles = this.theme.mergeStyle({ text: this.styles.text }, this.styles.link);\n const { hasLinearGradient, start, end, gradientColors,colorStops } = parseLinearGradient((this.styles?.text.color) as string);\n\n return !isNil(props.caption) ? (\n <Animatedview\n entryanimation={props.animation}\n delay={props.animationdelay}\n style={this.styles.root}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n {this._background}\n <NavigationServiceConsumer>\n {(navigationService: NavigationService) => {\n return (<Tappable target={this} disableTouchEffect={this.state.props.disabletoucheffect} >\n {hasLinearGradient ? <MaskedView\n maskElement={this.renderLabelTextContent(navigationService, false, hasLinearGradient)}\n >\n <LinearGradient colors={gradientColors as any} start={start} end={end} locations={colorStops.length > 0 ? colorStops as any : undefined}>\n {this.renderLabelTextContent(navigationService, true)}\n </LinearGradient>\n </MaskedView> : this.renderLabelTextContent(navigationService)}\n </Tappable>)\n }}\n </NavigationServiceConsumer>\n </Animatedview>\n ) : null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","Text","View","BubbleChart","AccessibilityWidgetType","getAccessibilityProps","BaseChartComponent","BaseChartComponentState","WmBubbleChartProps","DEFAULT_CLASS","WmIcon","SHAPE_TO_SYMBOL","WmBubbleChartState","WmBubbleChart","constructor","props","_defineProperty","event","state","dataset","dataIndex","y","seriesIndex","selectedItem","selectedChartItem","series","x","_dataObj","updateState","index","invokeEventCallback","proxy","renderWidget","_this$state$data","_this$state$colors","_props$intervalx","_props$tooltip","data","length","chartData","map","i","name","yAxis","pt","_pt$size","size","showLegend","showlegend","legendPosition","includes","minDomain","getMinDomain","xaxisticks","getXAxisTickLabelFormatter","colors","color","height","rootHeight","wrapperStyle","styles","root","symbol","shape","createElement","_extends","LINECHART","style","onLayout","onViewLayoutChange","bind","showSpinner","title","iconclass","iconurl","testID","flexDirection","alignItems","icon","subheading","subHeading","chartWidth","ref","viewRef","width","screenWidth","theme","getChartTheme","sizeRange","sizerange","minY","minX","intervalX","intervalx","intervalY","intervaly","grid","top","offsettop","bottom","offsetbottom","left","isRTL","offsetright","offsetleft","right","showXAxis","showxaxis","showXAxisTicks","showxaxisticks","showYAxis","showyaxis","showYAxisTicks","showyaxisticks","showXAxisSplitLines","hidegridxaxis","showYAxisSplitLines","hidegridyaxis","xAxisLabel","xLabel","yAxisLabel","yLabel","xAxisTickLabelFormatter","undefined","yAxisTickLabelFormatter","getYAxisTickLabelFormatter","tooltip","tooltips","hasCustomTooltip","renderTooltip","getRenderTooltip","showHighlighter","showhighlighter","onSelect"],"sources":["bubble-chart.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, View } from 'react-native';\nimport { BubbleChart, CartesianChartSelectEvent } from '@wavemaker/react-native-echarts';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\nimport {\n BaseChartComponent,\n BaseChartComponentState\n} from \"@wavemaker-ai/app-rn-runtime/components/chart/basechart.component\";\nimport WmBubbleChartProps from './bubble-chart.props';\nimport { DEFAULT_CLASS, WmBubbleChartStyles } from './bubble-chart.styles';\nimport WmIcon from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component';\nimport isEmpty from 'lodash-es/isEmpty';\n\n\nconst SHAPE_TO_SYMBOL: {[key: string]: string} = {\n 'circle': 'circle',\n 'rect': 'rect',\n 'square': 'rect',\n 'roundRect': 'roundRect',\n 'triangle': 'triangle',\n 'triangle-up': 'triangle',\n 'triangle-down': 'path://M0,500L500,-500L-500,-500Z',\n 'diamond': 'diamond',\n 'pin': 'pin',\n 'arrow': 'arrow',\n 'cross': 'path://M-70,-500L70,-500L70,-220L350,-220L350,-80L70,-80L70,500L-70,500L-70,-80L-350,-80L-350,-220L-70,-220Z M500,0L500,0Z M-500,0L-500,0Z',\n};\n\nexport class WmBubbleChartState extends BaseChartComponentState<WmBubbleChartProps> {}\n\nexport default class WmBubbleChart extends BaseChartComponent<WmBubbleChartProps, WmBubbleChartState, WmBubbleChartStyles> {\n\n constructor(props: WmBubbleChartProps) {\n super(props, DEFAULT_CLASS, new WmBubbleChartProps(), new WmBubbleChartState());\n }\n\n onSelect = (event: CartesianChartSelectEvent): void => {\n if (!this.state.props.dataset) return;\n const { dataIndex, y, seriesIndex } = event;\n const selectedItem = this.props.dataset[dataIndex];\n const selectedChartItem = [\n { series: seriesIndex, x: dataIndex, y, _dataObj: selectedItem },\n dataIndex,\n ];\n this.updateState({\n selectedItem: { ...selectedItem, index: dataIndex },\n } as WmBubbleChartState);\n this.invokeEventCallback('onSelect', [null, this.proxy, selectedItem, selectedChartItem]);\n}\n renderWidget(props: WmBubbleChartProps) {\n this.invokeEventCallback('onBeforerender', [this.proxy, null]);\n if (!this.state.data?.length) {\n return null;\n }\n \n const chartData = this.state.data.map((series: any[], i: number) => ({\n name: this.state.yAxis[i],\n data: series.map((pt: { x: number; y: number; size?: number }) =>\n [pt.x, pt.y, pt.size ?? 5] as [number, number, number]\n ),\n }));\n\n const showLegend = props.showlegend !== 'hide';\n const legendPosition = (['top', 'bottom', 'left', 'right'].includes(props.showlegend)\n ? props.showlegend : 'bottom') as 'top' | 'bottom' | 'left' | 'right';\n const minDomain = this.getMinDomain();\n const xaxisticks = this.getXAxisTickLabelFormatter();\n const series = (this.state.colors?.length ? this.state.colors : ['#000']).map((color: string) => ({\n color,\n }));\n const { height: rootHeight, ...wrapperStyle } = this.styles.root as any;\n const symbol = SHAPE_TO_SYMBOL[props.shape] || 'circle';\n return (\n <View\n {...getAccessibilityProps(AccessibilityWidgetType.LINECHART, props)}\n style={wrapperStyle}\n onLayout={this.onViewLayoutChange.bind(this)}\n >\n {this.showSpinner()}\n <View>\n {(props.title || props.iconclass || props.iconurl) ? (\n <View testID=\"title-icon-container\" style={{ flexDirection: 'row', alignItems: 'center' }}>\n {(props.iconclass || props.iconurl) ? (<WmIcon iconclass={props.iconclass} iconurl={props.iconurl} styles={this.styles.icon} />) : null}\n {props.title ? (<Text style={this.styles.title}>{props.title}</Text>) : null}\n </View>\n ) : null}\n {props.subheading ? (\n <Text style={this.styles.subHeading}>{props.subheading}</Text>\n ) : null}\n </View>\n {this.state.chartWidth ? (\n <View ref={this.viewRef}>\n <BubbleChart\n data={chartData}\n width={this.state.chartWidth || this.screenWidth}\n height={this.styles.root.height as number}\n colors={this.state.colors}\n theme={this.getChartTheme(false, series)}\n sizeRange={props.sizerange}\n minY={minDomain.y}\n minX={minDomain.x}\n intervalX={props.intervalx ?? 1} \n intervalY={props.intervaly}\n grid={{\n top: props.offsettop,\n bottom: props.offsetbottom,\n left: this.isRTL ? props.offsetright : props.offsetleft,\n right: this.isRTL ? props.offsetleft : props.offsetright,\n }}\n showXAxis={props.showxaxis}\n showXAxisTicks={props.showxaxisticks}\n showYAxis={props.showyaxis}\n showYAxisTicks={props.showyaxisticks}\n showXAxisSplitLines={!props.hidegridxaxis}\n showYAxisSplitLines={!props.hidegridyaxis}\n xAxisLabel={this.state.xLabel || ''}\n yAxisLabel={this.state.yLabel || ''}\n xAxisTickLabelFormatter={props.showxaxis !== false ? this.getXAxisTickLabelFormatter() : undefined}\n yAxisTickLabelFormatter={props.showyaxis !== false ? this.getYAxisTickLabelFormatter() : undefined}\n showLegend={showLegend}\n symbol={symbol}\n legendPosition={legendPosition}\n tooltip={props.tooltips ? (this.hasCustomTooltip ? 'none' : (props.tooltip ?? 'card')) : 'none'}\n renderTooltip={this.getRenderTooltip()}\n showHighlighter={props.showhighlighter}\n onSelect={this.onSelect}\n />\n </View>\n ) : null}\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Text","View","BubbleChart","AccessibilityWidgetType","getAccessibilityProps","BaseChartComponent","BaseChartComponentState","WmBubbleChartProps","DEFAULT_CLASS","WmIcon","SHAPE_TO_SYMBOL","WmBubbleChartState","WmBubbleChart","constructor","props","_defineProperty","event","state","dataset","dataIndex","y","seriesIndex","selectedItem","selectedChartItem","series","x","_dataObj","updateState","index","invokeEventCallback","proxy","renderWidget","_this$state$data","_this$state$colors","_props$intervalx","_props$tooltip","data","length","chartData","map","i","name","yAxis","pt","_pt$size","size","showLegend","showlegend","legendPosition","includes","minDomain","getMinDomain","xaxisticks","getXAxisTickLabelFormatter","colors","color","height","rootHeight","wrapperStyle","styles","root","symbol","shape","createElement","_extends","LINECHART","style","onLayout","onViewLayoutChange","bind","showSpinner","title","iconclass","iconurl","testID","flexDirection","alignItems","icon","subheading","subHeading","chartWidth","ref","viewRef","width","screenWidth","theme","getChartTheme","sizeRange","sizerange","minY","minX","intervalX","intervalx","intervalY","intervaly","grid","top","offsettop","bottom","offsetbottom","left","isRTL","offsetright","offsetleft","right","showXAxis","showxaxis","showXAxisTicks","showxaxisticks","showYAxis","showyaxis","showYAxisTicks","showyaxisticks","showXAxisSplitLines","hidegridxaxis","showYAxisSplitLines","hidegridyaxis","xAxisLabel","xLabel","yAxisLabel","yLabel","xAxisTickLabelFormatter","undefined","yAxisTickLabelFormatter","getYAxisTickLabelFormatter","tooltip","tooltips","hasCustomTooltip","renderTooltip","getRenderTooltip","showHighlighter","showhighlighter","onSelect"],"sources":["bubble-chart.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Text, View } from 'react-native';\nimport { BubbleChart, CartesianChartSelectEvent } from '@wavemaker/react-native-echarts';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\nimport {\n BaseChartComponent,\n BaseChartComponentState\n} from \"@wavemaker-ai/app-rn-runtime/components/chart/basechart.component\";\nimport WmBubbleChartProps from './bubble-chart.props';\nimport { DEFAULT_CLASS, WmBubbleChartStyles } from './bubble-chart.styles';\nimport WmIcon from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component';\nimport isEmpty from 'lodash-es/isEmpty';\n\n\nconst SHAPE_TO_SYMBOL: {[key: string]: string} = {\n 'circle': 'circle',\n 'rect': 'rect',\n 'square': 'rect',\n 'roundRect': 'roundRect',\n 'triangle': 'triangle',\n 'triangle-up': 'triangle',\n 'triangle-down': 'path://M0,500L500,-500L-500,-500Z',\n 'diamond': 'diamond',\n 'pin': 'pin',\n 'arrow': 'arrow',\n 'cross': 'path://M-70,-500L70,-500L70,-220L350,-220L350,-80L70,-80L70,500L-70,500L-70,-80L-350,-80L-350,-220L-70,-220Z M500,0L500,0Z M-500,0L-500,0Z',\n};\n\nexport class WmBubbleChartState extends BaseChartComponentState<WmBubbleChartProps> {}\n\nexport default class WmBubbleChart extends BaseChartComponent<WmBubbleChartProps, WmBubbleChartState, WmBubbleChartStyles> {\n\n constructor(props: WmBubbleChartProps) {\n super(props, DEFAULT_CLASS, new WmBubbleChartProps(), new WmBubbleChartState());\n }\n\n onSelect = (event: CartesianChartSelectEvent): void => {\n if (!this.state.props.dataset) return;\n const { dataIndex, y, seriesIndex } = event;\n const selectedItem = this.props.dataset[dataIndex];\n const selectedChartItem = [\n { series: seriesIndex, x: dataIndex, y, _dataObj: selectedItem },\n dataIndex,\n ];\n this.updateState({\n selectedItem: { ...selectedItem, index: dataIndex },\n } as WmBubbleChartState);\n this.invokeEventCallback('onSelect', [null, this.proxy, selectedItem, selectedChartItem]);\n}\n renderWidget(props: WmBubbleChartProps) {\n this.invokeEventCallback('onBeforerender', [this.proxy, null]);\n if (!this.state.data?.length) {\n return null;\n }\n \n const chartData = this.state.data.map((series: any[], i: number) => ({\n name: this.state.yAxis[i],\n data: series.map((pt: { x: number; y: number; size?: number }) =>\n [pt.x, pt.y, pt.size ?? 5] as [number, number, number]\n ),\n }));\n\n const showLegend = props.showlegend !== 'hide';\n const legendPosition = (['top', 'bottom', 'left', 'right'].includes(props.showlegend)\n ? props.showlegend : 'bottom') as 'top' | 'bottom' | 'left' | 'right';\n const minDomain = this.getMinDomain();\n const xaxisticks = this.getXAxisTickLabelFormatter();\n const series = (this.state.colors?.length ? this.state.colors : ['#000']).map((color: string) => ({\n color,\n }));\n const { height: rootHeight, ...wrapperStyle } = this.styles.root as any;\n const symbol = SHAPE_TO_SYMBOL[props.shape] || 'circle';\n return (\n <View\n {...getAccessibilityProps(AccessibilityWidgetType.LINECHART, props)}\n style={wrapperStyle}\n onLayout={this.onViewLayoutChange.bind(this)}\n >\n {this.showSpinner()}\n <View>\n {(props.title || props.iconclass || props.iconurl) ? (\n <View testID=\"title-icon-container\" style={{ flexDirection: 'row', alignItems: 'center' }}>\n {(props.iconclass || props.iconurl) ? (<WmIcon iconclass={props.iconclass} iconurl={props.iconurl} styles={this.styles.icon} />) : null}\n {props.title ? (<Text style={this.styles.title}>{props.title}</Text>) : null}\n </View>\n ) : null}\n {props.subheading ? (\n <Text style={this.styles.subHeading}>{props.subheading}</Text>\n ) : null}\n </View>\n {this.state.chartWidth ? (\n <View ref={this.viewRef}>\n <BubbleChart\n data={chartData}\n width={this.state.chartWidth || this.screenWidth}\n height={this.styles.root.height as number}\n colors={this.state.colors}\n theme={this.getChartTheme(false, series)}\n sizeRange={props.sizerange}\n minY={minDomain.y}\n minX={minDomain.x}\n intervalX={props.intervalx ?? 1} \n intervalY={props.intervaly}\n grid={{\n top: props.offsettop,\n bottom: props.offsetbottom,\n left: this.isRTL ? props.offsetright : props.offsetleft,\n right: this.isRTL ? props.offsetleft : props.offsetright,\n }}\n showXAxis={props.showxaxis}\n showXAxisTicks={props.showxaxisticks}\n showYAxis={props.showyaxis}\n showYAxisTicks={props.showyaxisticks}\n showXAxisSplitLines={!props.hidegridxaxis}\n showYAxisSplitLines={!props.hidegridyaxis}\n xAxisLabel={this.state.xLabel || ''}\n yAxisLabel={this.state.yLabel || ''}\n xAxisTickLabelFormatter={props.showxaxis !== false ? this.getXAxisTickLabelFormatter() : undefined}\n yAxisTickLabelFormatter={props.showyaxis !== false ? this.getYAxisTickLabelFormatter() : undefined}\n showLegend={showLegend}\n symbol={symbol}\n legendPosition={legendPosition}\n tooltip={props.tooltips ? (this.hasCustomTooltip ? 'none' : (props.tooltip ?? 'card')) : 'none'}\n renderTooltip={this.getRenderTooltip()}\n showHighlighter={props.showhighlighter}\n onSelect={this.onSelect}\n />\n </View>\n ) : null}\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -29,11 +29,19 @@ export default class WmTabheader extends BaseComponent {
29
29
  }) => this.headerScrollPositionValue = value);
30
30
  }
31
31
  setHeaderPanelPositon(nativeEvent) {
32
- this.headerPanelLayout = nativeEvent.nativeEvent.layout;
33
- this.forceUpdate();
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":[]}
@@ -172,6 +172,11 @@ export default class WmFormField extends BaseComponent {
172
172
  }
173
173
  setReadOnlyState(updateMode) {
174
174
  var _this$formwidget;
175
+ // A field explicitly marked readonly in markup must stay readonly regardless
176
+ // of the form's insert/edit mode toggle.
177
+ if (this.props.readonly) {
178
+ return;
179
+ }
175
180
  (_this$formwidget = this.formwidget) === null || _this$formwidget === void 0 || _this$formwidget.updateState({
176
181
  props: {
177
182
  readonly: !updateMode
@@ -1 +1 @@
1
- {"version":3,"names":["React","Text","View","BaseComponent","BaseComponentState","isEqual","isNil","get","find","cloneDeep","forEach","keys","WmFormFieldProps","DEFAULT_CLASS","PERFORMANCE_LOGGER","WmFormFieldState","constructor","args","_defineProperty","WmFormField","props","form","formScope","componentDidMount","_this$form","_this$form2","_this$form3","formwidget","formKey","formWidgets","name","registerFormFields","formFields","onFieldChangeEvt","$new","$old","isDefault","notifyChanges","updateState","datavalue","invokeEventCallback","undefined","validateFormField","updateDataOutput","call","observeOn","fields","field","formfield","f","proxy","notifyForFields","push","validate","setTimeout","getPromiseList","validators","arr","fn","promise","Function","bind","Promise","setAsyncValidators","_asyncValidatorFn","all","then","err","validationMsg","hasOwnProperty","messageKeys","toString","setInvalidState","setValidators","_cloneValidators","_syncValidators","obj","index","key","defaultValidatorMessages","value","propsObj","updateFormWidgetDataset","res","displayField","dataset","data","datafield","displayfield","state","msg","isValid","validationmessage","onPropertyChange","debug","applyDefaultValue","setPrimaryKey","setReadOnlyState","updateMode","_this$formwidget","readonly","_this$formwidget2","_this$_syncValidators","_this$formwidget3","errorType","errormsg","errorMessage","renderWidget","_this$form4","_this$form5","_this$props$styles","_this$props$styles2","_this$form7","_layoutStyle$flexGrow","_layoutStyle$flexShri","nextRef","fieldRefs","fieldIndex","currentRef","declaredHeight","styles","root","height","width","hasDimensions","formFieldChildren","renderFormFields","children","hasLabelSibling","Children","count","childrenWithProps","map","child","_child$props","_child$props2","_child$props3","isFieldWidget","applyDimensions","dimensionStyles","flexGrow","flexShrink","minHeight","existingStyles","mergedStyles","cloneElement","ref","maskchar","displayformat","autocomplete","autocapitalize","uppercase","invokeEvent","triggerValidation","onFieldChange","formRef","isdefault","defaultvalue","returnkeytype","onSubmitEditing","_this$form6","isDone","submitondone","submit","current","_nextRef$current$focu","_nextRef$current","focus","placeholder","hasUserDefinedWidth","layoutStyle","fieldLayoutStyle","flexStyle","createElement","style","onLayout","event","handleLayout","_background","_extends","getTestPropsForLabel","errorMsg"],"sources":["form-field.component.tsx"],"sourcesContent":["import React from 'react';\nimport {DimensionValue, Text, View} from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { widgetsWithUndefinedValue } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { isEqual, isNil, get, find, cloneDeep, forEach, keys } from 'lodash';\n\nimport WmFormFieldProps from './form-field.props';\nimport { DEFAULT_CLASS, WmFormFieldStyles } from './form-field.styles';\nimport {PERFORMANCE_LOGGER} from \"@wavemaker-ai/app-rn-runtime/core/logger\";\n\nexport class WmFormFieldState extends BaseComponentState<WmFormFieldProps> {\n isValid = true;\n}\n\nexport default class WmFormField extends BaseComponent<WmFormFieldProps, WmFormFieldState, WmFormFieldStyles> {\n public form: any;\n public formwidget: any;\n public fieldIndex: number = -1;\n public _syncValidators: any;\n public defaultValidatorMessages: any = [];\n private notifyForFields: any = [];\n private _asyncValidatorFn: any;\n constructor(props: WmFormFieldProps) {\n super(props, DEFAULT_CLASS, new WmFormFieldProps(), new WmFormFieldState());\n if (!this.form) {\n this.form = props.formScope && props.formScope();\n }\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.formwidget = (this.props.formKey && this.form?.formWidgets[this.props.formKey])\n || (this.props.name && this.form?.formWidgets[this.props.name]);\n this.form?.registerFormFields(this.form.formFields, this.form.formWidgets);\n }\n\n onFieldChangeEvt(name: string, $new: any, $old: any, isDefault: boolean) {\n this.notifyChanges();\n if (!isEqual($old, $new)) {\n this.updateState({ props: { datavalue: $new }} as WmFormFieldState, () => {\n !isDefault && this.invokeEventCallback('onChange', [undefined, this, $new, $old]);\n this.validateFormField();\n });\n if (this.form) {\n this.form.updateDataOutput.call(this.form, get(this.props, 'formKey', this.props.name), $new);\n }\n }\n }\n\n // Registers observer of validation fields\n observeOn(fields: any) {\n forEach(fields, (field) => {\n const formfield = find(this.form.formFields, (f) => f.proxy.name === field);\n if (formfield) {\n formfield.notifyForFields.push(this);\n }\n });\n }\n\n // Notifies changes to observing validation fields\n notifyChanges() {\n forEach(this.notifyForFields, (field) => {\n field.formwidget.validate(field.formwidget.datavalue);\n setTimeout(() => field.validateFormField());\n });\n }\n\n getPromiseList(validators: any) {\n const arr: any = [];\n forEach(validators, (fn) => {\n let promise = fn;\n if (fn instanceof Function && fn.bind) {\n promise = fn(this.formwidget.proxy, this.form);\n }\n if (promise instanceof Promise) {\n arr.push(promise);\n }\n });\n return arr;\n }\n\n // this method sets the asyncValidation on the form field. Assigns validationmessages from the returned response\n setAsyncValidators(validators: any) {\n this._asyncValidatorFn = () => {\n return Promise.all(this.getPromiseList(validators)).then(() => {\n return null;\n }, err => {\n let validationMsg: string;\n // if err obj has validationMessage key, then set validationMessage using this value\n // else return the value of the first key in the err object as validation message.\n if (err.hasOwnProperty('errorMessage')) {\n validationMsg = get(err, 'errorMessage');\n } else {\n const messageKeys = keys(err);\n validationMsg = (err[messageKeys[0]]).toString();\n }\n this.setInvalidState(validationMsg);\n return err;\n })\n };\n }\n\n // sets the default validation on the form field\n setValidators(validators: any) {\n let _cloneValidators = cloneDeep(validators);\n this._syncValidators = [];\n forEach(_cloneValidators, (obj, index) => {\n // custom validation is bound to function.\n if (obj && obj instanceof Function) {\n // passing formwidget and form as arguments to the obj (i.e. validator function)\n _cloneValidators[index] = obj.bind(undefined, this.formwidget.proxy, this.form);\n this._syncValidators.push(_cloneValidators[index]);\n } else {\n // checks for default validator like required, maxchars etc.\n const key = get(obj, 'type');\n this.defaultValidatorMessages[key] = get(obj, 'errorMessage');\n const value = get(obj, 'validator');\n let propsObj: any = {\n props: {}\n };\n propsObj.props[key] = value;\n key === 'required' && this.updateState(propsObj as WmFormFieldState);\n this.formwidget.updateState(propsObj as WmFormFieldState);\n }\n });\n }\n\n updateFormWidgetDataset(res: any, displayField: string) {\n this.formwidget.updateState({\n props: {\n dataset: res.data,\n datafield: 'All Fields',\n displayfield: this.formwidget.state.props.displayfield || displayField,\n }\n } as WmFormFieldState);\n }\n\n setInvalidState(msg: string) {\n this.updateState({\n isValid: false,\n props: {\n validationmessage: msg\n }\n } as WmFormFieldState)\n this.formwidget.updateState({\n isValid: false,\n props: {\n validationmessage: msg\n }\n } as WmFormFieldState);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'datavalue':\n if (!isEqual($old, $new)) {\n PERFORMANCE_LOGGER.debug(`form field ${this.props.name} changed from ${$old} to ${$new}`);\n }\n break;\n case 'defaultvalue':\n if (!isEqual($old, $new)) {\n get(this, 'form') && this.form.applyDefaultValue(this);\n }\n break;\n case 'primary-key':\n if ($new) {\n this.form.setPrimaryKey(this.props.name);\n }\n break;\n }\n }\n\n setReadOnlyState(updateMode: any) {\n this.formwidget?.updateState({\n props: {\n readonly: !updateMode,\n }\n } as WmFormFieldState);\n }\n\n validateFormField() {\n if (this.formwidget?.state.isValid === false) {\n const errorType = this.formwidget?.state?.errorType;\n let validationMsg = get(this.defaultValidatorMessages, errorType);\n if (validationMsg) {\n if (validationMsg instanceof Function) {\n // passing formwidget and form as arguments to the errorMessage function.\n validationMsg = validationMsg(this.formwidget.proxy, this.form);\n }\n this.updateState({ props: {\n validationmessage: validationMsg\n }} as WmFormFieldState);\n }\n this.updateState({ isValid: false} as WmFormFieldState);\n } else {\n this.updateState({ isValid: true } as WmFormFieldState);\n }\n\n this._syncValidators?.forEach((fn: any) => {\n const errormsg = fn();\n let validationMsg = errormsg?.errorMessage;\n if (validationMsg) {\n if (validationMsg instanceof Function) {\n // passing formwidget and form as arguments to the errorMessage function.\n validationMsg = validationMsg(this.formwidget.proxy, this.form);\n }\n this.setInvalidState(validationMsg);\n }\n })\n\n this._asyncValidatorFn && this._asyncValidatorFn();\n\n }\n\n get value(){\n return this.state.props.datavalue;\n }\n\n renderWidget(props: WmFormFieldProps) {\n const nextRef = this.form?.fieldRefs[this.fieldIndex + 1];\n const currentRef = this.form?.fieldRefs[this.fieldIndex];\n // this.styles.root.height gets resolved (and cleared to undefined) by the height\n // fill|hug handling in base.component.tsx, so it can no longer be used to detect\n // whether the user explicitly declared a height — read the original, unresolved\n // value from props.styles for that check instead. width doesn't need this: its\n // resolved value is only ever used to forward a literal width verbatim, so an\n // already-resolved 'fill' (now undefined) correctly contributes nothing either way.\n const declaredHeight = this.props.styles?.root?.height;\n const { height, width } = this.styles.root || {};\n const hasDimensions = declaredHeight !== undefined || width !== undefined;\n\n const formFieldChildren = props.renderFormFields(this.proxy).props.children;\n const hasLabelSibling = React.Children.count(formFieldChildren) > 1;\n\n // Only the actual data-bound widget (formfield=\"true\") is sized by the form-field's\n // height/width — the label keeps its own intrinsic size. When a label is stacked\n // alongside it (e.g. captionposition=\"top\"), or the height was resolved into flex\n // properties (fill/hug) rather than a literal value, the widget gets flexGrow/minHeight\n // instead of the raw height, so it fills the available space instead of adding on top\n // of it and overflowing the fixed-height root.\n var childrenWithProps = React.Children.map(formFieldChildren, (child) => {\n const isFieldWidget = child?.props?.formfield === 'true';\n const applyDimensions = hasDimensions && isFieldWidget;\n\n const dimensionStyles = applyDimensions\n ? {\n ...(width !== undefined ? { width } : {}),\n ...(declaredHeight !== undefined\n ? ((hasLabelSibling || height === undefined) ? { flexGrow: 1, flexShrink: 1, minHeight: 0 } : { height })\n : {})\n }\n : undefined;\n\n // Merge dimension styles with any existing styles on the child\n const existingStyles = child?.props?.styles || {};\n const mergedStyles = dimensionStyles\n ? {\n ...existingStyles,\n root: { ...existingStyles.root, ...dimensionStyles }\n }\n : existingStyles;\n\n return React.cloneElement(child, {\n ref: currentRef,\n datavalue: props.datavalue || child?.props?.datavalue,\n value: this.value,\n isValid: this.state.isValid,\n maskchar: props.maskchar,\n displayformat: props.displayformat,\n autocomplete: props.autocomplete,\n autocapitalize: props.autocapitalize,\n uppercase: props.uppercase,\n invokeEvent: this.invokeEventCallback.bind(this),\n triggerValidation: this.validateFormField.bind(this),\n onFieldChange: this.onFieldChangeEvt.bind(this),\n formRef: props.formRef,\n isdefault: props.defaultvalue !== undefined ? true : false,\n ...(props.returnkeytype !== 'auto' ? {\n returnkeytype: props.returnkeytype,\n onSubmitEditing: () => {\n const isDone = props.returnkeytype === 'done';\n if (this.form?.props?.submitondone && isDone) {\n this.form.submit();\n } else if (props.returnkeytype === 'next' && nextRef?.current) {\n nextRef.current.focus?.();\n }\n }\n } : {}),\n ...(!isNil(props?.placeholder) ? { placeholder: props.placeholder } : {}),\n ...(applyDimensions ? { styles: mergedStyles } : {})\n });\n });\n\n const hasUserDefinedWidth = this.props.styles?.root?.width !== undefined;\n const layoutStyle = this.form?.state?.fieldLayoutStyle;\n\n const flexStyle = hasUserDefinedWidth ? {} : {\n width: layoutStyle?.width || '100%',\n flexGrow: layoutStyle?.flexGrow ?? 0,\n flexShrink: layoutStyle?.flexShrink ?? 0,\n };\n\n return (\n <View\n style={[this.styles.root, flexStyle]}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this._background}\n {childrenWithProps}\n {this.state.isValid === false && !!props.validationmessage && <Text {...this.getTestPropsForLabel('error_msg')} style={this.styles.errorMsg}>{props.validationmessage}</Text>}\n </View>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Text","View","BaseComponent","BaseComponentState","isEqual","isNil","get","find","cloneDeep","forEach","keys","WmFormFieldProps","DEFAULT_CLASS","PERFORMANCE_LOGGER","WmFormFieldState","constructor","args","_defineProperty","WmFormField","props","form","formScope","componentDidMount","_this$form","_this$form2","_this$form3","formwidget","formKey","formWidgets","name","registerFormFields","formFields","onFieldChangeEvt","$new","$old","isDefault","notifyChanges","updateState","datavalue","invokeEventCallback","undefined","validateFormField","updateDataOutput","call","observeOn","fields","field","formfield","f","proxy","notifyForFields","push","validate","setTimeout","getPromiseList","validators","arr","fn","promise","Function","bind","Promise","setAsyncValidators","_asyncValidatorFn","all","then","err","validationMsg","hasOwnProperty","messageKeys","toString","setInvalidState","setValidators","_cloneValidators","_syncValidators","obj","index","key","defaultValidatorMessages","value","propsObj","updateFormWidgetDataset","res","displayField","dataset","data","datafield","displayfield","state","msg","isValid","validationmessage","onPropertyChange","debug","applyDefaultValue","setPrimaryKey","setReadOnlyState","updateMode","_this$formwidget","readonly","_this$formwidget2","_this$_syncValidators","_this$formwidget3","errorType","errormsg","errorMessage","renderWidget","_this$form4","_this$form5","_this$props$styles","_this$props$styles2","_this$form7","_layoutStyle$flexGrow","_layoutStyle$flexShri","nextRef","fieldRefs","fieldIndex","currentRef","declaredHeight","styles","root","height","width","hasDimensions","formFieldChildren","renderFormFields","children","hasLabelSibling","Children","count","childrenWithProps","map","child","_child$props","_child$props2","_child$props3","isFieldWidget","applyDimensions","dimensionStyles","flexGrow","flexShrink","minHeight","existingStyles","mergedStyles","cloneElement","ref","maskchar","displayformat","autocomplete","autocapitalize","uppercase","invokeEvent","triggerValidation","onFieldChange","formRef","isdefault","defaultvalue","returnkeytype","onSubmitEditing","_this$form6","isDone","submitondone","submit","current","_nextRef$current$focu","_nextRef$current","focus","placeholder","hasUserDefinedWidth","layoutStyle","fieldLayoutStyle","flexStyle","createElement","style","onLayout","event","handleLayout","_background","_extends","getTestPropsForLabel","errorMsg"],"sources":["form-field.component.tsx"],"sourcesContent":["import React from 'react';\nimport {DimensionValue, Text, View} from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { widgetsWithUndefinedValue } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { isEqual, isNil, get, find, cloneDeep, forEach, keys } from 'lodash';\n\nimport WmFormFieldProps from './form-field.props';\nimport { DEFAULT_CLASS, WmFormFieldStyles } from './form-field.styles';\nimport {PERFORMANCE_LOGGER} from \"@wavemaker-ai/app-rn-runtime/core/logger\";\n\nexport class WmFormFieldState extends BaseComponentState<WmFormFieldProps> {\n isValid = true;\n}\n\nexport default class WmFormField extends BaseComponent<WmFormFieldProps, WmFormFieldState, WmFormFieldStyles> {\n public form: any;\n public formwidget: any;\n public fieldIndex: number = -1;\n public _syncValidators: any;\n public defaultValidatorMessages: any = [];\n private notifyForFields: any = [];\n private _asyncValidatorFn: any;\n constructor(props: WmFormFieldProps) {\n super(props, DEFAULT_CLASS, new WmFormFieldProps(), new WmFormFieldState());\n if (!this.form) {\n this.form = props.formScope && props.formScope();\n }\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.formwidget = (this.props.formKey && this.form?.formWidgets[this.props.formKey])\n || (this.props.name && this.form?.formWidgets[this.props.name]);\n this.form?.registerFormFields(this.form.formFields, this.form.formWidgets);\n }\n\n onFieldChangeEvt(name: string, $new: any, $old: any, isDefault: boolean) {\n this.notifyChanges();\n if (!isEqual($old, $new)) {\n this.updateState({ props: { datavalue: $new }} as WmFormFieldState, () => {\n !isDefault && this.invokeEventCallback('onChange', [undefined, this, $new, $old]);\n this.validateFormField();\n });\n if (this.form) {\n this.form.updateDataOutput.call(this.form, get(this.props, 'formKey', this.props.name), $new);\n }\n }\n }\n\n // Registers observer of validation fields\n observeOn(fields: any) {\n forEach(fields, (field) => {\n const formfield = find(this.form.formFields, (f) => f.proxy.name === field);\n if (formfield) {\n formfield.notifyForFields.push(this);\n }\n });\n }\n\n // Notifies changes to observing validation fields\n notifyChanges() {\n forEach(this.notifyForFields, (field) => {\n field.formwidget.validate(field.formwidget.datavalue);\n setTimeout(() => field.validateFormField());\n });\n }\n\n getPromiseList(validators: any) {\n const arr: any = [];\n forEach(validators, (fn) => {\n let promise = fn;\n if (fn instanceof Function && fn.bind) {\n promise = fn(this.formwidget.proxy, this.form);\n }\n if (promise instanceof Promise) {\n arr.push(promise);\n }\n });\n return arr;\n }\n\n // this method sets the asyncValidation on the form field. Assigns validationmessages from the returned response\n setAsyncValidators(validators: any) {\n this._asyncValidatorFn = () => {\n return Promise.all(this.getPromiseList(validators)).then(() => {\n return null;\n }, err => {\n let validationMsg: string;\n // if err obj has validationMessage key, then set validationMessage using this value\n // else return the value of the first key in the err object as validation message.\n if (err.hasOwnProperty('errorMessage')) {\n validationMsg = get(err, 'errorMessage');\n } else {\n const messageKeys = keys(err);\n validationMsg = (err[messageKeys[0]]).toString();\n }\n this.setInvalidState(validationMsg);\n return err;\n })\n };\n }\n\n // sets the default validation on the form field\n setValidators(validators: any) {\n let _cloneValidators = cloneDeep(validators);\n this._syncValidators = [];\n forEach(_cloneValidators, (obj, index) => {\n // custom validation is bound to function.\n if (obj && obj instanceof Function) {\n // passing formwidget and form as arguments to the obj (i.e. validator function)\n _cloneValidators[index] = obj.bind(undefined, this.formwidget.proxy, this.form);\n this._syncValidators.push(_cloneValidators[index]);\n } else {\n // checks for default validator like required, maxchars etc.\n const key = get(obj, 'type');\n this.defaultValidatorMessages[key] = get(obj, 'errorMessage');\n const value = get(obj, 'validator');\n let propsObj: any = {\n props: {}\n };\n propsObj.props[key] = value;\n key === 'required' && this.updateState(propsObj as WmFormFieldState);\n this.formwidget.updateState(propsObj as WmFormFieldState);\n }\n });\n }\n\n updateFormWidgetDataset(res: any, displayField: string) {\n this.formwidget.updateState({\n props: {\n dataset: res.data,\n datafield: 'All Fields',\n displayfield: this.formwidget.state.props.displayfield || displayField,\n }\n } as WmFormFieldState);\n }\n\n setInvalidState(msg: string) {\n this.updateState({\n isValid: false,\n props: {\n validationmessage: msg\n }\n } as WmFormFieldState)\n this.formwidget.updateState({\n isValid: false,\n props: {\n validationmessage: msg\n }\n } as WmFormFieldState);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'datavalue':\n if (!isEqual($old, $new)) {\n PERFORMANCE_LOGGER.debug(`form field ${this.props.name} changed from ${$old} to ${$new}`);\n }\n break;\n case 'defaultvalue':\n if (!isEqual($old, $new)) {\n get(this, 'form') && this.form.applyDefaultValue(this);\n }\n break;\n case 'primary-key':\n if ($new) {\n this.form.setPrimaryKey(this.props.name);\n }\n break;\n }\n }\n\n setReadOnlyState(updateMode: any) {\n // A field explicitly marked readonly in markup must stay readonly regardless\n // of the form's insert/edit mode toggle.\n if (this.props.readonly) {\n return;\n }\n this.formwidget?.updateState({\n props: {\n readonly: !updateMode,\n }\n } as WmFormFieldState);\n }\n\n validateFormField() {\n if (this.formwidget?.state.isValid === false) {\n const errorType = this.formwidget?.state?.errorType;\n let validationMsg = get(this.defaultValidatorMessages, errorType);\n if (validationMsg) {\n if (validationMsg instanceof Function) {\n // passing formwidget and form as arguments to the errorMessage function.\n validationMsg = validationMsg(this.formwidget.proxy, this.form);\n }\n this.updateState({ props: {\n validationmessage: validationMsg\n }} as WmFormFieldState);\n }\n this.updateState({ isValid: false} as WmFormFieldState);\n } else {\n this.updateState({ isValid: true } as WmFormFieldState);\n }\n\n this._syncValidators?.forEach((fn: any) => {\n const errormsg = fn();\n let validationMsg = errormsg?.errorMessage;\n if (validationMsg) {\n if (validationMsg instanceof Function) {\n // passing formwidget and form as arguments to the errorMessage function.\n validationMsg = validationMsg(this.formwidget.proxy, this.form);\n }\n this.setInvalidState(validationMsg);\n }\n })\n\n this._asyncValidatorFn && this._asyncValidatorFn();\n\n }\n\n get value(){\n return this.state.props.datavalue;\n }\n\n renderWidget(props: WmFormFieldProps) {\n const nextRef = this.form?.fieldRefs[this.fieldIndex + 1];\n const currentRef = this.form?.fieldRefs[this.fieldIndex];\n // this.styles.root.height gets resolved (and cleared to undefined) by the height\n // fill|hug handling in base.component.tsx, so it can no longer be used to detect\n // whether the user explicitly declared a height — read the original, unresolved\n // value from props.styles for that check instead. width doesn't need this: its\n // resolved value is only ever used to forward a literal width verbatim, so an\n // already-resolved 'fill' (now undefined) correctly contributes nothing either way.\n const declaredHeight = this.props.styles?.root?.height;\n const { height, width } = this.styles.root || {};\n const hasDimensions = declaredHeight !== undefined || width !== undefined;\n\n const formFieldChildren = props.renderFormFields(this.proxy).props.children;\n const hasLabelSibling = React.Children.count(formFieldChildren) > 1;\n\n // Only the actual data-bound widget (formfield=\"true\") is sized by the form-field's\n // height/width — the label keeps its own intrinsic size. When a label is stacked\n // alongside it (e.g. captionposition=\"top\"), or the height was resolved into flex\n // properties (fill/hug) rather than a literal value, the widget gets flexGrow/minHeight\n // instead of the raw height, so it fills the available space instead of adding on top\n // of it and overflowing the fixed-height root.\n var childrenWithProps = React.Children.map(formFieldChildren, (child) => {\n const isFieldWidget = child?.props?.formfield === 'true';\n const applyDimensions = hasDimensions && isFieldWidget;\n\n const dimensionStyles = applyDimensions\n ? {\n ...(width !== undefined ? { width } : {}),\n ...(declaredHeight !== undefined\n ? ((hasLabelSibling || height === undefined) ? { flexGrow: 1, flexShrink: 1, minHeight: 0 } : { height })\n : {})\n }\n : undefined;\n\n // Merge dimension styles with any existing styles on the child\n const existingStyles = child?.props?.styles || {};\n const mergedStyles = dimensionStyles\n ? {\n ...existingStyles,\n root: { ...existingStyles.root, ...dimensionStyles }\n }\n : existingStyles;\n\n return React.cloneElement(child, {\n ref: currentRef,\n datavalue: props.datavalue || child?.props?.datavalue,\n value: this.value,\n isValid: this.state.isValid,\n maskchar: props.maskchar,\n displayformat: props.displayformat,\n autocomplete: props.autocomplete,\n autocapitalize: props.autocapitalize,\n uppercase: props.uppercase,\n invokeEvent: this.invokeEventCallback.bind(this),\n triggerValidation: this.validateFormField.bind(this),\n onFieldChange: this.onFieldChangeEvt.bind(this),\n formRef: props.formRef,\n isdefault: props.defaultvalue !== undefined ? true : false,\n ...(props.returnkeytype !== 'auto' ? {\n returnkeytype: props.returnkeytype,\n onSubmitEditing: () => {\n const isDone = props.returnkeytype === 'done';\n if (this.form?.props?.submitondone && isDone) {\n this.form.submit();\n } else if (props.returnkeytype === 'next' && nextRef?.current) {\n nextRef.current.focus?.();\n }\n }\n } : {}),\n ...(!isNil(props?.placeholder) ? { placeholder: props.placeholder } : {}),\n ...(applyDimensions ? { styles: mergedStyles } : {})\n });\n });\n\n const hasUserDefinedWidth = this.props.styles?.root?.width !== undefined;\n const layoutStyle = this.form?.state?.fieldLayoutStyle;\n\n const flexStyle = hasUserDefinedWidth ? {} : {\n width: layoutStyle?.width || '100%',\n flexGrow: layoutStyle?.flexGrow ?? 0,\n flexShrink: layoutStyle?.flexShrink ?? 0,\n };\n\n return (\n <View\n style={[this.styles.root, flexStyle]}\n onLayout={(event) => this.handleLayout(event)}\n >\n {this._background}\n {childrenWithProps}\n {this.state.isValid === false && !!props.validationmessage && <Text {...this.getTestPropsForLabel('error_msg')} style={this.styles.errorMsg}>{props.validationmessage}</Text>}\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
- forEach(formFields, w => {
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 && formWidgets[w.props.formKey] || w.props.name && formWidgets[w.props.name];
127
+ w.formwidget = w.props.formKey && formWidgetsCopy[w.props.formKey] || w.props.name && formWidgetsCopy[w.props.name];
124
128
  }
125
129
  });
126
- this.formFields = formFields;
127
- this.formWidgets = formWidgets;
128
- if (this.fieldRefs.length !== formFields.length) {
129
- this.fieldRefs = formFields.map(() => /*#__PURE__*/React.createRef());
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
- formFields === null || formFields === void 0 || formFields.forEach((f, index) => {
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) {