@wavemaker/app-rn-runtime 11.14.1-24.647644 → 11.14.1-27.647700
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/basic/bottomsheet/bottomsheet.component.js +23 -2
- package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
- package/components/basic/label/label.component.js +11 -22
- package/components/basic/label/label.component.js.map +1 -1
- package/components/basic/label/label.props.js +1 -0
- package/components/basic/label/label.props.js.map +1 -1
- package/core/environment.js +25 -0
- package/core/environment.js.map +1 -0
- package/npm-shrinkwrap.json +585 -559
- package/package-lock.json +585 -559
- package/package.json +2 -2
- package/runtime/App.js +1 -0
- package/runtime/App.js.map +1 -1
- package/runtime/base-fragment.component.js +4 -0
- package/runtime/base-fragment.component.js.map +1 -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","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","useAndroidEllipsis","hiddenStyle","gradientStyle","isSinglePart","androidEllipsisTextStyle","userSelect","textAlign","content","join","numberOfLines","ellipsizeMode","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/app-rn-runtime/core/base.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker/app-rn-runtime/core/navigation.service';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/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/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/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 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 // 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 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 = isSinglePart\n ? { ...baseStyle, ...hiddenStyle, ...gradientStyle }\n : {\n flexWrap: 'wrap',\n textAlign: baseStyle.textAlign,\n ...hiddenStyle,\n ...gradientStyle,\n };\n\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} ellipsizeMode=\"tail\">\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}"],"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","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","OS","ellipsizeMode","hiddenStyle","gradientStyle","isSinglePart","combinedTextStyle","textAlign","numberOfLines","isLink","selectable","userSelect","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/app-rn-runtime/core/base.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker/app-rn-runtime/core/navigation.service';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker/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/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/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 // 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\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 // 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}"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ export default class WmLabelProps extends BaseProps {
|
|
|
12
12
|
_defineProperty(this, "isValid", true);
|
|
13
13
|
_defineProperty(this, "wrap", true);
|
|
14
14
|
_defineProperty(this, "nooflines", undefined);
|
|
15
|
+
_defineProperty(this, "ellipsizemode", 'tail');
|
|
15
16
|
_defineProperty(this, "skeletonheight", null);
|
|
16
17
|
_defineProperty(this, "skeletonwidth", null);
|
|
17
18
|
_defineProperty(this, "multilineskeleton", false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseProps","WmLabelProps","constructor","args","_defineProperty","undefined"],"sources":["label.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { AccessibilityRole } from 'react-native';\nexport default class WmLabelProps extends BaseProps {\n animation?: string = null as any;\n animationdelay?: number = null as any;\n caption?: string = 'Label';\n required?: boolean = null as any;\n isValid?: boolean = true;\n wrap?: boolean = true;\n nooflines?: any = undefined;\n skeletonheight?: string = null as any;\n skeletonwidth?: string = null as any;\n multilineskeleton?: boolean = false;\n accessible?: boolean = true;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n accessibilityrole?: AccessibilityRole = 'text';\n onTap?: Function = null as any;\n enableandroidellipsis?: boolean = false;\n textanimation?: string = undefined as any;\n animationspeed?: number = 0;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,YAAY,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBAC3B,IAAI;IAAAA,eAAA,yBACC,IAAI;IAAAA,eAAA,kBACX,OAAO;IAAAA,eAAA,mBACL,IAAI;IAAAA,eAAA,kBACL,IAAI;IAAAA,eAAA,eACP,IAAI;IAAAA,eAAA,oBACHC,SAAS;IAAAD,eAAA,
|
|
1
|
+
{"version":3,"names":["BaseProps","WmLabelProps","constructor","args","_defineProperty","undefined"],"sources":["label.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { AccessibilityRole } from 'react-native';\nexport default class WmLabelProps extends BaseProps {\n animation?: string = null as any;\n animationdelay?: number = null as any;\n caption?: string = 'Label';\n required?: boolean = null as any;\n isValid?: boolean = true;\n wrap?: boolean = true;\n nooflines?: any = undefined;\n ellipsizemode?: 'head' | 'middle' | 'tail' = 'tail';\n skeletonheight?: string = null as any;\n skeletonwidth?: string = null as any;\n multilineskeleton?: boolean = false;\n accessible?: boolean = true;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n accessibilityrole?: AccessibilityRole = 'text';\n onTap?: Function = null as any;\n enableandroidellipsis?: boolean = false;\n textanimation?: string = undefined as any;\n animationspeed?: number = 0;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAEzE,eAAe,MAAMC,YAAY,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBAC3B,IAAI;IAAAA,eAAA,yBACC,IAAI;IAAAA,eAAA,kBACX,OAAO;IAAAA,eAAA,mBACL,IAAI;IAAAA,eAAA,kBACL,IAAI;IAAAA,eAAA,eACP,IAAI;IAAAA,eAAA,oBACHC,SAAS;IAAAD,eAAA,wBACkB,MAAM;IAAAA,eAAA,yBACzB,IAAI;IAAAA,eAAA,wBACL,IAAI;IAAAA,eAAA,4BACC,KAAK;IAAAA,eAAA,qBACZ,IAAI;IAAAA,eAAA,6BACGC,SAAS;IAAAD,eAAA,eACvBC,SAAS;IAAAD,eAAA,4BACe,MAAM;IAAAA,eAAA,gBAC3B,IAAI;IAAAA,eAAA,gCACW,KAAK;IAAAA,eAAA,wBACdC,SAAS;IAAAD,eAAA,yBACR,CAAC;EAAA;AAC/B","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
2
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
3
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4
|
+
import StorageService from "./storage.service";
|
|
5
|
+
export const CURRENT_ENVIRONMENT = 'currentEnvironment';
|
|
6
|
+
class Environment {
|
|
7
|
+
constructor() {
|
|
8
|
+
_defineProperty(this, "_loadProfileCallback", null);
|
|
9
|
+
}
|
|
10
|
+
/** Persist profile name and run the registered loadenv callback. Does not restart. */
|
|
11
|
+
setCurrent(env) {
|
|
12
|
+
return StorageService.setItem(CURRENT_ENVIRONMENT, env).then(() => {
|
|
13
|
+
var _this$_loadProfileCal;
|
|
14
|
+
(_this$_loadProfileCal = this._loadProfileCallback) === null || _this$_loadProfileCal === void 0 || _this$_loadProfileCal.call(this, env);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
getCurrentAsync() {
|
|
18
|
+
return StorageService.getItem(CURRENT_ENVIRONMENT);
|
|
19
|
+
}
|
|
20
|
+
registerLoadCallback(fn) {
|
|
21
|
+
this._loadProfileCallback = fn;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export default new Environment();
|
|
25
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StorageService","CURRENT_ENVIRONMENT","Environment","constructor","_defineProperty","setCurrent","env","setItem","then","_this$_loadProfileCal","_loadProfileCallback","call","getCurrentAsync","getItem","registerLoadCallback","fn"],"sources":["environment.ts"],"sourcesContent":["import StorageService from \"./storage.service\";\n\nexport const CURRENT_ENVIRONMENT = 'currentEnvironment'\n\nclass Environment {\n private _loadProfileCallback: ((profileName: string) => void) | null = null;\n\n /** Persist profile name and run the registered loadenv callback. Does not restart. */\n setCurrent(env: string): Promise<void> {\n return StorageService.setItem(CURRENT_ENVIRONMENT, env).then(() => {\n this._loadProfileCallback?.(env);\n });\n }\n\n getCurrentAsync() {\n return StorageService.getItem(CURRENT_ENVIRONMENT);\n }\n\n registerLoadCallback(fn: (profileName: string) => void) {\n this._loadProfileCallback = fn;\n }\n}\n\nexport default new Environment();\n"],"mappings":";;;AAAA,OAAOA,cAAc,MAAM,mBAAmB;AAE9C,OAAO,MAAMC,mBAAmB,GAAG,oBAAoB;AAEvD,MAAMC,WAAW,CAAC;EAAAC,YAAA;IAAAC,eAAA,+BACyD,IAAI;EAAA;EAE3E;EACAC,UAAUA,CAACC,GAAW,EAAiB;IACnC,OAAON,cAAc,CAACO,OAAO,CAACN,mBAAmB,EAAEK,GAAG,CAAC,CAACE,IAAI,CAAC,MAAM;MAAA,IAAAC,qBAAA;MAC/D,CAAAA,qBAAA,OAAI,CAACC,oBAAoB,cAAAD,qBAAA,eAAzBA,qBAAA,CAAAE,IAAA,KAAI,EAAwBL,GAAG,CAAC;IACpC,CAAC,CAAC;EACN;EAEAM,eAAeA,CAAA,EAAG;IACd,OAAOZ,cAAc,CAACa,OAAO,CAACZ,mBAAmB,CAAC;EACtD;EAEAa,oBAAoBA,CAACC,EAAiC,EAAE;IACpD,IAAI,CAACL,oBAAoB,GAAGK,EAAE;EAClC;AACJ;AAEA,eAAe,IAAIb,WAAW,CAAC,CAAC","ignoreList":[]}
|