@wavemaker/app-rn-runtime 11.11.0-rc.6109 → 11.11.0-rc.6113

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.
@@ -1 +1 @@
1
- {"version":3,"names":["assign","isUndefined","isNil","React","AccessibilityInfo","Platform","StyleSheet","View","InteractionManager","Animatable","ThemeVariables","StyleProps","getStyleName","BackgroundComponent","injector","ROOT_LOGGER","deepCopy","getPosition","setPosition","BASE_THEME","ThemeConsumer","ThemeEvent","EventNotifier","PropsProvider","assignIn","HideMode","AssetConsumer","FixedView","TextIdPrefixConsumer","isScreenReaderEnabled","TappableContext","WmComponentNode","WIDGET_LOGGER","extend","ParentContext","createContext","BaseComponentState","constructor","_defineProperty","undefined","defineStyles","styles","text","fontFamily","INSTANCE","baseFont","userSelect","BaseProps","args","BaseComponent","Component","markupProps","defaultClass","defaultProps","defaultState","ADD_TO_DOM","createElement","Fragment","I18nService","get","_this$parent$state","isPageContentWidget","isCurrentParentIsContent","parent","showSkeletonInPageContent","state","props","showskeleton","notifier","name","componentNode","instance","propertyProvider","show","$new","$old","debug","initialized","styleName","styleOverrides","setTimeout","cleanRefresh","onPropertyChange","_INSTANCE","_showView","deferload","check","proxy","Proxy","target","prop","receiver","propName","toString","has","Reflect","set","value","overrideProp","updateState","cleanup","push","updateStateTimeouts","forEach","v","clearTimeout","theme","subscribe","CHANGE","forceUpdate","addEventListener","remove","destroyParentListeners","event","fn","notify","emitToParent","isRTL","i18nService","isRTLLocale","animate","setState","animationId","Date","now","animatableProps","setProp","setPropDefault","setDefault","getDefaultStyles","getStyle","reset","newPartialState","callback","destroyed","stateFn","oldState","oldProps","newState","Object","keys","k","onUpdateState","_this$props$listener","_this$props$listener2","listener","onComponentChange","timeoutId","splice","indexOf","shouldComponentUpdate","nextProps","nextState","nextContext","key","componentDidMount","onComponentInit","componentWillAttach","isFixed","isSticky","hide","componentWillDetach","componentWillUnmount","_this$parent","onComponentDestroy","f","destroy","componentDidUpdate","prevProps","prevState","snapshot","invokeEventCallback","eventName","callBack","map","a","apply","e","console","error","showView","isVisible","refresh","renderSkeleton","parentListenerDestroyers","setParent","add","getName","handleLayout","ref","newLayoutPosition","y","nativeEvent","layout","x","compnentRef","baseView","measure","runAfterInteractions","requestAnimationFrame","width","height","px","py","copyStyles","property","from","to","renderFixedContainer","style","rootStyle","left","top","bottom","right","root","mergeStyle","addAnimation","renderWidget","n","_extends","setBackground","bgStyle","_background","image","backgroundImage","position","backgroundPosition","size","backgroundSize","repeat","backgroundRepeat","resizeMode","backgroundResizeMode","borderRadius","highlight","onTouchStart","borderWidth","overflow","backgroundColor","borderColor","borderStyle","zIndex","absoluteFill","getTestId","suffix","id","testIdPrefix","getTestProps","OS","accessibilityLabel","testID","accessible","getStyleClassName","classname","getTestPropsForInput","getTestPropsForAction","getTestPropsForLabel","getLayoutOfWidget","getLayout","scrollToTop","scrollToEnd","scrollToPosition","widgetName","_this$getLayoutOfWidg","positionY","getDependenciesFromContext","Consumer","tappable","closestTappable","loadAsset","_this$parent2","_showSkeleton","hideSkeletonInPageContentWhenDisabledInPage","Provider","render","selectedLocale","getSelectedLocale","info","hideMode","DONOT_ADD_TO_DOM","disabled","showindevice","d","join","cleanseStyleProperties","hasOwnProperty","eleToRender"],"sources":["base.component.tsx"],"sourcesContent":["import { assign, isUndefined, isNil } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { AccessibilityInfo, LayoutChangeEvent, Platform, StyleSheet, TextStyle, View, ViewStyle, InteractionManager } from 'react-native';\nimport { AnimatableProps } from 'react-native-animatable';\nimport * as Animatable from 'react-native-animatable';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport { StyleProps, getStyleName } from '@wavemaker/app-rn-runtime/styles/style-props';\nimport { BackgroundComponent } from '@wavemaker/app-rn-runtime/styles/background.component';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport { ROOT_LOGGER } from '@wavemaker/app-rn-runtime/core/logger';\nimport { deepCopy, getPosition, setPosition } from '@wavemaker/app-rn-runtime/core/utils';\nimport BASE_THEME, { NamedStyles, AllStyle, ThemeConsumer, ThemeEvent, Theme } from '../styles/theme';\nimport EventNotifier from './event-notifier';\nimport { PropsProvider } from './props.provider';\nimport { assignIn } from 'lodash-es';\nimport { HideMode } from './if.component';\nimport { AssetConsumer } from './asset.provider';\nimport { FixedView } from './fixed-view.component';\nimport { TextIdPrefixConsumer } from './testid.provider';\nimport { isScreenReaderEnabled } from './accessibility';\nimport { Tappable, TappableContext } from './tappable.component';\nimport { WmComponentNode } from './wm-component-tree';\n\nexport const WIDGET_LOGGER = ROOT_LOGGER.extend('widget');\n\nexport const ParentContext = React.createContext(null as any);\n\nexport class BaseComponentState<T extends BaseProps> {\n public animationId?: number = 0;\n public animatableProps?: AnimatableProps<ViewStyle> = undefined;\n public props = {} as T;\n public hide? = false;\n public highlight? = false;\n}\n\nexport type BaseStyles = NamedStyles<any> & {\n root: AllStyle,\n text: TextStyle & {userSelect?: 'none'| 'text'}\n}\n\nexport function defineStyles<T>(styles: T): T {\n return deepCopy({\n text: {\n fontFamily: ThemeVariables.INSTANCE.baseFont,\n userSelect: 'text'\n }\n }, styles);\n}\n\nexport interface LifecycleListener {\n onComponentChange?: (c: BaseComponent<any, any, any>) => void;\n onComponentInit?: (c: BaseComponent<any, any, any>) => void;\n onComponentDestroy?: (c: BaseComponent<any, any, any>) => void;\n}\n\nexport class BaseProps extends StyleProps {\n id?: string = null as any;\n name?: string = null as any;\n key?: any = null as any;\n disabled? = false;\n show? = true as Boolean | String | Number;\n styles?: any = null;\n classname?: string = null as any;\n listener?: LifecycleListener = null as any;\n showindevice?: ('xs'|'sm'|'md'|'lg'|'xl'|'xxl')[] = null as any;\n showskeleton?: boolean = undefined;\n deferload?: boolean = false;\n showskeletonchildren?: boolean = true;\n disabletoucheffect?:boolean = false;\n}\n\nexport abstract class BaseComponent<T extends BaseProps, S extends BaseComponentState<T>, L extends BaseStyles> extends React.Component<T, S> {\n public styles: L = null as any;\n public hideMode = HideMode.ADD_TO_DOM;\n private propertyProvider: PropsProvider<T>;\n public proxy: BaseComponent<T, S, L>;\n public _INSTANCE: BaseComponent<T, S, L>;\n public initialized = false;\n public cleanup = [] as Function[];\n public theme = BASE_THEME;\n public updateStateTimeouts= [] as NodeJS.Timeout[];\n public parent: BaseComponent<any, any, any> = null as any;\n public destroyed = false;\n public _showSkeleton = false;\n public isFixed = false;\n public isSticky = false;\n private notifier = new EventNotifier();\n private parentListenerDestroyers = [] as Function[];\n public _background = <></>;\n private styleOverrides = {} as any;\n public loadAsset: (path: string) => number | string = null as any;\n private i18nService = injector.I18nService.get();\n public testIdPrefix = '';\n private _showView = true;\n public closestTappable?: Tappable; \n public componentNode: WmComponentNode;\n public layout: any = {};\n public baseView: any = View;\n\n\n constructor(markupProps: T, public defaultClass: string, defaultProps?: T, defaultState?: S) {\n super(markupProps);\n this.state = (defaultState || {} as S);\n this.notifier.name = this.props.name || '';\n this.componentNode = new WmComponentNode({\n instance: this\n });\n this.propertyProvider = new PropsProvider<T>(\n assign({show: true}, defaultProps),\n assign({}, markupProps),\n (name: string, $new: any, $old: any) => {\n WIDGET_LOGGER.debug(() => `${this.props.name || this.constructor.name}: ${name} changed from ${$old} to ${$new}`);\n if (this.initialized) {\n const styleName = getStyleName(name);\n if (styleName) {\n if ($new === undefined) {\n delete this.styleOverrides[styleName];\n } else {\n this.styleOverrides[styleName] = $new;\n }\n }\n }\n if (name === 'showskeleton' && this.initialized) {\n setTimeout(() => this.cleanRefresh(), 100);\n }\n this.onPropertyChange(name, $new, $old);\n });\n //@ts-ignore\n this.state.props =this.propertyProvider.get();\n this._INSTANCE = this;\n //@ts-ignore\n this._showView = !this.props.deferload;\n this.propertyProvider.check();\n //@ts-ignore\n this.proxy = (new Proxy(this, {\n get: (target, prop, receiver): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n //@ts-ignore\n return this.state.props[propName];\n }\n return Reflect.get(target, prop, receiver);\n },\n set: (target: any, prop, value: any): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n // @ts-ignore\n const props = {} as any;\n this.propertyProvider.overrideProp(propName, value);\n props[propName] = value;\n this.updateState({\n props: props\n } as S);\n return true;\n } else {\n return Reflect.set(target, prop, value);\n }\n }\n }));\n this.cleanup.push(() => {\n this.updateStateTimeouts.forEach(v => clearTimeout(v));\n });\n this.cleanup.push(this.theme.subscribe(ThemeEvent.CHANGE, () => {\n this.forceUpdate();\n }));\n this.cleanup.push(AccessibilityInfo.addEventListener('screenReaderChanged',\n () => {\n setTimeout(() => {\n this.forceUpdate();\n }, 100);\n },\n ).remove);\n this.cleanup.push(() => {\n this.destroyParentListeners();\n });\n }\n\n public subscribe(event: string, fn: Function) {\n return this.notifier.subscribe(event, fn);\n }\n\n public notify(event: string, args: any[], emitToParent = false) {\n return this.notifier.notify(event, args, emitToParent);\n }\n\n public get isRTL(){\n return this.i18nService.isRTLLocale();\n }\n\n public animate(props: AnimatableProps<ViewStyle>) {\n this.setState({\n animationId: Date.now(),\n animatableProps: props\n });\n }\n\n setProp(propName: string, value: any) {\n this.propertyProvider.set(propName, value);\n this.updateState({props: {}} as S);\n }\n\n setPropDefault(propName: string, value: any) {\n this.propertyProvider.setDefault(propName, value);\n }\n \n onPropertyChange(name: string, $new: any, $old: any) { \n }\n \n getDefaultStyles() {\n return this.theme.getStyle(this.defaultClass);\n }\n\n reset() {\n\n }\n\n updateState(newPartialState: S, callback?: ()=>void) {\n if (this.destroyed) {\n return;\n }\n const stateFn = (oldState: S) => {\n const oldProps = oldState.props;\n const newState = this.initialized ? assignIn({}, oldState, newPartialState) : assignIn(oldState, newPartialState);\n if (newPartialState.props) {\n Object.keys(newPartialState.props).forEach((k) => {\n //@ts-ignore\n oldProps[k] = newState.props[k];\n });\n newState.props = oldProps;\n }\n return newState;\n };\n const onUpdateState = () => {\n callback && callback();\n this.props.listener?.onComponentChange\n && this.props.listener?.onComponentChange(this);\n }\n if (!this.initialized) {\n this.state = stateFn(this.state);\n onUpdateState();\n } else {\n const timeoutId = setTimeout(() => {\n this.setState(stateFn, onUpdateState);\n this.updateStateTimeouts.splice(this.updateStateTimeouts.indexOf(timeoutId), 1);\n });\n this.updateStateTimeouts.push(timeoutId);\n }\n }\n\n shouldComponentUpdate(nextProps: T, nextState: S, nextContext: any) {\n if (this.propertyProvider.check(nextProps)) {\n return true;\n }\n for(let key in nextState) {\n if(key !== 'props' && (!(key in this.state) || nextState[key] !== this.state[key])) {\n return true;\n }\n }\n\n for(let key in this.state) {\n if(key !== 'props' && (!(key in nextState) || this.state[key] !== nextState[key])) {\n return true;\n }\n }\n return false;\n }\n\n componentDidMount() {\n if (this.props.listener && this.props.listener.onComponentInit) {\n this.props.listener.onComponentInit(this.proxy);\n }\n this.initialized = true;\n }\n\n componentWillAttach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: false});\n }\n }\n\n componentWillDetach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: true});\n }\n }\n\n componentWillUnmount() {\n this.destroyed = true;\n if (this.props.listener && this.props.listener.onComponentDestroy) {\n this.props.listener.onComponentDestroy(this.proxy);\n }\n this.cleanup.forEach(f => f && f());\n this.parent?.componentNode?.remove(this.componentNode);\n this.notifier.destroy();\n this.notifier.notify('destroy', []);\n }\n \n componentDidUpdate(prevProps: Readonly<T>, prevState: Readonly<S>, snapshot?: any): void {\n if (this.propertyProvider.check(this.props)) {\n this.forceUpdate();\n }\n }\n\n invokeEventCallback(eventName: string, args: any[]) {\n //@ts-ignore\n const callBack: Function = this.props[eventName];\n args = args && args.map(a => (a === this) ? this.proxy : a)\n if (callBack) {\n try {\n return callBack.apply(this.proxy, args);\n } catch(e) {\n console.error(e);\n }\n }\n }\n\n showView() {\n return this.isVisible();\n }\n\n isVisible() {\n const show = this.state.props.show;\n return show !== false && show !== 'false' && show !== '0' && !isNil(show) && show !== \"\";\n }\n\n protected abstract renderWidget(props: T): ReactNode;\n\n public refresh() {\n this.forceUpdate();\n }\n\n public cleanRefresh() {\n this.forceUpdate(() => this.notifier.notify('forceUpdate', []));\n }\n \n public renderSkeleton (props: T): ReactNode {\n return null;\n }\n\n public destroyParentListeners() {\n this.parentListenerDestroyers.map(fn => fn());\n }\n\n protected setParent(parent: BaseComponent<any, any, any>) {\n if (parent && this.parent !== parent) {\n this.parent = parent;\n this.parent.componentNode.add(this.componentNode);\n this.notifier.setParent(parent.notifier);\n this.parentListenerDestroyers = [\n this.parent.subscribe('forceUpdate', () => {\n this.forceUpdate();\n }),\n this.parent.subscribe('destroy', () => {\n this.destroyParentListeners();\n })\n ];\n }\n }\n\n protected getName() {\n return this.props.name;\n }\n\n public handleLayout(event: LayoutChangeEvent, ref: React.RefObject<View> | null = null) {\n const key = this.getName && this.getName();\n if(key){\n const newLayoutPosition = {\n [key as string]: {\n y: event.nativeEvent.layout.y,\n x: event.nativeEvent.layout.x\n }\n }\n setPosition(newLayoutPosition);\n const compnentRef = ref !== null ? ref : this.baseView \n // Layout values by measure\n if(compnentRef?.measure){\n InteractionManager.runAfterInteractions(() => {\n requestAnimationFrame(() => {\n compnentRef.measure((x = 0, y = 0, width = 0, height = 0, px = 0, py = 0) => {\n this.layout = { x, y, width, height, px, py }\n }); \n })\n })\n }\n }\n }\n \n copyStyles(property: string, from: any, to: any) {\n if (!isUndefined(from[property])) {\n to[property] = from[property];\n }\n }\n\n renderFixedContainer(props: T) {\n const style = {} as ViewStyle;\n const rootStyle = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n width: \"100%\",\n height: \"100%\"\n } as ViewStyle;\n this.copyStyles('left', this.styles.root, style);\n this.copyStyles('top', this.styles.root, style);\n this.copyStyles('right', this.styles.root, style);\n this.copyStyles('bottom', this.styles.root, style);\n this.copyStyles('width', this.styles.root, style);\n this.copyStyles('height', this.styles.root, style);\n this.styles = this.theme.mergeStyle(this.styles, {root: rootStyle});\n return (<FixedView style={style} theme={this.theme}>{this.addAnimation(this.renderWidget(props))}</FixedView>);\n }\n\n private addAnimation(n: ReactNode) {\n if (!this.state.animatableProps) {\n return (\n <>\n {n}\n </>\n )\n }\n return (\n <Animatable.View \n key={this.state.animationId} \n {...this.state.animatableProps}\n >\n {n}\n </Animatable.View>);\n }\n \n private setBackground() {\n const bgStyle = this.styles.root as any;\n this._background = (\n <>\n <BackgroundComponent \n image={bgStyle.backgroundImage}\n position={bgStyle.backgroundPosition}\n size={bgStyle.backgroundSize}\n repeat={bgStyle.backgroundRepeat}\n resizeMode={bgStyle.backgroundResizeMode}\n style={{borderRadius: this.styles.root.borderRadius}}>\n </BackgroundComponent>\n {this.state.highlight ? (<View onTouchStart={() => {\n this.setState({\n highlight: false\n })\n }} style={[{\n borderWidth: 2,\n overflow: 'hidden',\n backgroundColor: '#FFFF0033', \n borderColor: 'orange',\n borderStyle: 'dashed',\n zIndex: 1000,\n borderRadius: 0,\n }, StyleSheet.absoluteFill]}></View>) : null}\n </>\n );\n delete (this.styles.root as any)['backgroundImage'];\n delete (this.styles.root as any)['backgroundPosition'];\n delete (this.styles.root as any)['backgroundResizeMode'];\n delete (this.styles.root as any)['backgroundSize'];\n delete (this.styles.root as any)['backgroundRepeat'];\n }\n\n public getTestId(suffix?: string) {\n let id = this.props.id || this.props.name;\n if (this.testIdPrefix) {\n id = this.testIdPrefix + '_' + id;\n }\n if (suffix) {\n id = id + '_' + suffix;\n }\n return id;\n }\n\n public getTestProps(suffix?: string) {\n let id = this.getTestId(suffix);\n if (isScreenReaderEnabled()) {\n return {};\n }\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\n };\n }\n\n public getStyleClassName() {\n return this.state.props.classname;\n }\n\n public getTestPropsForInput(suffix?: string) {\n return this.getTestProps(suffix || 'i');\n }\n\n public getTestPropsForAction(suffix?: string) {\n return this.getTestProps(suffix || 'a');\n }\n\n public getTestPropsForLabel(suffix?: string) {\n return this.getTestProps(suffix || 'l');\n }\n\n public getLayoutOfWidget(name: string): {x: number, y: number} | undefined {\n return getPosition(name)\n }\n\n public getLayout() {\n return this.layout ;\n }\n\n public scrollToTop(){\n this.notify('scrollToPosition', [{\n x: 0,\n y: 0\n }]);\n }\n\n public scrollToEnd() {\n this.notify('scrollToEnd', []);\n }\n\n scrollToPosition(widgetName: string) {\n const positionY = this.getLayoutOfWidget(widgetName)?.y; // Safe access\n this.notify('scrollToPosition', [{\n x: 0,\n y: positionY,\n }]);\n }\n\n public hideSkeletonInPageContentWhenDisabledInPage = () => {\n const isPageContentWidget = this.defaultClass && this.defaultClass === 'app-page-content'\n const isCurrentParentIsContent = this.parent && this.parent.defaultClass && this.parent.defaultClass === 'app-content'\n const showSkeletonInPageContent = this.parent.state?.props?.showskeleton === false\n \n if(isPageContentWidget && isCurrentParentIsContent && showSkeletonInPageContent) {\n return false;\n }\n return undefined;\n }\n \n private getDependenciesFromContext(fn: () => ReactNode) {\n return (\n <TappableContext.Consumer>{(tappable) => {\n this.closestTappable = tappable;\n return (\n <TextIdPrefixConsumer>\n {(testIdPrefix) => {\n this.testIdPrefix = testIdPrefix || '';\n return (<AssetConsumer>\n {(loadAsset) => {\n this.loadAsset = loadAsset;\n return (<ParentContext.Consumer>\n {(parent) => {\n this.setParent(parent);\n this._showSkeleton = this.state.props.showskeleton !== false \n && (this.parent?._showSkeleton || this.state.props.showskeleton === true) && this.hideSkeletonInPageContentWhenDisabledInPage() === undefined\n return (\n <ParentContext.Provider value={this}>\n <ThemeConsumer>\n {(theme) => { \n this.theme = theme || BASE_THEME;\n return fn();\n }}\n </ThemeConsumer>\n </ParentContext.Provider>);\n }} \n </ParentContext.Consumer>);\n }}\n </AssetConsumer>);\n }}\n </TextIdPrefixConsumer>)}}\n </TappableContext.Consumer>); \n }\n \n public render(): ReactNode {\n const props = this.state.props;\n const selectedLocale = this.i18nService.getSelectedLocale();\n return this.getDependenciesFromContext(() => {\n WIDGET_LOGGER.info(() => `${this.props.name || this.constructor.name} is rendering.`);\n this._showView = this._showView || this.showView();\n if (this.state.hide \n || (!this.isVisible() && this.hideMode === HideMode.DONOT_ADD_TO_DOM)\n || !this._showView) {\n return null;\n }\n this.isFixed = false;\n const classname = this.getStyleClassName();\n this.styles = this.theme.mergeStyle(\n this.getDefaultStyles(),\n {text: this.theme.getStyle('app-' + selectedLocale)},\n {text: this.theme.getStyle(this.defaultClass + '-' + selectedLocale)},\n props.disabled ? this.theme.getStyle(this.defaultClass + '-disabled') : null,\n this.isRTL ? this.theme.getStyle(this.defaultClass + '-rtl') : null,\n classname && this.theme.getStyle(classname),\n props.showindevice && this.theme.getStyle('d-all-none ' + props.showindevice.map(d => `d-${d}-flex`).join(' ')),\n this.theme.cleanseStyleProperties(this.props.styles),\n this.theme.cleanseStyleProperties({\n root: this.styleOverrides,\n text: this.styleOverrides\n }));\n if (this.styles.root.hasOwnProperty('_background')) {\n delete this.styles.root.backgroundColor;\n }\n if (!this.isVisible()) {\n assign(this.styles, this.theme.getStyle('hidden'))\n }\n let eleToRender = (this._showSkeleton && this.renderSkeleton(props));\n if (eleToRender) {\n return eleToRender;\n }\n this.setBackground();\n this.isFixed = (this.styles.root.position as any) === 'fixed';\n if (this.isFixed) {\n this.styles.root.position = undefined;\n return this.renderFixedContainer(props);\n }\n return this.addAnimation(this.renderWidget(this.state.props)); \n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["assign","isUndefined","isNil","React","AccessibilityInfo","Platform","StyleSheet","View","InteractionManager","Animatable","ThemeVariables","StyleProps","getStyleName","BackgroundComponent","injector","ROOT_LOGGER","deepCopy","getPosition","setPosition","BASE_THEME","ThemeConsumer","ThemeEvent","EventNotifier","PropsProvider","assignIn","HideMode","AssetConsumer","FixedView","TextIdPrefixConsumer","isScreenReaderEnabled","TappableContext","WmComponentNode","WIDGET_LOGGER","extend","ParentContext","createContext","BaseComponentState","constructor","_defineProperty","undefined","defineStyles","styles","text","fontFamily","INSTANCE","baseFont","userSelect","BaseProps","args","BaseComponent","Component","markupProps","defaultClass","defaultProps","defaultState","ADD_TO_DOM","createElement","Fragment","I18nService","get","x","y","width","height","px","py","_this$parent$state","isPageContentWidget","isCurrentParentIsContent","parent","showSkeletonInPageContent","state","props","showskeleton","notifier","name","componentNode","instance","propertyProvider","show","$new","$old","debug","initialized","styleName","styleOverrides","setTimeout","cleanRefresh","onPropertyChange","_INSTANCE","_showView","deferload","check","proxy","Proxy","target","prop","receiver","propName","toString","has","Reflect","set","value","overrideProp","updateState","cleanup","push","updateStateTimeouts","forEach","v","clearTimeout","theme","subscribe","CHANGE","forceUpdate","addEventListener","remove","destroyParentListeners","event","fn","notify","emitToParent","isRTL","i18nService","isRTLLocale","animate","setState","animationId","Date","now","animatableProps","setProp","setPropDefault","setDefault","getDefaultStyles","getStyle","reset","newPartialState","callback","destroyed","stateFn","oldState","oldProps","newState","Object","keys","k","onUpdateState","_this$props$listener","_this$props$listener2","listener","onComponentChange","timeoutId","splice","indexOf","shouldComponentUpdate","nextProps","nextState","nextContext","key","componentDidMount","onComponentInit","componentWillAttach","isFixed","isSticky","hide","componentWillDetach","componentWillUnmount","_this$parent","onComponentDestroy","f","destroy","componentDidUpdate","prevProps","prevState","snapshot","invokeEventCallback","eventName","callBack","map","a","apply","e","console","error","showView","isVisible","refresh","renderSkeleton","parentListenerDestroyers","setParent","add","getName","handleLayout","ref","newLayoutPosition","nativeEvent","layout","componentRef","baseView","measure","updateLayout","runAfterInteractions","requestAnimationFrame","copyStyles","property","from","to","renderFixedContainer","style","rootStyle","left","top","bottom","right","root","mergeStyle","addAnimation","renderWidget","n","_extends","setBackground","bgStyle","_background","image","backgroundImage","position","backgroundPosition","size","backgroundSize","repeat","backgroundRepeat","resizeMode","backgroundResizeMode","borderRadius","highlight","onTouchStart","borderWidth","overflow","backgroundColor","borderColor","borderStyle","zIndex","absoluteFill","getTestId","suffix","id","testIdPrefix","getTestProps","OS","accessibilityLabel","testID","accessible","getStyleClassName","classname","getTestPropsForInput","getTestPropsForAction","getTestPropsForLabel","getLayoutOfWidget","getLayout","scrollToTop","scrollToEnd","scrollToPosition","widgetName","_this$getLayoutOfWidg","positionY","getDependenciesFromContext","Consumer","tappable","closestTappable","loadAsset","_this$parent2","_showSkeleton","hideSkeletonInPageContentWhenDisabledInPage","Provider","render","selectedLocale","getSelectedLocale","info","hideMode","DONOT_ADD_TO_DOM","disabled","showindevice","d","join","cleanseStyleProperties","hasOwnProperty","eleToRender"],"sources":["base.component.tsx"],"sourcesContent":["import { assign, isUndefined, isNil } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { AccessibilityInfo, LayoutChangeEvent, Platform, StyleSheet, TextStyle, View, ViewStyle, InteractionManager } from 'react-native';\nimport { AnimatableProps } from 'react-native-animatable';\nimport * as Animatable from 'react-native-animatable';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport { StyleProps, getStyleName } from '@wavemaker/app-rn-runtime/styles/style-props';\nimport { BackgroundComponent } from '@wavemaker/app-rn-runtime/styles/background.component';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport { ROOT_LOGGER } from '@wavemaker/app-rn-runtime/core/logger';\nimport { deepCopy, getPosition, setPosition } from '@wavemaker/app-rn-runtime/core/utils';\nimport BASE_THEME, { NamedStyles, AllStyle, ThemeConsumer, ThemeEvent, Theme } from '../styles/theme';\nimport EventNotifier from './event-notifier';\nimport { PropsProvider } from './props.provider';\nimport { assignIn } from 'lodash-es';\nimport { HideMode } from './if.component';\nimport { AssetConsumer } from './asset.provider';\nimport { FixedView } from './fixed-view.component';\nimport { TextIdPrefixConsumer } from './testid.provider';\nimport { isScreenReaderEnabled } from './accessibility';\nimport { Tappable, TappableContext } from './tappable.component';\nimport { WmComponentNode } from './wm-component-tree';\n\nexport const WIDGET_LOGGER = ROOT_LOGGER.extend('widget');\n\nexport const ParentContext = React.createContext(null as any);\n\nexport class BaseComponentState<T extends BaseProps> {\n public animationId?: number = 0;\n public animatableProps?: AnimatableProps<ViewStyle> = undefined;\n public props = {} as T;\n public hide? = false;\n public highlight? = false;\n}\n\nexport type BaseStyles = NamedStyles<any> & {\n root: AllStyle,\n text: TextStyle & {userSelect?: 'none'| 'text'}\n}\n\nexport function defineStyles<T>(styles: T): T {\n return deepCopy({\n text: {\n fontFamily: ThemeVariables.INSTANCE.baseFont,\n userSelect: 'text'\n }\n }, styles);\n}\n\nexport interface LifecycleListener {\n onComponentChange?: (c: BaseComponent<any, any, any>) => void;\n onComponentInit?: (c: BaseComponent<any, any, any>) => void;\n onComponentDestroy?: (c: BaseComponent<any, any, any>) => void;\n}\n\ninterface Layout {\n x: number;\n y: number;\n width: number;\n height: number;\n px: number;\n py: number;\n}\n\nexport class BaseProps extends StyleProps {\n id?: string = null as any;\n name?: string = null as any;\n key?: any = null as any;\n disabled? = false;\n show? = true as Boolean | String | Number;\n styles?: any = null;\n classname?: string = null as any;\n listener?: LifecycleListener = null as any;\n showindevice?: ('xs'|'sm'|'md'|'lg'|'xl'|'xxl')[] = null as any;\n showskeleton?: boolean = undefined;\n deferload?: boolean = false;\n showskeletonchildren?: boolean = true;\n disabletoucheffect?:boolean = false;\n}\n\nexport abstract class BaseComponent<T extends BaseProps, S extends BaseComponentState<T>, L extends BaseStyles> extends React.Component<T, S> {\n public styles: L = null as any;\n public hideMode = HideMode.ADD_TO_DOM;\n private propertyProvider: PropsProvider<T>;\n public proxy: BaseComponent<T, S, L>;\n public _INSTANCE: BaseComponent<T, S, L>;\n public initialized = false;\n public cleanup = [] as Function[];\n public theme = BASE_THEME;\n public updateStateTimeouts= [] as NodeJS.Timeout[];\n public parent: BaseComponent<any, any, any> = null as any;\n public destroyed = false;\n public _showSkeleton = false;\n public isFixed = false;\n public isSticky = false;\n private notifier = new EventNotifier();\n private parentListenerDestroyers = [] as Function[];\n public _background = <></>;\n private styleOverrides = {} as any;\n public loadAsset: (path: string) => number | string = null as any;\n private i18nService = injector.I18nService.get();\n public testIdPrefix = '';\n private _showView = true;\n public closestTappable?: Tappable; \n public componentNode: WmComponentNode;\n public layout: Layout = {\n x: 0, y:0, width:0, height:0, px:0, py:0\n };\n public baseView: any = View;\n public pcScrollTopThreshold: number = 0;\n\n constructor(markupProps: T, public defaultClass: string, defaultProps?: T, defaultState?: S) {\n super(markupProps);\n this.state = (defaultState || {} as S);\n this.notifier.name = this.props.name || '';\n this.componentNode = new WmComponentNode({\n instance: this\n });\n this.propertyProvider = new PropsProvider<T>(\n assign({show: true}, defaultProps),\n assign({}, markupProps),\n (name: string, $new: any, $old: any) => {\n WIDGET_LOGGER.debug(() => `${this.props.name || this.constructor.name}: ${name} changed from ${$old} to ${$new}`);\n if (this.initialized) {\n const styleName = getStyleName(name);\n if (styleName) {\n if ($new === undefined) {\n delete this.styleOverrides[styleName];\n } else {\n this.styleOverrides[styleName] = $new;\n }\n }\n }\n if (name === 'showskeleton' && this.initialized) {\n setTimeout(() => this.cleanRefresh(), 100);\n }\n this.onPropertyChange(name, $new, $old);\n });\n //@ts-ignore\n this.state.props =this.propertyProvider.get();\n this._INSTANCE = this;\n //@ts-ignore\n this._showView = !this.props.deferload;\n this.propertyProvider.check();\n //@ts-ignore\n this.proxy = (new Proxy(this, {\n get: (target, prop, receiver): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n //@ts-ignore\n return this.state.props[propName];\n }\n return Reflect.get(target, prop, receiver);\n },\n set: (target: any, prop, value: any): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n // @ts-ignore\n const props = {} as any;\n this.propertyProvider.overrideProp(propName, value);\n props[propName] = value;\n this.updateState({\n props: props\n } as S);\n return true;\n } else {\n return Reflect.set(target, prop, value);\n }\n }\n }));\n this.cleanup.push(() => {\n this.updateStateTimeouts.forEach(v => clearTimeout(v));\n });\n this.cleanup.push(this.theme.subscribe(ThemeEvent.CHANGE, () => {\n this.forceUpdate();\n }));\n this.cleanup.push(AccessibilityInfo.addEventListener('screenReaderChanged',\n () => {\n setTimeout(() => {\n this.forceUpdate();\n }, 100);\n },\n ).remove);\n this.cleanup.push(() => {\n this.destroyParentListeners();\n });\n }\n\n public subscribe(event: string, fn: Function) {\n return this.notifier.subscribe(event, fn);\n }\n\n public notify(event: string, args: any[], emitToParent = false) {\n return this.notifier.notify(event, args, emitToParent);\n }\n\n public get isRTL(){\n return this.i18nService.isRTLLocale();\n }\n\n public animate(props: AnimatableProps<ViewStyle>) {\n this.setState({\n animationId: Date.now(),\n animatableProps: props\n });\n }\n\n setProp(propName: string, value: any) {\n this.propertyProvider.set(propName, value);\n this.updateState({props: {}} as S);\n }\n\n setPropDefault(propName: string, value: any) {\n this.propertyProvider.setDefault(propName, value);\n }\n \n onPropertyChange(name: string, $new: any, $old: any) { \n }\n \n getDefaultStyles() {\n return this.theme.getStyle(this.defaultClass);\n }\n\n reset() {\n\n }\n\n updateState(newPartialState: S, callback?: ()=>void) {\n if (this.destroyed) {\n return;\n }\n const stateFn = (oldState: S) => {\n const oldProps = oldState.props;\n const newState = this.initialized ? assignIn({}, oldState, newPartialState) : assignIn(oldState, newPartialState);\n if (newPartialState.props) {\n Object.keys(newPartialState.props).forEach((k) => {\n //@ts-ignore\n oldProps[k] = newState.props[k];\n });\n newState.props = oldProps;\n }\n return newState;\n };\n const onUpdateState = () => {\n callback && callback();\n this.props.listener?.onComponentChange\n && this.props.listener?.onComponentChange(this);\n }\n if (!this.initialized) {\n this.state = stateFn(this.state);\n onUpdateState();\n } else {\n const timeoutId = setTimeout(() => {\n this.setState(stateFn, onUpdateState);\n this.updateStateTimeouts.splice(this.updateStateTimeouts.indexOf(timeoutId), 1);\n });\n this.updateStateTimeouts.push(timeoutId);\n }\n }\n\n shouldComponentUpdate(nextProps: T, nextState: S, nextContext: any) {\n if (this.propertyProvider.check(nextProps)) {\n return true;\n }\n for(let key in nextState) {\n if(key !== 'props' && (!(key in this.state) || nextState[key] !== this.state[key])) {\n return true;\n }\n }\n\n for(let key in this.state) {\n if(key !== 'props' && (!(key in nextState) || this.state[key] !== nextState[key])) {\n return true;\n }\n }\n return false;\n }\n\n componentDidMount() {\n if (this.props.listener && this.props.listener.onComponentInit) {\n this.props.listener.onComponentInit(this.proxy);\n }\n this.initialized = true;\n }\n\n componentWillAttach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: false});\n }\n }\n\n componentWillDetach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: true});\n }\n }\n\n componentWillUnmount() {\n this.destroyed = true;\n if (this.props.listener && this.props.listener.onComponentDestroy) {\n this.props.listener.onComponentDestroy(this.proxy);\n }\n this.cleanup.forEach(f => f && f());\n this.parent?.componentNode?.remove(this.componentNode);\n this.notifier.destroy();\n this.notifier.notify('destroy', []);\n }\n \n componentDidUpdate(prevProps: Readonly<T>, prevState: Readonly<S>, snapshot?: any): void {\n if (this.propertyProvider.check(this.props)) {\n this.forceUpdate();\n }\n }\n\n invokeEventCallback(eventName: string, args: any[]) {\n //@ts-ignore\n const callBack: Function = this.props[eventName];\n args = args && args.map(a => (a === this) ? this.proxy : a)\n if (callBack) {\n try {\n return callBack.apply(this.proxy, args);\n } catch(e) {\n console.error(e);\n }\n }\n }\n\n showView() {\n return this.isVisible();\n }\n\n isVisible() {\n const show = this.state.props.show;\n return show !== false && show !== 'false' && show !== '0' && !isNil(show) && show !== \"\";\n }\n\n protected abstract renderWidget(props: T): ReactNode;\n\n public refresh() {\n this.forceUpdate();\n }\n\n public cleanRefresh() {\n this.forceUpdate(() => this.notifier.notify('forceUpdate', []));\n }\n \n public renderSkeleton (props: T): ReactNode {\n return null;\n }\n\n public destroyParentListeners() {\n this.parentListenerDestroyers.map(fn => fn());\n }\n\n protected setParent(parent: BaseComponent<any, any, any>) {\n if (parent && this.parent !== parent) {\n this.parent = parent;\n this.parent.componentNode.add(this.componentNode);\n this.notifier.setParent(parent.notifier);\n this.parentListenerDestroyers = [\n this.parent.subscribe('forceUpdate', () => {\n this.forceUpdate();\n }),\n this.parent.subscribe('destroy', () => {\n this.destroyParentListeners();\n })\n ];\n }\n }\n\n protected getName() {\n return this.props.name;\n }\n\n public handleLayout(event: LayoutChangeEvent, ref: React.RefObject<View> | null = null) {\n const key = this.getName && this.getName();\n if(key){\n const newLayoutPosition = {\n [key as string]: {\n y: event.nativeEvent.layout.y,\n x: event.nativeEvent.layout.x\n }\n }\n setPosition(newLayoutPosition);\n const componentRef = ref !== null ? ref : this.baseView \n // Layout values by measure\n if(componentRef?.measure){\n const updateLayout = ()=>{\n componentRef.measure((x = 0, y = 0, width = 0, height = 0, px = 0, py = 0) => {\n this.layout = { x, y, width, height, px, py }\n }); \n }\n updateLayout();\n InteractionManager.runAfterInteractions(() => {\n requestAnimationFrame(updateLayout); \n })\n }\n }\n }\n \n copyStyles(property: string, from: any, to: any) {\n if (!isUndefined(from[property])) {\n to[property] = from[property];\n }\n }\n\n renderFixedContainer(props: T) {\n const style = {} as ViewStyle;\n const rootStyle = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0,\n width: \"100%\",\n height: \"100%\"\n } as ViewStyle;\n this.copyStyles('left', this.styles.root, style);\n this.copyStyles('top', this.styles.root, style);\n this.copyStyles('right', this.styles.root, style);\n this.copyStyles('bottom', this.styles.root, style);\n this.copyStyles('width', this.styles.root, style);\n this.copyStyles('height', this.styles.root, style);\n this.styles = this.theme.mergeStyle(this.styles, {root: rootStyle});\n return (<FixedView style={style} theme={this.theme}>{this.addAnimation(this.renderWidget(props))}</FixedView>);\n }\n\n private addAnimation(n: ReactNode) {\n if (!this.state.animatableProps) {\n return (\n <>\n {n}\n </>\n )\n }\n return (\n <Animatable.View \n key={this.state.animationId} \n {...this.state.animatableProps}\n >\n {n}\n </Animatable.View>);\n }\n \n private setBackground() {\n const bgStyle = this.styles.root as any;\n this._background = (\n <>\n <BackgroundComponent \n image={bgStyle.backgroundImage}\n position={bgStyle.backgroundPosition}\n size={bgStyle.backgroundSize}\n repeat={bgStyle.backgroundRepeat}\n resizeMode={bgStyle.backgroundResizeMode}\n style={{borderRadius: this.styles.root.borderRadius}}>\n </BackgroundComponent>\n {this.state.highlight ? (<View onTouchStart={() => {\n this.setState({\n highlight: false\n })\n }} style={[{\n borderWidth: 2,\n overflow: 'hidden',\n backgroundColor: '#FFFF0033', \n borderColor: 'orange',\n borderStyle: 'dashed',\n zIndex: 1000,\n borderRadius: 0,\n }, StyleSheet.absoluteFill]}></View>) : null}\n </>\n );\n delete (this.styles.root as any)['backgroundImage'];\n delete (this.styles.root as any)['backgroundPosition'];\n delete (this.styles.root as any)['backgroundResizeMode'];\n delete (this.styles.root as any)['backgroundSize'];\n delete (this.styles.root as any)['backgroundRepeat'];\n }\n\n public getTestId(suffix?: string) {\n let id = this.props.id || this.props.name;\n if (this.testIdPrefix) {\n id = this.testIdPrefix + '_' + id;\n }\n if (suffix) {\n id = id + '_' + suffix;\n }\n return id;\n }\n\n public getTestProps(suffix?: string) {\n let id = this.getTestId(suffix);\n if (isScreenReaderEnabled()) {\n return {};\n }\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\n };\n }\n\n public getStyleClassName() {\n return this.state.props.classname;\n }\n\n public getTestPropsForInput(suffix?: string) {\n return this.getTestProps(suffix || 'i');\n }\n\n public getTestPropsForAction(suffix?: string) {\n return this.getTestProps(suffix || 'a');\n }\n\n public getTestPropsForLabel(suffix?: string) {\n return this.getTestProps(suffix || 'l');\n }\n\n public getLayoutOfWidget(name: string): {x: number, y: number} | undefined {\n return getPosition(name)\n }\n\n public getLayout() {\n return this.layout ;\n }\n\n public scrollToTop(){\n this.notify('scrollToPosition', [{\n x: 0,\n y: 0\n }]);\n }\n\n public scrollToEnd() {\n this.notify('scrollToEnd', []);\n }\n\n scrollToPosition(widgetName: string) {\n const positionY = this.getLayoutOfWidget(widgetName)?.y; // Safe access\n this.notify('scrollToPosition', [{\n x: 0,\n y: positionY,\n }]);\n }\n\n public hideSkeletonInPageContentWhenDisabledInPage = () => {\n const isPageContentWidget = this.defaultClass && this.defaultClass === 'app-page-content'\n const isCurrentParentIsContent = this.parent && this.parent.defaultClass && this.parent.defaultClass === 'app-content'\n const showSkeletonInPageContent = this.parent.state?.props?.showskeleton === false\n \n if(isPageContentWidget && isCurrentParentIsContent && showSkeletonInPageContent) {\n return false;\n }\n return undefined;\n }\n \n private getDependenciesFromContext(fn: () => ReactNode) {\n return (\n <TappableContext.Consumer>{(tappable) => {\n this.closestTappable = tappable;\n return (\n <TextIdPrefixConsumer>\n {(testIdPrefix) => {\n this.testIdPrefix = testIdPrefix || '';\n return (<AssetConsumer>\n {(loadAsset) => {\n this.loadAsset = loadAsset;\n return (<ParentContext.Consumer>\n {(parent) => {\n this.setParent(parent);\n this._showSkeleton = this.state.props.showskeleton !== false \n && (this.parent?._showSkeleton || this.state.props.showskeleton === true) && this.hideSkeletonInPageContentWhenDisabledInPage() === undefined\n return (\n <ParentContext.Provider value={this}>\n <ThemeConsumer>\n {(theme) => { \n this.theme = theme || BASE_THEME;\n return fn();\n }}\n </ThemeConsumer>\n </ParentContext.Provider>);\n }} \n </ParentContext.Consumer>);\n }}\n </AssetConsumer>);\n }}\n </TextIdPrefixConsumer>)}}\n </TappableContext.Consumer>); \n }\n \n public render(): ReactNode {\n const props = this.state.props;\n const selectedLocale = this.i18nService.getSelectedLocale();\n return this.getDependenciesFromContext(() => {\n WIDGET_LOGGER.info(() => `${this.props.name || this.constructor.name} is rendering.`);\n this._showView = this._showView || this.showView();\n if (this.state.hide \n || (!this.isVisible() && this.hideMode === HideMode.DONOT_ADD_TO_DOM)\n || !this._showView) {\n return null;\n }\n this.isFixed = false;\n const classname = this.getStyleClassName();\n this.styles = this.theme.mergeStyle(\n this.getDefaultStyles(),\n {text: this.theme.getStyle('app-' + selectedLocale)},\n {text: this.theme.getStyle(this.defaultClass + '-' + selectedLocale)},\n props.disabled ? this.theme.getStyle(this.defaultClass + '-disabled') : null,\n this.isRTL ? this.theme.getStyle(this.defaultClass + '-rtl') : null,\n classname && this.theme.getStyle(classname),\n props.showindevice && this.theme.getStyle('d-all-none ' + props.showindevice.map(d => `d-${d}-flex`).join(' ')),\n this.theme.cleanseStyleProperties(this.props.styles),\n this.theme.cleanseStyleProperties({\n root: this.styleOverrides,\n text: this.styleOverrides\n }));\n if (this.styles.root.hasOwnProperty('_background')) {\n delete this.styles.root.backgroundColor;\n }\n if (!this.isVisible()) {\n assign(this.styles, this.theme.getStyle('hidden'))\n }\n let eleToRender = (this._showSkeleton && this.renderSkeleton(props));\n if (eleToRender) {\n return eleToRender;\n }\n this.setBackground();\n this.isFixed = (this.styles.root.position as any) === 'fixed';\n if (this.isFixed) {\n this.styles.root.position = undefined;\n return this.renderFixedContainer(props);\n }\n return this.addAnimation(this.renderWidget(this.state.props)); \n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ import React, { Component } from "react";
5
5
  import { Animated, View, Platform } from "react-native";
6
6
  import { SafeAreaInsetsContext } from "react-native-safe-area-context";
7
7
  import { ThemeProvider } from "@wavemaker/app-rn-runtime/styles/theme";
8
+ import injector from '@wavemaker/app-rn-runtime/core/injector';
8
9
  const StickyViewContext = /*#__PURE__*/React.createContext(null);
9
10
  export class StickyViewState {
10
11
  constructor() {
@@ -21,6 +22,8 @@ export class StickyView extends Component {
21
22
  _defineProperty(this, "insets", null);
22
23
  _defineProperty(this, "refScrollPosition", 0);
23
24
  _defineProperty(this, "lastScrollDirection", 1);
25
+ _defineProperty(this, "appConfig", injector.get('APP_CONFIG'));
26
+ _defineProperty(this, "scrolled", false);
24
27
  this.state = new StickyViewState();
25
28
  this.listenScrollEvent();
26
29
  }
@@ -34,39 +37,47 @@ export class StickyView extends Component {
34
37
  const component = this.props.component;
35
38
  let yPosition;
36
39
  this.destroyScrollListner = component.subscribe('scroll', e => {
37
- var _component$getLayout, _this$insets, _component$getLayout2, _this$container2;
40
+ var _component$getLayout, _this$insets, _component$getLayout2;
38
41
  const height = (_component$getLayout = component.getLayout()) === null || _component$getLayout === void 0 ? void 0 : _component$getLayout.height;
39
42
  const topInsetsInYposition = Platform.OS == 'ios' ? ((_this$insets = this.insets) === null || _this$insets === void 0 ? void 0 : _this$insets.top) || 0 : 0;
40
43
  yPosition = yPosition || yPosition == 0 ? yPosition : (component === null || component === void 0 || (_component$getLayout2 = component.getLayout()) === null || _component$getLayout2 === void 0 ? void 0 : _component$getLayout2.py) - topInsetsInYposition;
41
44
  const scrollPosition = e.nativeEvent.contentOffset.y;
42
45
  let isStickyVisible = false;
43
- const containerHeight = Math.abs(((_this$container2 = this.container) === null || _this$container2 === void 0 ? void 0 : _this$container2.visibleHeight) || 0);
46
+ const {
47
+ containerHeight = 0,
48
+ hiddenHeight = 0
49
+ } = this.container || {};
50
+ const containerHeightVal = Math.abs(containerHeight + hiddenHeight);
51
+ if (!this.scrolled) this.scrolled = true;
44
52
  if (e.scrollDirection) {
45
53
  if (this.lastScrollDirection !== e.scrollDirection) {
46
54
  this.refScrollPosition = scrollPosition;
47
55
  }
48
56
  this.lastScrollDirection = e.scrollDirection;
49
57
  }
58
+
59
+ // based on scrollDirection checking for stickyVisibility
50
60
  if (e.scrollDirection <= 0) {
51
- isStickyVisible = scrollPosition > 10 && scrollPosition + containerHeight >= yPosition + height;
61
+ isStickyVisible = scrollPosition > 10 // scroll threshold value of 10
62
+ && scrollPosition + containerHeightVal + this.appConfig.pageScrollTopThreshold >= yPosition + height;
52
63
  } else {
53
- isStickyVisible = scrollPosition >= yPosition + (this.props.slide ? height : 0);
64
+ isStickyVisible = scrollPosition + this.appConfig.pageScrollTopThreshold >= yPosition + (this.props.slide ? height : 0);
54
65
  }
55
66
  if (this.state.isStickyVisible !== isStickyVisible) {
56
67
  this.setState({
57
68
  isStickyVisible: isStickyVisible
58
69
  }, () => {
59
70
  if (isStickyVisible && this.props.slide) {
60
- var _this$container3;
61
- (_this$container3 = this.container) === null || _this$container3 === void 0 || _this$container3.slideBy(-1 * height, 0);
71
+ var _this$container2;
72
+ (_this$container2 = this.container) === null || _this$container2 === void 0 || _this$container2.slideBy(-1 * height);
62
73
  } else {
63
- var _this$container4;
64
- (_this$container4 = this.container) === null || _this$container4 === void 0 || _this$container4.slideBy(this.refScrollPosition - scrollPosition);
74
+ var _this$container3;
75
+ (_this$container3 = this.container) === null || _this$container3 === void 0 || _this$container3.slideBy(this.refScrollPosition - scrollPosition);
65
76
  }
66
77
  });
67
78
  } else {
68
- var _this$container5;
69
- (_this$container5 = this.container) === null || _this$container5 === void 0 || _this$container5.slideBy(this.refScrollPosition - scrollPosition);
79
+ var _this$container4;
80
+ (_this$container4 = this.container) === null || _this$container4 === void 0 || _this$container4.slideBy(this.refScrollPosition - scrollPosition);
70
81
  }
71
82
  });
72
83
  }
@@ -80,13 +91,17 @@ export class StickyView extends Component {
80
91
  this.insets = insets;
81
92
  return /*#__PURE__*/React.createElement(StickyViewContext.Consumer, null, container => {
82
93
  this.container = container;
94
+ if (!this.scrolled) return /*#__PURE__*/React.createElement(React.Fragment, null);
83
95
  if (this.state.isStickyVisible && this.container) {
84
- this.container.add(this, /*#__PURE__*/React.createElement(ThemeProvider, {
85
- value: this.props.theme,
86
- key: this.id
87
- }, /*#__PURE__*/React.createElement(View, {
88
- style: [this.props.style]
89
- }, this.props.children)));
96
+ var _this$container5;
97
+ if (!((_this$container5 = this.container) !== null && _this$container5 !== void 0 && (_this$container5 = _this$container5.children) !== null && _this$container5 !== void 0 && _this$container5.has(this))) {
98
+ this.container.add(this, /*#__PURE__*/React.createElement(ThemeProvider, {
99
+ value: this.props.theme,
100
+ key: this.id
101
+ }, /*#__PURE__*/React.createElement(View, {
102
+ style: [this.props.style]
103
+ }, this.props.children)));
104
+ }
90
105
  } else {
91
106
  var _this$container6;
92
107
  (_this$container6 = this.container) === null || _this$container6 === void 0 || _this$container6.remove(this);
@@ -113,6 +128,7 @@ export class StickyViewContainer extends React.Component {
113
128
  _defineProperty(this, "topSlideHeight", 0);
114
129
  _defineProperty(this, "hiddenHeight", 0);
115
130
  _defineProperty(this, "containerHeight", 0);
131
+ _defineProperty(this, "appConfig", injector.get('APP_CONFIG'));
116
132
  }
117
133
  add(c, n) {
118
134
  var _c$props$component$ge;
@@ -124,9 +140,6 @@ export class StickyViewContainer extends React.Component {
124
140
  id: ++this.id
125
141
  }));
126
142
  }
127
- get visibleHeight() {
128
- return this.containerHeight + this.hiddenHeight;
129
- }
130
143
  remove(c) {
131
144
  var _c$props$component$ge2;
132
145
  const h = Math.max(((_c$props$component$ge2 = c.props.component.getLayout()) === null || _c$props$component$ge2 === void 0 ? void 0 : _c$props$component$ge2.height) || 0, 0);
@@ -139,15 +152,9 @@ export class StickyViewContainer extends React.Component {
139
152
  id: ++this.id
140
153
  }));
141
154
  }
142
- slideBy(value, duration = 1) {
155
+ slideBy(value) {
143
156
  this.hiddenHeight = Math.max(Math.min(0, this.translateY._value + value), -1 * this.topSlideHeight);
144
157
  this.translateY.setValue(this.hiddenHeight);
145
- // Animated.timing(this.translateY, {
146
- // toValue: this.hiddenHeight,
147
- // easing: Easing.linear,
148
- // duration: duration,
149
- // useNativeDriver: true
150
- // }).start();
151
158
  }
152
159
  render() {
153
160
  return /*#__PURE__*/React.createElement(StickyViewContext.Provider, {
@@ -155,7 +162,7 @@ export class StickyViewContainer extends React.Component {
155
162
  }, this.props.children, /*#__PURE__*/React.createElement(Animated.View, {
156
163
  style: {
157
164
  position: 'absolute',
158
- top: 0,
165
+ top: this.appConfig.pageScrollTopThreshold || 0,
159
166
  width: '100%',
160
167
  transform: [{
161
168
  translateY: this.translateY
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Animated","View","Platform","SafeAreaInsetsContext","ThemeProvider","StickyViewContext","createContext","StickyViewState","constructor","_defineProperty","StickyView","props","counter","state","listenScrollEvent","componentWillUnmount","_this$container","container","remove","destroyScrollListner","component","yPosition","subscribe","e","_component$getLayout","_this$insets","_component$getLayout2","_this$container2","height","getLayout","topInsetsInYposition","OS","insets","top","py","scrollPosition","nativeEvent","contentOffset","y","isStickyVisible","containerHeight","Math","abs","visibleHeight","scrollDirection","lastScrollDirection","refScrollPosition","slide","setState","_this$container3","slideBy","_this$container4","_this$container5","render","createElement","Fragment","Consumer","bottom","left","right","add","value","theme","key","id","style","children","_this$container6","opacity","Date","now","StickyViewContainer","args","Map","Value","c","n","_c$props$component$ge","h","max","topSlideHeight","set","setTimeout","hiddenHeight","_c$props$component$ge2","delete","duration","min","translateY","_value","setValue","Provider","position","width","transform","Array","from","values"],"sources":["sticky-container.component.tsx"],"sourcesContent":["\nimport React, { Component } from \"react\";\nimport { ViewStyle, Animated, Easing, View, Platform} from \"react-native\";\nimport { SafeAreaInsetsContext } from \"react-native-safe-area-context\";\nimport { Theme, ThemeProvider } from \"@wavemaker/app-rn-runtime/styles/theme\";\nimport { BaseComponent } from \"./base.component\";\n\nconst StickyViewContext = React.createContext<StickyViewContainer>(null as any);\n\nexport interface StickyViewProps {\n style?: ViewStyle,\n theme: Theme;\n children?: any;\n slide?: boolean;\n component: BaseComponent<any, any, any>;\n onVisibilityChange?: (visible: boolean) => void;\n}\n\nexport class StickyViewState {\n isStickyVisible = false;\n}\n\nexport class StickyView extends Component<StickyViewProps, StickyViewState, any> {\n static defaultProps = {\n slide: false\n };\n static counter = Date.now();\n container?: StickyViewContainer = null as any;\n cachedComponent: React.ReactNode;\n id = StickyView.counter++;\n destroyScrollListner: Function = null as any;\n insets: any = null;\n refScrollPosition = 0;\n lastScrollDirection = 1;\n\n constructor(props: StickyViewProps) {\n super(props);\n this.state = new StickyViewState();\n this.listenScrollEvent();\n }\n\n componentWillUnmount() {\n this.container?.remove(this);\n this.destroyScrollListner && this.destroyScrollListner();\n }\n\n listenScrollEvent(): void {\n this.destroyScrollListner && this.destroyScrollListner();\n const component = this.props.component;\n let yPosition: number;\n this.destroyScrollListner = component.subscribe('scroll', (e: any) => {\n const height = component.getLayout()?.height;\n const topInsetsInYposition = Platform.OS == 'ios' ? this.insets?.top || 0 : 0;\n yPosition = (yPosition || yPosition == 0) ? yPosition : component?.getLayout()?.py - topInsetsInYposition;\n const scrollPosition = e.nativeEvent.contentOffset.y;\n let isStickyVisible = false ;\n \n const containerHeight = Math.abs(this.container?.visibleHeight || 0);\n if (e.scrollDirection) {\n if (this.lastScrollDirection !== e.scrollDirection) {\n this.refScrollPosition = scrollPosition;\n }\n this.lastScrollDirection = e.scrollDirection;\n }\n if(e.scrollDirection <= 0){\n isStickyVisible = scrollPosition > 10 \n && ((scrollPosition + containerHeight) >= (yPosition + height));\n } else {\n isStickyVisible = (scrollPosition >= (yPosition + (this.props.slide ? height: 0)));\n }\n if (this.state.isStickyVisible !== isStickyVisible) {\n this.setState({ \n isStickyVisible : isStickyVisible\n }, () => {\n if (isStickyVisible && this.props.slide) {\n this.container?.slideBy(-1 * height, 0);\n } else {\n this.container?.slideBy(this.refScrollPosition - scrollPosition);\n }\n })\n } else {\n this.container?.slideBy(this.refScrollPosition - scrollPosition);\n }\n })\n }\n\n render() {\n return (\n <>\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n this.insets = insets;\n return <StickyViewContext.Consumer>\n {(container) => {\n this.container = container;\n if (this.state.isStickyVisible && this.container) {\n this.container.add(this, (\n <ThemeProvider value={this.props.theme} key={this.id}>\n <View style={[this.props.style]}>\n {this.props.children}\n </View>\n </ThemeProvider>\n ));\n } else {\n this.container?.remove(this);\n }\n return <></>;\n }}\n </StickyViewContext.Consumer>}}\n </SafeAreaInsetsContext.Consumer>\n <View style={{opacity: this.state.isStickyVisible ? 0 : 1}}>\n {this.props.children}\n </View>\n </>\n );\n }\n}\n\nexport class StickyViewContainer extends React.Component {\n private children: Map<StickyView, React.ReactNode> = new Map();\n private id = 0;\n public translateY: Animated.Value = new Animated.Value(0);\n public topSlideHeight = 0;\n public hiddenHeight = 0;\n public containerHeight: number = 0;\n\n add(c: StickyView, n : React.ReactNode) {\n const h = Math.max(c.props.component.getLayout()?.height || 0, 0);\n this.containerHeight += h;\n this.topSlideHeight += (c.props.slide ? h : 0);\n this.children.set(c, n);\n setTimeout(() => this.setState({id: ++this.id}));\n }\n\n get visibleHeight() {\n return this.containerHeight + this.hiddenHeight;\n }\n\n remove(c: StickyView) {\n const h = Math.max(c.props.component.getLayout()?.height || 0, 0);\n this.containerHeight -= h;\n this.topSlideHeight -= (c.props.slide ? h : 0);\n this.containerHeight = Math.max(this.containerHeight, 0);\n this.topSlideHeight = Math.max(this.topSlideHeight, 0);\n this.children.delete(c);\n setTimeout(() => this.setState({id: ++this.id}));\n }\n\n public slideBy(value: number, duration = 1) {\n this.hiddenHeight = Math.max(\n Math.min(0, (this.translateY as any)._value + value), \n -1 * this.topSlideHeight);\n this.translateY.setValue(this.hiddenHeight);\n // Animated.timing(this.translateY, {\n // toValue: this.hiddenHeight,\n // easing: Easing.linear, \n // duration: duration,\n // useNativeDriver: true\n // }).start();\n }\n\n render() {\n return (\n <StickyViewContext.Provider value={this}>\n {(this.props as any).children}\n <Animated.View style={{\n position: 'absolute', top: 0, width: '100%',\n transform: [{\n translateY: this.translateY\n }]\n }}>\n {Array.from(this.children.values())}\n </Animated.View>\n </StickyViewContext.Provider>\n );\n }\n};"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","Animated","View","Platform","SafeAreaInsetsContext","ThemeProvider","injector","StickyViewContext","createContext","StickyViewState","constructor","_defineProperty","StickyView","props","counter","get","state","listenScrollEvent","componentWillUnmount","_this$container","container","remove","destroyScrollListner","component","yPosition","subscribe","e","_component$getLayout","_this$insets","_component$getLayout2","height","getLayout","topInsetsInYposition","OS","insets","top","py","scrollPosition","nativeEvent","contentOffset","y","isStickyVisible","containerHeight","hiddenHeight","containerHeightVal","Math","abs","scrolled","scrollDirection","lastScrollDirection","refScrollPosition","appConfig","pageScrollTopThreshold","slide","setState","_this$container2","slideBy","_this$container3","_this$container4","render","createElement","Fragment","Consumer","bottom","left","right","_this$container5","children","has","add","value","theme","key","id","style","_this$container6","opacity","Date","now","StickyViewContainer","args","Map","Value","c","n","_c$props$component$ge","h","max","topSlideHeight","set","setTimeout","_c$props$component$ge2","delete","min","translateY","_value","setValue","Provider","position","width","transform","Array","from","values"],"sources":["sticky-container.component.tsx"],"sourcesContent":["\nimport React, { Component } from \"react\";\nimport { ViewStyle, Animated, Easing, View, Platform} from \"react-native\";\nimport { SafeAreaInsetsContext } from \"react-native-safe-area-context\";\nimport { Theme, ThemeProvider } from \"@wavemaker/app-rn-runtime/styles/theme\";\nimport { BaseComponent } from \"./base.component\";\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\n\nconst StickyViewContext = React.createContext<StickyViewContainer>(null as any);\n\nexport interface StickyViewProps {\n style?: ViewStyle,\n theme: Theme;\n children?: any;\n slide?: boolean;\n component: BaseComponent<any, any, any>;\n onVisibilityChange?: (visible: boolean) => void;\n}\n\nexport class StickyViewState {\n isStickyVisible = false;\n}\n\nexport class StickyView extends Component<StickyViewProps, StickyViewState, any> {\n static defaultProps = {\n slide: false\n };\n static counter = Date.now();\n container?: StickyViewContainer = null as any;\n cachedComponent: React.ReactNode;\n id = StickyView.counter++;\n destroyScrollListner: Function = null as any;\n insets: any = null;\n refScrollPosition = 0;\n lastScrollDirection = 1;\n appConfig = injector.get<AppConfig>('APP_CONFIG');\n scrolled: boolean = false;\n\n constructor(props: StickyViewProps) {\n super(props);\n this.state = new StickyViewState();\n this.listenScrollEvent();\n }\n\n componentWillUnmount() {\n this.container?.remove(this);\n this.destroyScrollListner && this.destroyScrollListner();\n }\n\n listenScrollEvent(): void {\n this.destroyScrollListner && this.destroyScrollListner();\n const component = this.props.component;\n let yPosition: number;\n this.destroyScrollListner = component.subscribe('scroll', (e: any) => {\n const height = component.getLayout()?.height;\n const topInsetsInYposition = Platform.OS == 'ios' ? this.insets?.top || 0 : 0;\n yPosition = (yPosition || yPosition == 0) ? yPosition : component?.getLayout()?.py - topInsetsInYposition;\n const scrollPosition = e.nativeEvent.contentOffset.y;\n let isStickyVisible = false ;\n\n const {containerHeight = 0, hiddenHeight = 0} = this.container || {}\n const containerHeightVal = Math.abs(containerHeight + hiddenHeight) ;\n if(!this.scrolled) this.scrolled = true;\n \n if (e.scrollDirection) {\n if (this.lastScrollDirection !== e.scrollDirection) {\n this.refScrollPosition = scrollPosition;\n }\n this.lastScrollDirection = e.scrollDirection;\n }\n\n // based on scrollDirection checking for stickyVisibility\n if(e.scrollDirection <= 0){\n isStickyVisible = scrollPosition > 10 // scroll threshold value of 10\n && ((scrollPosition + containerHeightVal + this.appConfig.pageScrollTopThreshold ) >= (yPosition + height));\n } else {\n isStickyVisible = ((scrollPosition + this.appConfig.pageScrollTopThreshold) >= \n (yPosition + (this.props.slide ? height: 0)));\n }\n\n if (this.state.isStickyVisible !== isStickyVisible) {\n this.setState({ \n isStickyVisible : isStickyVisible\n }, () => {\n if (isStickyVisible && this.props.slide) {\n this.container?.slideBy(-1 * height);\n } else {\n this.container?.slideBy(this.refScrollPosition - scrollPosition);\n }\n })\n } else {\n this.container?.slideBy(this.refScrollPosition - scrollPosition);\n }\n })\n }\n\n render() {\n return (\n <>\n <SafeAreaInsetsContext.Consumer>\n {(insets = { top: 0, bottom: 0, left: 0, right: 0 }) => {\n this.insets = insets;\n return <StickyViewContext.Consumer>\n {(container) => {\n this.container = container;\n if(!this.scrolled) return <></>\n if (this.state.isStickyVisible && this.container) {\n if(!this.container?.children?.has(this)){\n this.container.add(this, (\n <ThemeProvider value={this.props.theme} key={this.id}>\n <View style={[this.props.style]}>\n {this.props.children}\n </View>\n </ThemeProvider>\n ));\n }\n } else {\n this.container?.remove(this);\n }\n return <></>;\n }}\n </StickyViewContext.Consumer>}}\n </SafeAreaInsetsContext.Consumer>\n <View style={{opacity: this.state.isStickyVisible ? 0 : 1}}>\n {this.props.children}\n </View>\n </>\n );\n }\n}\n\nexport class StickyViewContainer extends React.Component {\n public children: Map<StickyView, React.ReactNode> = new Map();\n private id = 0;\n public translateY: Animated.Value = new Animated.Value(0);\n public topSlideHeight = 0;\n public hiddenHeight: number = 0;\n public containerHeight: number = 0;\n private appConfig = injector.get<AppConfig>('APP_CONFIG');\n\n add(c: StickyView, n : React.ReactNode) {\n const h = Math.max(c.props.component.getLayout()?.height || 0, 0);\n this.containerHeight += h;\n this.topSlideHeight += (c.props.slide ? h : 0);\n this.children.set(c, n);\n setTimeout(() => this.setState({id: ++this.id}));\n }\n\n remove(c: StickyView) {\n const h = Math.max(c.props.component.getLayout()?.height || 0, 0);\n this.containerHeight -= h;\n this.topSlideHeight -= (c.props.slide ? h : 0);\n this.containerHeight = Math.max(this.containerHeight, 0);\n this.topSlideHeight = Math.max(this.topSlideHeight, 0);\n this.children.delete(c);\n setTimeout(() => this.setState({id: ++this.id}));\n }\n\n public slideBy(value: number) {\n this.hiddenHeight = Math.max(\n Math.min(0, (this.translateY as any)._value + value), \n -1 * this.topSlideHeight);\n \n this.translateY.setValue(this.hiddenHeight);\n }\n\n render() {\n return (\n <StickyViewContext.Provider value={this}>\n {(this.props as any).children}\n <Animated.View style={{\n position: 'absolute', top: this.appConfig.pageScrollTopThreshold || 0, width: '100%',\n transform: [{ translateY: this.translateY }]\n }}>\n {Array.from(this.children.values())}\n </Animated.View>\n </StickyViewContext.Provider>\n );\n }\n};"],"mappings":"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","ignoreList":[]}
package/core/utils.js CHANGED
@@ -433,13 +433,53 @@ export const getGradientStartEnd = angle => {
433
433
  end
434
434
  };
435
435
  };
436
- export const parseLinearGradient = gradient => {
436
+ export const getGradientColors = gradientString => {
437
+ // Check if input is valid
438
+ if (!gradientString) return [];
439
+
440
+ // Extract the content inside linear-gradient()
441
+ const match = gradientString.match(/linear-gradient\s*\((.*)\)/);
442
+ if (!match) return [];
443
+ const content = match[1];
444
+
445
+ // Remove angle/direction part if present
446
+ const withoutDirection = content.replace(/^(to\s+\w+(?:\s+\w+)?|[0-9]+(?:deg|grad|rad|turn))\s*,\s*/, '');
447
+
448
+ // Split by commas that are not inside parentheses
449
+ let depth = 0;
450
+ let currentSegment = '';
451
+ const segments = [];
452
+ for (let i = 0; i < withoutDirection.length; i++) {
453
+ const char = withoutDirection[i];
454
+ if (char === '(') depth++;else if (char === ')') depth--;else if (char === ',' && depth === 0) {
455
+ segments.push(currentSegment.trim());
456
+ currentSegment = '';
457
+ continue;
458
+ }
459
+ currentSegment += char;
460
+ }
461
+
462
+ // Don't forget the last segment
463
+ if (currentSegment.trim()) {
464
+ segments.push(currentSegment.trim());
465
+ }
466
+
467
+ // Filter out empty segments and any segments that might be stop positions
468
+ const gradientColors = segments.filter(segment => {
469
+ // Skip percentage/length values that might be color stops
470
+ return !segment.match(/^\d+(%|px|em|rem|vh|vw|vmin|vmax)$/);
471
+ });
472
+ return gradientColors;
473
+ };
474
+ export const parseLinearGradient = (gradient, gradientText = false) => {
437
475
  let angle = '',
438
476
  color1 = '',
439
477
  color2 = '';
440
478
  const linearGradientRegex = /linear-gradient\(([^,]+),\s*([^,]+),\s*([^)]+)\)/;
441
- const hasLinearGradient = linearGradientRegex.test(gradient);
442
- const matches = gradient === null || gradient === void 0 ? void 0 : gradient.match(linearGradientRegex);
479
+ //const linearGradientRegex = /linear-gradient\(\s*(?:([^,]+?)\s*,)?\s*((?:rgba?|hsla?)\([^)]+\)|#[0-9a-fA-F]{3,6}|\w+)\s*,\s*((?:rgba?|hsla?)\([^)]+\)|#[0-9a-fA-F]{3,6}|\w+)\s*\)/i;
480
+ const linearGradientTextRegex = /linear-gradient\(\s*(?:to\s+\w+|\d+deg|\w+)?\s*,?\s*((?:rgba?\([^)]+\)|hsla?\([^)]+\)|#[0-9a-fA-F]{3,8}|\w+)(?:\s+\d+%|\s+\d+px)?\s*,\s*){1,}(rgba?\([^)]+\)|hsla?\([^)]+\)|#[0-9a-fA-F]{3,8}|\w+)(?:\s+\d+%|\s+\d+px)?\s*\)/i;
481
+ const hasLinearGradient = gradientText ? linearGradientTextRegex.test(gradient) : linearGradientRegex.test(gradient);
482
+ const matches = gradient === null || gradient === void 0 ? void 0 : gradient.match(gradientText ? linearGradientTextRegex : linearGradientRegex);
443
483
  angle = (matches === null || matches === void 0 ? void 0 : matches[1]) || '90deg';
444
484
  const {
445
485
  start,
@@ -447,12 +487,15 @@ export const parseLinearGradient = gradient => {
447
487
  } = getGradientStartEnd(angle);
448
488
  color1 = (matches === null || matches === void 0 ? void 0 : matches[2]) || ThemeVariables.INSTANCE.primaryColor;
449
489
  color2 = (matches === null || matches === void 0 ? void 0 : matches[3]) || ThemeVariables.INSTANCE.primaryColor;
490
+ const colorsArray = getGradientColors(gradient);
491
+ const gradientColors = colorsArray.length >= 2 ? colorsArray : [color1, color2];
450
492
  return {
451
493
  hasLinearGradient,
452
494
  color1,
453
495
  color2,
454
496
  start,
455
- end
497
+ end,
498
+ gradientColors
456
499
  };
457
500
  };
458
501
  export const validateInputOnDevice = (value, type) => {
@@ -532,7 +575,10 @@ export function getNumberOfEmptyObjects(noOfItems) {
532
575
  }
533
576
  export const setPosition = data => {
534
577
  Object.keys(data).forEach(key => {
535
- AppLayoutPosition.data[AppLayoutPosition.currentPage][key] = data[key];
578
+ var _AppLayoutPosition$da;
579
+ if (AppLayoutPosition !== null && AppLayoutPosition !== void 0 && (_AppLayoutPosition$da = AppLayoutPosition.data) !== null && _AppLayoutPosition$da !== void 0 && _AppLayoutPosition$da[AppLayoutPosition === null || AppLayoutPosition === void 0 ? void 0 : AppLayoutPosition.currentPage]) {
580
+ AppLayoutPosition.data[AppLayoutPosition.currentPage][key] = data[key];
581
+ }
536
582
  });
537
583
  };
538
584
  export const getPosition = key => {