@wavemaker-ai/app-rn-runtime 12.0.1-rc.338 → 12.0.2-rc.344

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/components/advanced/carousel/carousel.component.js +1 -1
  2. package/components/advanced/carousel/carousel.component.js.map +1 -1
  3. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  4. package/components/basic/icon/svg-url-icon.component.js +26 -1
  5. package/components/basic/icon/svg-url-icon.component.js.map +1 -1
  6. package/components/basic/label/label.component.js +11 -1
  7. package/components/basic/label/label.component.js.map +1 -1
  8. package/components/basic/label/label.props.js +1 -0
  9. package/components/basic/label/label.props.js.map +1 -1
  10. package/components/chart/area-chart/area-chart.component.js +1 -1
  11. package/components/chart/area-chart/area-chart.component.js.map +1 -1
  12. package/components/chart/bar-chart/bar-chart.component.js +1 -1
  13. package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
  14. package/components/chart/bubble-chart/bubble-chart.component.js +1 -1
  15. package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
  16. package/components/chart/line-chart/line-chart.component.js +1 -1
  17. package/components/chart/line-chart/line-chart.component.js.map +1 -1
  18. package/components/chart/pie-chart/pie-chart.component.js +1 -1
  19. package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  20. package/components/chart/stack-chart/stack-chart.component.js +1 -1
  21. package/components/chart/stack-chart/stack-chart.component.js.map +1 -1
  22. package/components/container/accordion/accordionpane/accordionpane.component.js +2 -2
  23. package/components/container/accordion/accordionpane/accordionpane.component.js.map +1 -1
  24. package/components/container/container.component.js +1 -1
  25. package/components/container/container.component.js.map +1 -1
  26. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js +7 -3
  27. package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js.map +1 -1
  28. package/components/container/panel/panel.component.js +1 -1
  29. package/components/container/panel/panel.component.js.map +1 -1
  30. package/components/container/tabs/tabpane/tabpane.component.js +1 -1
  31. package/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
  32. package/components/container/wizard/wizardstep/wizardstep.component.js +1 -1
  33. package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
  34. package/components/data/form/form-field/form-field.component.js +20 -3
  35. package/components/data/form/form-field/form-field.component.js.map +1 -1
  36. package/components/data/form/form-field/form-field.props.js +1 -0
  37. package/components/data/form/form-field/form-field.props.js.map +1 -1
  38. package/components/data/form/form.component.js +7 -2
  39. package/components/data/form/form.component.js.map +1 -1
  40. package/components/data/form/form.props.js +1 -0
  41. package/components/data/form/form.props.js.map +1 -1
  42. package/components/data/list/list.component.js +2 -2
  43. package/components/data/list/list.component.js.map +1 -1
  44. package/components/input/baseinput/baseinput.component.js +2 -0
  45. package/components/input/baseinput/baseinput.component.js.map +1 -1
  46. package/components/input/basenumber/basenumber.props.js +1 -0
  47. package/components/input/basenumber/basenumber.props.js.map +1 -1
  48. package/components/input/calendar/calendar.component.js +1 -1
  49. package/components/input/calendar/calendar.component.js.map +1 -1
  50. package/components/input/checkboxset/checkboxset.component.js +1 -1
  51. package/components/input/checkboxset/checkboxset.component.js.map +1 -1
  52. package/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js +6 -1
  53. package/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js.map +1 -1
  54. package/components/input/epoch/wheelpickermodal/time/time-picker-modal.component.js +6 -1
  55. package/components/input/epoch/wheelpickermodal/time/time-picker-modal.component.js.map +1 -1
  56. package/components/input/radioset/radioset.component.js +2 -2
  57. package/components/input/radioset/radioset.component.js.map +1 -1
  58. package/components/input/text/text.component.js +1 -0
  59. package/components/input/text/text.component.js.map +1 -1
  60. package/components/page/left-panel/left-panel.component.js +1 -1
  61. package/components/page/left-panel/left-panel.component.js.map +1 -1
  62. package/components-prism/input/slider/slider.styles.js +1 -1
  63. package/components-prism/input/slider/slider.styles.js.map +1 -1
  64. package/core/AppConfig.js.map +1 -1
  65. package/core/base.component.js +23 -0
  66. package/core/base.component.js.map +1 -1
  67. package/core/components/textinput.component.js +2 -1
  68. package/core/components/textinput.component.js.map +1 -1
  69. package/core/environment.js +25 -0
  70. package/core/environment.js.map +1 -0
  71. package/npm-shrinkwrap.json +92 -93
  72. package/package-lock.json +92 -93
  73. package/package.json +2 -2
  74. package/runtime/App.js +1 -0
  75. package/runtime/App.js.map +1 -1
  76. package/runtime/base-fragment.component.js +28 -5
  77. package/runtime/base-fragment.component.js.map +1 -1
  78. package/runtime/base-page.component.js +2 -1
  79. package/runtime/base-page.component.js.map +1 -1
  80. package/runtime/navigator/stack.navigator.js +6 -0
  81. package/runtime/navigator/stack.navigator.js.map +1 -1
  82. package/styles/theme.js +21 -2
  83. package/styles/theme.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["clone","isEqual","React","CommonActions","SplashScreen","WmPage","NavigationServiceProvider","AppSecurityService","AppSpinnerService","BaseFragment","Watcher","setCurrentPageInAppLayout","ScreenCaptureProtectionConsumer","BasePage","constructor","props","_this$appConfig$drawe","_defineProperty","setTimeout","hideAsync","pageName","route","name","pageParams","params","appConfig","currentPage","drawer","setContent","serviceDefinitions","App","watcher","ROOT","create","canUserAccessPage","then","flag","cache","redirectToLogin","toHashURL","diagnostics","pageStartTime","Date","now","onComponentInit","w","targetWidget","pageWidget","refreshdataonattach","toggleDrawer","navigation","setDrawerContent","content","drawerContent","drawerType","hasDrawer","proxy","_this$appConfig$drawe2","_this$appConfig$drawe4","_this$appConfig$drawe3","createElement","value","setAnimation","onAttach","pageReadyTime","notify","onFragmentReady","onContentReady","triggerPageReady","hide","cleanup","push","addListener","_this$appConfig$scree","refresh","screenCaptureContext","screenCaptureProtection","enabled","enableProtection","pageFocus","_this$appConfig$scree2","disableProtection","pageBlur","isFocused","_this$appConfig$scree3","componentWillUnmount","canNavigate","nextPage","navigate","onBeforePageLeave","e","handleCallbackError","goToPage","clearCahe","isNavigable","Promise","resolve","_params","dispatch","reset","index","routes","onDetach","destroyMe","closeDrawer","navigateToLandingPage","hash","paramStr","Object","keys","map","k","join","goBack","_navigation$getState","getState","canGoBack","length","window","history","back","openUrl","url","startsWith","substring","splits","split","p","forEach","openBrowser","isActiveTabbarItem","label","link","links","possibleLinks","find","l","includes","onNetworkRetry","invokeStartUpVariablesAndActions","renderWidget","context","renderPage"],"sources":["base-page.component.tsx"],"sourcesContent":["import { clone, isEqual } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { CommonActions } from '@react-navigation/native';\nimport * as SplashScreen from 'expo-splash-screen';\nimport { BaseComponent } from '@wavemaker-ai/app-rn-runtime/core/base.component';\n\nimport WmPage from '@wavemaker-ai/app-rn-runtime/components/page/page.component';\nimport NavigationService, { NavigationServiceProvider } from '@wavemaker-ai/app-rn-runtime/core/navigation.service';\nimport NetworkService from '@wavemaker-ai/app-rn-runtime/core/network.service';\nimport { isWebPreviewMode } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { BaseVariable } from '@wavemaker-ai/app-rn-runtime/variables/base-variable';\n\nimport AppSecurityService from './services/app-security.service';\nimport AppSpinnerService from './services/app-spinner.service';\nimport BaseFragment, { FragmentProps, FragmentState } from './base-fragment.component';\nimport { Watcher } from './watcher';\nimport { setCurrentPageInAppLayout } from '../core/utils';\nimport { ScreenCaptureProtectionConsumer, ScreenCaptureProtectionContextType } from '../core/screen-capture-protection.service';\ndeclare const window: any;\n\nexport interface PageProps extends FragmentProps {\n route: any;\n navigation: any;\n destroyMe: Function;\n}\n\nexport interface PageState extends FragmentState<PageProps> {\n}\n\nexport default abstract class BasePage extends BaseFragment<PageProps, PageState> implements NavigationService {\n private pageName = null as unknown as string;\n private pageParams: any = {};\n private hasDrawer = false;\n private hasTabbar = false;\n private drawerContent = null as React.ReactNode;\n private drawerType = '';\n private screenCaptureContext: ScreenCaptureProtectionContextType | null = null;\n private pageWidget: WmPage | null = null;\n\n constructor(props: PageProps) {\n super(props);\n setTimeout(() => {\n SplashScreen.hideAsync();\n }, 300);\n this.pageName = props.route.name;\n this.pageParams = props.route.params;\n this.appConfig.currentPage = this;\n this.appConfig.drawer?.setContent(null);\n this.serviceDefinitions = this.App.serviceDefinitions;\n this.watcher = Watcher.ROOT.create();\n\n\n AppSecurityService.canUserAccessPage(this.pageName)\n .then(flag => {\n if (!flag) {\n this.cache = false;\n AppSecurityService.redirectToLogin(this.toHashURL());\n }\n });\n if (this.App.appConfig.diagnostics.pageStartTime < 0) {\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n }\n\n setCurrentPageInAppLayout(props.route.name);\n \n }\n\n onComponentInit(w: BaseComponent<any, any, any>) {\n super.onComponentInit(w);\n if (w instanceof WmPage) {\n this.targetWidget = w;\n this.pageWidget = w;\n const props = w.props as any;\n this.cache = !(props.cache === false);\n this.refreshdataonattach = !(props.refreshdataonattach === false);\n }\n } \n \n toggleDrawer() {\n (this.props as PageProps).navigation.toggleDrawer();\n }\n\n setDrawerContent(content = this.drawerContent, drawerType = this.drawerType) {\n if (!content) {\n return;\n }\n this.drawerContent = content;\n this.drawerType = drawerType;\n this.hasDrawer = true;\n setTimeout(() => {\n if (this.appConfig.currentPage === this\n || this.appConfig.currentPage.proxy === this) {\n this.appConfig.drawer?.setContent(null);\n setTimeout(() => {\n this.appConfig.drawer?.setContent((\n <NavigationServiceProvider value={this}>\n {content}\n </NavigationServiceProvider>));\n }, 500);\n this.appConfig.drawer?.setAnimation(drawerType);\n }\n }, 10);\n }\n\n onAttach() {\n super.onAttach();\n this.setDrawerContent();\n this.App.appConfig.diagnostics.pageReadyTime = Date.now();\n this.App.notify('pageAttached', this);\n }\n\n onFragmentReady() {\n\n return super.onFragmentReady().then(() => {\n this.onContentReady();\n this.App.triggerPageReady(this.pageName, this.proxy as BasePage);\n this.App.appConfig.diagnostics.pageReadyTime = Date.now();\n this.App.notify('pageReady', this);\n AppSpinnerService.hide();\n this.cleanup.push((this.props as PageProps).navigation.addListener('focus', () => {\n if (this.appConfig.currentPage !== this) {\n this.appConfig.currentPage = this;\n this.onAttach();\n this.appConfig.refresh();\n }\n if (this.screenCaptureContext && this.appConfig.screenCaptureProtection?.enabled) {\n this.screenCaptureContext.enableProtection();\n }\n if (this.pageWidget) {\n this.pageWidget.pageFocus();\n }\n }));\n\n this.cleanup.push((this.props as PageProps).navigation.addListener('blur', () => {\n if (this.screenCaptureContext && this.appConfig.screenCaptureProtection?.enabled) {\n this.screenCaptureContext.disableProtection();\n }\n if (this.pageWidget) {\n this.pageWidget.pageBlur();\n }\n }));\n\n // Manually trigger focus logic for initial mount.\n // React Navigation's focus event may have already fired before listener registration\n const navigation = (this.props as PageProps).navigation;\n if (navigation.isFocused && navigation.isFocused()) {\n if (this.screenCaptureContext && this.appConfig.screenCaptureProtection?.enabled) {\n this.screenCaptureContext.enableProtection();\n }\n if (this.pageWidget) {\n this.pageWidget.pageFocus();\n }\n }\n });\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.App.notify('pageDestroyed', this);\n }\n\n async canNavigate (currentPage: string, nextPage: string) {\n let navigate = true;\n //added try-catch to catch any errors in the callback fn and propogate it to global error handler.\n try {\n navigate = await this.onBeforePageLeave(currentPage, nextPage);\n } catch (e) {\n this.App.handleCallbackError(e, `Error in page-level onBeforePageLeave callback`);\n }\n\n if(navigate !== false){\n try {\n navigate = await this.App.onBeforePageLeave(currentPage, nextPage);\n } catch (e) {\n this.App.handleCallbackError(e, `Error in app-level onBeforePageLeave callback`);\n }\n }\n\n if(navigate !== false) navigate = true;\n\n return navigate;\n }\n\n async onBeforePageLeave(currentPage: string, nextPage: string) {\n //method can be override by the user from studio;\n return true;\n }\n\n async goToPage(pageName: string, params: any, clearCahe = false) {\n const isNavigable = await this.canNavigate(this.pageName, pageName)\n if(!isNavigable){\n return Promise.resolve();\n }\n\n const navigation = (this.props as PageProps).navigation;\n const _params = clone(params);\n _params && delete _params['pageName'];\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n if (pageName !== this.pageName || !isEqual(_params || null, this.pageParams || null)) {\n if (pageName === this.pageName) {\n navigation.push(pageName, _params);\n } else if (clearCahe) {\n navigation.dispatch(CommonActions.reset({\n index: 0,\n routes: [\n { name: pageName, params: params }\n ]}));\n } else {\n navigation.navigate(pageName, _params);\n }\n if (this.cache) {\n this.onDetach();\n } else {\n this.props.destroyMe();\n }\n } else {\n (this.props as PageProps).navigation.closeDrawer();\n }\n return Promise.resolve();\n }\n\n public navigateToLandingPage() {\n AppSecurityService.navigateToLandingPage();\n }\n\n public toHashURL() {\n const hash = `#/${this.pageName}`;\n const paramStr = Object.keys(this.pageParams || [])\n .map(k => k && `${k}=${this.pageParams[k]}`)\n .join('&');\n return hash + (paramStr ? `?${paramStr}` : '');\n }\n\n async goBack() {\n const navigation = (this.props as PageProps).navigation;\n const routes = navigation.getState()?.routes;\n let isNavigable = true;\n\n if(navigation.canGoBack()){\n isNavigable = await this.canNavigate(this.pageName, routes[routes.length - 2].name)\n }\n if(!isNavigable){\n return Promise.resolve();\n }\n\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n if (navigation.canGoBack()) {\n navigation.goBack();\n } else if (window && window.history) {\n window.history.back();\n }\n return Promise.resolve();\n }\n\n openUrl(url: string, params = {} as any) {\n if (url) {\n if (url.startsWith('#')) {\n url = url.substring(1);\n url = url.startsWith('/') ? url.substring(1) : url;\n const splits = url.split('?');\n const pageName = splits[0];\n let params = {} as any;\n if (splits.length > 1) {\n splits[1].split('&')\n .map(p => p.split('='))\n .forEach(p => params[p[0]] = p[1]);\n }\n return this.goToPage(pageName, params);\n } else {\n this.App.openBrowser(url, params);\n }\n }\n return Promise.resolve();\n }\n\n isActiveTabbarItem({label, link, links}: {label: string, link: string, links: string[]}) {\n const pageName = this.pageName;\n const possibleLinks = [pageName, '#' + pageName, '#/' + pageName];\n return links && links.find(l => possibleLinks.includes(l));\n }\n\n async onNetworkRetry() {\n this.invokeStartUpVariablesAndActions();\n }\n\n abstract renderPage(): ReactNode;\n\n renderWidget(props: PageProps) {\n return (\n <ScreenCaptureProtectionConsumer>\n {(context: ScreenCaptureProtectionContextType | null) => {\n if (!context) return this.renderPage();\n this.screenCaptureContext = context;\n return this.renderPage();\n }}\n </ScreenCaptureProtectionConsumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["clone","isEqual","React","CommonActions","SplashScreen","WmPage","NavigationServiceProvider","AppSecurityService","AppSpinnerService","BaseFragment","Watcher","setCurrentPageInAppLayout","ScreenCaptureProtectionConsumer","BasePage","constructor","props","_this$appConfig$drawe","_defineProperty","setTimeout","hideAsync","pageName","route","name","pageParams","params","appConfig","currentPage","drawer","setContent","serviceDefinitions","App","watcher","ROOT","create","canUserAccessPage","then","flag","cache","redirectToLogin","toHashURL","diagnostics","pageStartTime","Date","now","onComponentInit","w","targetWidget","pageWidget","globalCacheEnabled","enablePageCache","refreshdataonattach","toggleDrawer","navigation","setDrawerContent","content","drawerContent","drawerType","hasDrawer","proxy","_this$appConfig$drawe2","_this$appConfig$drawe4","_this$appConfig$drawe3","createElement","value","setAnimation","onAttach","pageReadyTime","notify","onFragmentReady","onContentReady","triggerPageReady","hide","cleanup","push","addListener","_this$appConfig$scree","refresh","screenCaptureContext","screenCaptureProtection","enabled","enableProtection","pageFocus","_this$appConfig$scree2","disableProtection","pageBlur","isFocused","_this$appConfig$scree3","componentWillUnmount","canNavigate","nextPage","navigate","onBeforePageLeave","e","handleCallbackError","goToPage","clearCahe","isNavigable","Promise","resolve","_params","dispatch","reset","index","routes","onDetach","destroyMe","closeDrawer","navigateToLandingPage","hash","paramStr","Object","keys","map","k","join","goBack","_navigation$getState","getState","canGoBack","length","window","history","back","openUrl","url","startsWith","substring","splits","split","p","forEach","openBrowser","isActiveTabbarItem","label","link","links","possibleLinks","find","l","includes","onNetworkRetry","invokeStartUpVariablesAndActions","renderWidget","context","renderPage"],"sources":["base-page.component.tsx"],"sourcesContent":["import { clone, isEqual } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { CommonActions } from '@react-navigation/native';\nimport * as SplashScreen from 'expo-splash-screen';\nimport { BaseComponent } from '@wavemaker-ai/app-rn-runtime/core/base.component';\n\nimport WmPage from '@wavemaker-ai/app-rn-runtime/components/page/page.component';\nimport NavigationService, { NavigationServiceProvider } from '@wavemaker-ai/app-rn-runtime/core/navigation.service';\nimport NetworkService from '@wavemaker-ai/app-rn-runtime/core/network.service';\nimport { isWebPreviewMode } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { BaseVariable } from '@wavemaker-ai/app-rn-runtime/variables/base-variable';\n\nimport AppSecurityService from './services/app-security.service';\nimport AppSpinnerService from './services/app-spinner.service';\nimport BaseFragment, { FragmentProps, FragmentState } from './base-fragment.component';\nimport { Watcher } from './watcher';\nimport { setCurrentPageInAppLayout } from '../core/utils';\nimport { ScreenCaptureProtectionConsumer, ScreenCaptureProtectionContextType } from '../core/screen-capture-protection.service';\ndeclare const window: any;\n\nexport interface PageProps extends FragmentProps {\n route: any;\n navigation: any;\n destroyMe: Function;\n}\n\nexport interface PageState extends FragmentState<PageProps> {\n}\n\nexport default abstract class BasePage extends BaseFragment<PageProps, PageState> implements NavigationService {\n private pageName = null as unknown as string;\n private pageParams: any = {};\n private hasDrawer = false;\n private hasTabbar = false;\n private drawerContent = null as React.ReactNode;\n private drawerType = '';\n private screenCaptureContext: ScreenCaptureProtectionContextType | null = null;\n private pageWidget: WmPage | null = null;\n\n constructor(props: PageProps) {\n super(props);\n setTimeout(() => {\n SplashScreen.hideAsync();\n }, 300);\n this.pageName = props.route.name;\n this.pageParams = props.route.params;\n this.appConfig.currentPage = this;\n this.appConfig.drawer?.setContent(null);\n this.serviceDefinitions = this.App.serviceDefinitions;\n this.watcher = Watcher.ROOT.create();\n\n\n AppSecurityService.canUserAccessPage(this.pageName)\n .then(flag => {\n if (!flag) {\n this.cache = false;\n AppSecurityService.redirectToLogin(this.toHashURL());\n }\n });\n if (this.App.appConfig.diagnostics.pageStartTime < 0) {\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n }\n\n setCurrentPageInAppLayout(props.route.name);\n \n }\n\n onComponentInit(w: BaseComponent<any, any, any>) {\n super.onComponentInit(w);\n if (w instanceof WmPage) {\n this.targetWidget = w;\n this.pageWidget = w;\n const props = w.props as any;\n const globalCacheEnabled = this.appConfig.enablePageCache !== false;\n this.cache = globalCacheEnabled && !(props.cache === false);\n this.refreshdataonattach = !(props.refreshdataonattach === false);\n }\n } \n \n toggleDrawer() {\n (this.props as PageProps).navigation.toggleDrawer();\n }\n\n setDrawerContent(content = this.drawerContent, drawerType = this.drawerType) {\n if (!content) {\n return;\n }\n this.drawerContent = content;\n this.drawerType = drawerType;\n this.hasDrawer = true;\n setTimeout(() => {\n if (this.appConfig.currentPage === this\n || this.appConfig.currentPage.proxy === this) {\n this.appConfig.drawer?.setContent(null);\n setTimeout(() => {\n this.appConfig.drawer?.setContent((\n <NavigationServiceProvider value={this}>\n {content}\n </NavigationServiceProvider>));\n }, 500);\n this.appConfig.drawer?.setAnimation(drawerType);\n }\n }, 10);\n }\n\n onAttach() {\n super.onAttach();\n this.setDrawerContent();\n this.App.appConfig.diagnostics.pageReadyTime = Date.now();\n this.App.notify('pageAttached', this);\n }\n\n onFragmentReady() {\n\n return super.onFragmentReady().then(() => {\n this.onContentReady();\n this.App.triggerPageReady(this.pageName, this.proxy as BasePage);\n this.App.appConfig.diagnostics.pageReadyTime = Date.now();\n this.App.notify('pageReady', this);\n AppSpinnerService.hide();\n this.cleanup.push((this.props as PageProps).navigation.addListener('focus', () => {\n if (this.appConfig.currentPage !== this) {\n this.appConfig.currentPage = this;\n this.onAttach();\n this.appConfig.refresh();\n }\n if (this.screenCaptureContext && this.appConfig.screenCaptureProtection?.enabled) {\n this.screenCaptureContext.enableProtection();\n }\n if (this.pageWidget) {\n this.pageWidget.pageFocus();\n }\n }));\n\n this.cleanup.push((this.props as PageProps).navigation.addListener('blur', () => {\n if (this.screenCaptureContext && this.appConfig.screenCaptureProtection?.enabled) {\n this.screenCaptureContext.disableProtection();\n }\n if (this.pageWidget) {\n this.pageWidget.pageBlur();\n }\n }));\n\n // Manually trigger focus logic for initial mount.\n // React Navigation's focus event may have already fired before listener registration\n const navigation = (this.props as PageProps).navigation;\n if (navigation.isFocused && navigation.isFocused()) {\n if (this.screenCaptureContext && this.appConfig.screenCaptureProtection?.enabled) {\n this.screenCaptureContext.enableProtection();\n }\n if (this.pageWidget) {\n this.pageWidget.pageFocus();\n }\n }\n });\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n this.App.notify('pageDestroyed', this);\n }\n\n async canNavigate (currentPage: string, nextPage: string) {\n let navigate = true;\n //added try-catch to catch any errors in the callback fn and propogate it to global error handler.\n try {\n navigate = await this.onBeforePageLeave(currentPage, nextPage);\n } catch (e) {\n this.App.handleCallbackError(e, `Error in page-level onBeforePageLeave callback`);\n }\n\n if(navigate !== false){\n try {\n navigate = await this.App.onBeforePageLeave(currentPage, nextPage);\n } catch (e) {\n this.App.handleCallbackError(e, `Error in app-level onBeforePageLeave callback`);\n }\n }\n\n if(navigate !== false) navigate = true;\n\n return navigate;\n }\n\n async onBeforePageLeave(currentPage: string, nextPage: string) {\n //method can be override by the user from studio;\n return true;\n }\n\n async goToPage(pageName: string, params: any, clearCahe = false) {\n const isNavigable = await this.canNavigate(this.pageName, pageName)\n if(!isNavigable){\n return Promise.resolve();\n }\n\n const navigation = (this.props as PageProps).navigation;\n const _params = clone(params);\n _params && delete _params['pageName'];\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n if (pageName !== this.pageName || !isEqual(_params || null, this.pageParams || null)) {\n if (pageName === this.pageName) {\n navigation.push(pageName, _params);\n } else if (clearCahe) {\n navigation.dispatch(CommonActions.reset({\n index: 0,\n routes: [\n { name: pageName, params: params }\n ]}));\n } else {\n navigation.navigate(pageName, _params);\n }\n if (this.cache) {\n this.onDetach();\n } else {\n this.props.destroyMe();\n }\n } else {\n (this.props as PageProps).navigation.closeDrawer();\n }\n return Promise.resolve();\n }\n\n public navigateToLandingPage() {\n AppSecurityService.navigateToLandingPage();\n }\n\n public toHashURL() {\n const hash = `#/${this.pageName}`;\n const paramStr = Object.keys(this.pageParams || [])\n .map(k => k && `${k}=${this.pageParams[k]}`)\n .join('&');\n return hash + (paramStr ? `?${paramStr}` : '');\n }\n\n async goBack() {\n const navigation = (this.props as PageProps).navigation;\n const routes = navigation.getState()?.routes;\n let isNavigable = true;\n\n if(navigation.canGoBack()){\n isNavigable = await this.canNavigate(this.pageName, routes[routes.length - 2].name)\n }\n if(!isNavigable){\n return Promise.resolve();\n }\n\n this.App.appConfig.diagnostics.pageStartTime = Date.now();\n if (navigation.canGoBack()) {\n navigation.goBack();\n } else if (window && window.history) {\n window.history.back();\n }\n return Promise.resolve();\n }\n\n openUrl(url: string, params = {} as any) {\n if (url) {\n if (url.startsWith('#')) {\n url = url.substring(1);\n url = url.startsWith('/') ? url.substring(1) : url;\n const splits = url.split('?');\n const pageName = splits[0];\n let params = {} as any;\n if (splits.length > 1) {\n splits[1].split('&')\n .map(p => p.split('='))\n .forEach(p => params[p[0]] = p[1]);\n }\n return this.goToPage(pageName, params);\n } else {\n this.App.openBrowser(url, params);\n }\n }\n return Promise.resolve();\n }\n\n isActiveTabbarItem({label, link, links}: {label: string, link: string, links: string[]}) {\n const pageName = this.pageName;\n const possibleLinks = [pageName, '#' + pageName, '#/' + pageName];\n return links && links.find(l => possibleLinks.includes(l));\n }\n\n async onNetworkRetry() {\n this.invokeStartUpVariablesAndActions();\n }\n\n abstract renderPage(): ReactNode;\n\n renderWidget(props: PageProps) {\n return (\n <ScreenCaptureProtectionConsumer>\n {(context: ScreenCaptureProtectionContextType | null) => {\n if (!context) return this.renderPage();\n this.screenCaptureContext = context;\n return this.renderPage();\n }}\n </ScreenCaptureProtectionConsumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -57,6 +57,7 @@ const getPageId = (pageName, pageParams) => {
57
57
  const AppStackNavigator = props => {
58
58
  const appConfig = injector.get('APP_CONFIG');
59
59
  const disablePageAnimation = (appConfig === null || appConfig === void 0 ? void 0 : appConfig.disableNavigationAnimation) || false;
60
+ const pageTransitionAnimation = (appConfig === null || appConfig === void 0 ? void 0 : appConfig.pageTransitionAnimation) || "";
60
61
  /*
61
62
  Setting detachInactiveScreens={false} for Android.
62
63
  With Fabric + React Navigation, navigating to an existing stack screen
@@ -81,6 +82,11 @@ const AppStackNavigator = props => {
81
82
  params
82
83
  }) => getPageId(p.name, params),
83
84
  options: {
85
+ ...(pageTransitionAnimation ? {
86
+ animation: pageTransitionAnimation
87
+ } : disablePageAnimation && {
88
+ animation: 'none'
89
+ }),
84
90
  headerShown: false,
85
91
  cardStyle: {
86
92
  backgroundColor: ThemeVariables.INSTANCE.pageContentBgColor
@@ -1 +1 @@
1
- {"version":3,"names":["React","Platform","View","createStackNavigator","ThemeVariables","ErrorBoundary","injector","Stack","pages","Screen","Component","constructor","props","_defineProperty","state","renew","page","createPage","navigation","cleanUp","push","addListener","setState","createElement","route","name","component","destroyMe","setTimeout","componentWillUnmount","forEach","fn","render","getPageId","pageName","pageParams","pageParamsStr","Object","keys","sort","map","k","join","AppStackNavigator","appConfig","get","disablePageAnimation","disableNavigationAnimation","detachInactiveScreens","OS","Navigator","initialRouteName","landingPage","p","key","getId","params","options","headerShown","cardStyle","backgroundColor","INSTANCE","pageContentBgColor"],"sources":["stack.navigator.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, View } from 'react-native';\nimport { createStackNavigator } from '@react-navigation/stack';\nimport ThemeVariables from '@wavemaker-ai/app-rn-runtime/styles/theme.variables';\nimport ErrorBoundary from '@wavemaker-ai/app-rn-runtime/core/error-boundary.component';\nimport injector from '@wavemaker-ai/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker-ai/app-rn-runtime/core/AppConfig';\n\n\n\nconst Stack = createStackNavigator();\n\ninterface AppStackNavigatorProps {\n pages: any[];\n landingPage: string;\n}\n\nconst pages = {} as any;\n\nclass Screen extends React.Component {\n\n private cleanUp = [] as Function[];\n\n constructor(props: any) {\n super(props);\n this.state = {\n renew: false,\n page: this.createPage()\n };\n const navigation = (this.props as any).navigation as any;\n this.cleanUp.push(navigation.addListener('focus', () => {\n const state = (this.state as any);\n if (state.renew) {\n state.page = this.createPage();\n this.setState(() => ({\n renew: false,\n page: state.page\n }));\n }\n }));\n }\n\n private createPage() {\n const props = this.props as any;\n return (\n <ErrorBoundary>\n {React.createElement(pages[props.route.name].component, {...props, destroyMe: () => {\n setTimeout(() => {\n this.setState(() => ({renew: true, page: null}));\n }, 100);\n }})}\n </ErrorBoundary>\n );\n }\n\n componentWillUnmount() {\n this.cleanUp.forEach(fn => fn && fn());\n }\n\n render() {\n return (this.state as any).page || (<View/>);\n }\n}\n\nconst getPageId = (pageName: string, pageParams: any) => {\n const pageParamsStr = pageParams ? Object.keys(pageParams)\n .sort()\n .map((k: string) => `${k}=${pageParams[k]}`)\n .join('&') : '';\n return `${pageName}?${pageParamsStr}`;\n}\n\nconst AppStackNavigator = (props: AppStackNavigatorProps) => {\n const appConfig = injector.get<AppConfig>('APP_CONFIG');\n const disablePageAnimation = appConfig?.disableNavigationAnimation || false\n /*\n Setting detachInactiveScreens={false} for Android.\n With Fabric + React Navigation, navigating to an existing stack screen\n can cause a view reattachment conflict, throwing errors like:\n - removeViewAt tried to remove a React View that was actually reused.\n - addViewAt: cannot insert view [1944] into parent [666]: View already has a parent: [-1]\n\n This breaks the touch responder system (scroll works but touch events stop).\n refer : https://github.com/facebook/react-native/blob/7f1a1e6c93ec1acd34b5756656210ccea97fb4a6/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt#L363\n Until fixed in future React Native versions, disabling screen detaching is the workaround.\n */\n const detachInactiveScreens = Platform.OS === 'android' && appConfig?.detachInactiveScreens === false ? false : true;\n\n return (<Stack.Navigator detachInactiveScreens={detachInactiveScreens} initialRouteName={props.landingPage}>\n {props.pages.map(p => {\n pages[p.name] = p;\n return (\n <Stack.Screen key={p.name}\n name={p.name}\n component={Screen}\n getId={({params}) => getPageId(p.name, params)}\n options={{\n headerShown: false,\n cardStyle: {\n backgroundColor: ThemeVariables.INSTANCE.pageContentBgColor\n }\n }}\n />);\n })}\n </Stack.Navigator>);\n};\n\nexport default AppStackNavigator;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Platform","View","createStackNavigator","ThemeVariables","ErrorBoundary","injector","Stack","pages","Screen","Component","constructor","props","_defineProperty","state","renew","page","createPage","navigation","cleanUp","push","addListener","setState","createElement","route","name","component","destroyMe","setTimeout","componentWillUnmount","forEach","fn","render","getPageId","pageName","pageParams","pageParamsStr","Object","keys","sort","map","k","join","AppStackNavigator","appConfig","get","disablePageAnimation","disableNavigationAnimation","pageTransitionAnimation","detachInactiveScreens","OS","Navigator","initialRouteName","landingPage","p","key","getId","params","options","animation","headerShown","cardStyle","backgroundColor","INSTANCE","pageContentBgColor"],"sources":["stack.navigator.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, View } from 'react-native';\nimport { createStackNavigator } from '@react-navigation/stack';\nimport ThemeVariables from '@wavemaker-ai/app-rn-runtime/styles/theme.variables';\nimport ErrorBoundary from '@wavemaker-ai/app-rn-runtime/core/error-boundary.component';\nimport injector from '@wavemaker-ai/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker-ai/app-rn-runtime/core/AppConfig';\n\n\n\nconst Stack = createStackNavigator();\n\ninterface AppStackNavigatorProps {\n pages: any[];\n landingPage: string;\n}\n\nconst pages = {} as any;\n\nclass Screen extends React.Component {\n\n private cleanUp = [] as Function[];\n\n constructor(props: any) {\n super(props);\n this.state = {\n renew: false,\n page: this.createPage()\n };\n const navigation = (this.props as any).navigation as any;\n this.cleanUp.push(navigation.addListener('focus', () => {\n const state = (this.state as any);\n if (state.renew) {\n state.page = this.createPage();\n this.setState(() => ({\n renew: false,\n page: state.page\n }));\n }\n }));\n }\n\n private createPage() {\n const props = this.props as any;\n return (\n <ErrorBoundary>\n {React.createElement(pages[props.route.name].component, {...props, destroyMe: () => {\n setTimeout(() => {\n this.setState(() => ({renew: true, page: null}));\n }, 100);\n }})}\n </ErrorBoundary>\n );\n }\n\n componentWillUnmount() {\n this.cleanUp.forEach(fn => fn && fn());\n }\n\n render() {\n return (this.state as any).page || (<View/>);\n }\n}\n\nconst getPageId = (pageName: string, pageParams: any) => {\n const pageParamsStr = pageParams ? Object.keys(pageParams)\n .sort()\n .map((k: string) => `${k}=${pageParams[k]}`)\n .join('&') : '';\n return `${pageName}?${pageParamsStr}`;\n}\n\nconst AppStackNavigator = (props: AppStackNavigatorProps) => {\n const appConfig = injector.get<AppConfig>('APP_CONFIG');\n const disablePageAnimation = appConfig?.disableNavigationAnimation || false\n const pageTransitionAnimation = appConfig?.pageTransitionAnimation || \"\"\n /*\n Setting detachInactiveScreens={false} for Android.\n With Fabric + React Navigation, navigating to an existing stack screen\n can cause a view reattachment conflict, throwing errors like:\n - removeViewAt tried to remove a React View that was actually reused.\n - addViewAt: cannot insert view [1944] into parent [666]: View already has a parent: [-1]\n\n This breaks the touch responder system (scroll works but touch events stop).\n refer : https://github.com/facebook/react-native/blob/7f1a1e6c93ec1acd34b5756656210ccea97fb4a6/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.kt#L363\n Until fixed in future React Native versions, disabling screen detaching is the workaround.\n */\n const detachInactiveScreens = Platform.OS === 'android' && appConfig?.detachInactiveScreens === false ? false : true;\n\n return (<Stack.Navigator detachInactiveScreens={detachInactiveScreens} initialRouteName={props.landingPage}>\n {props.pages.map(p => {\n pages[p.name] = p;\n return (\n <Stack.Screen key={p.name}\n name={p.name}\n component={Screen}\n getId={({params}) => getPageId(p.name, params)}\n options={{\n ...(pageTransitionAnimation ? { animation: pageTransitionAnimation as any } : (disablePageAnimation && { animation: 'none' })),\n headerShown: false,\n cardStyle: {\n backgroundColor: ThemeVariables.INSTANCE.pageContentBgColor\n }\n }}\n />);\n })}\n </Stack.Navigator>);\n};\n\nexport default AppStackNavigator;\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC7C,SAASC,oBAAoB,QAAQ,yBAAyB;AAC9D,OAAOC,cAAc,MAAM,qDAAqD;AAChF,OAAOC,aAAa,MAAM,4DAA4D;AACtF,OAAOC,QAAQ,MAAM,4CAA4C;AAKjE,MAAMC,KAAK,GAAGJ,oBAAoB,CAAC,CAAC;AAOpC,MAAMK,KAAK,GAAG,CAAC,CAAQ;AAEvB,MAAMC,MAAM,SAAST,KAAK,CAACU,SAAS,CAAC;EAInCC,WAAWA,CAACC,KAAU,EAAE;IACtB,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA,kBAHG,EAAE;IAIlB,IAAI,CAACC,KAAK,GAAG;MACXC,KAAK,EAAE,KAAK;MACZC,IAAI,EAAE,IAAI,CAACC,UAAU,CAAC;IACxB,CAAC;IACD,MAAMC,UAAU,GAAI,IAAI,CAACN,KAAK,CAASM,UAAiB;IACxD,IAAI,CAACC,OAAO,CAACC,IAAI,CAACF,UAAU,CAACG,WAAW,CAAC,OAAO,EAAE,MAAM;MACtD,MAAMP,KAAK,GAAI,IAAI,CAACA,KAAa;MACjC,IAAIA,KAAK,CAACC,KAAK,EAAE;QACfD,KAAK,CAACE,IAAI,GAAG,IAAI,CAACC,UAAU,CAAC,CAAC;QAC9B,IAAI,CAACK,QAAQ,CAAC,OAAO;UACnBP,KAAK,EAAE,KAAK;UACZC,IAAI,EAAEF,KAAK,CAACE;QACd,CAAC,CAAC,CAAC;MACL;IACF,CAAC,CAAC,CAAC;EACL;EAEQC,UAAUA,CAAA,EAAG;IACnB,MAAML,KAAK,GAAG,IAAI,CAACA,KAAY;IAC/B,oBACEZ,KAAA,CAAAuB,aAAA,CAAClB,aAAa,qBACXL,KAAK,CAACuB,aAAa,CAACf,KAAK,CAACI,KAAK,CAACY,KAAK,CAACC,IAAI,CAAC,CAACC,SAAS,EAAE;MAAC,GAAGd,KAAK;MAAEe,SAAS,EAAEA,CAAA,KAAM;QAClFC,UAAU,CAAC,MAAM;UACf,IAAI,CAACN,QAAQ,CAAC,OAAO;YAACP,KAAK,EAAE,IAAI;YAAEC,IAAI,EAAE;UAAI,CAAC,CAAC,CAAC;QAClD,CAAC,EAAE,GAAG,CAAC;MACT;IAAC,CAAC,CACW,CAAC;EAEpB;EAEAa,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAACV,OAAO,CAACW,OAAO,CAACC,EAAE,IAAIA,EAAE,IAAIA,EAAE,CAAC,CAAC,CAAC;EACxC;EAEAC,MAAMA,CAAA,EAAG;IACP,OAAQ,IAAI,CAAClB,KAAK,CAASE,IAAI,iBAAKhB,KAAA,CAAAuB,aAAA,CAACrB,IAAI,MAAC,CAAE;EAC9C;AACF;AAEA,MAAM+B,SAAS,GAAGA,CAACC,QAAgB,EAAEC,UAAe,KAAK;EACvD,MAAMC,aAAa,GAAGD,UAAU,GAAGE,MAAM,CAACC,IAAI,CAACH,UAAU,CAAC,CACvDI,IAAI,CAAC,CAAC,CACNC,GAAG,CAAEC,CAAS,IAAK,GAAGA,CAAC,IAAIN,UAAU,CAACM,CAAC,CAAC,EAAE,CAAC,CAC3CC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE;EACjB,OAAO,GAAGR,QAAQ,IAAIE,aAAa,EAAE;AACvC,CAAC;AAED,MAAMO,iBAAiB,GAAI/B,KAA6B,IAAK;EAC3D,MAAMgC,SAAS,GAAGtC,QAAQ,CAACuC,GAAG,CAAY,YAAY,CAAC;EACvD,MAAMC,oBAAoB,GAAG,CAAAF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,0BAA0B,KAAI,KAAK;EAC3E,MAAMC,uBAAuB,GAAG,CAAAJ,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEI,uBAAuB,KAAI,EAAE;EACxE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAEE,MAAMC,qBAAqB,GAAGhD,QAAQ,CAACiD,EAAE,KAAK,SAAS,IAAI,CAAAN,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEK,qBAAqB,MAAK,KAAK,GAAG,KAAK,GAAG,IAAI;EAEpH,oBAAQjD,KAAA,CAAAuB,aAAA,CAAChB,KAAK,CAAC4C,SAAS;IAACF,qBAAqB,EAAEA,qBAAsB;IAACG,gBAAgB,EAAExC,KAAK,CAACyC;EAAY,GACxGzC,KAAK,CAACJ,KAAK,CAACgC,GAAG,CAACc,CAAC,IAAI;IACpB9C,KAAK,CAAC8C,CAAC,CAAC7B,IAAI,CAAC,GAAG6B,CAAC;IACjB,oBACEtD,KAAA,CAAAuB,aAAA,CAAChB,KAAK,CAACE,MAAM;MAAC8C,GAAG,EAAED,CAAC,CAAC7B,IAAK;MACxBA,IAAI,EAAE6B,CAAC,CAAC7B,IAAK;MACbC,SAAS,EAAEjB,MAAO;MAClB+C,KAAK,EAAEA,CAAC;QAACC;MAAM,CAAC,KAAKxB,SAAS,CAACqB,CAAC,CAAC7B,IAAI,EAAEgC,MAAM,CAAE;MAC/CC,OAAO,EAAE;QACN,IAAIV,uBAAuB,GAAG;UAAEW,SAAS,EAAEX;QAA+B,CAAC,GAAIF,oBAAoB,IAAI;UAAEa,SAAS,EAAE;QAAO,CAAE,CAAC;QAC/HC,WAAW,EAAE,KAAK;QAClBC,SAAS,EAAE;UACTC,eAAe,EAAE1D,cAAc,CAAC2D,QAAQ,CAACC;QAC3C;MACF;IAAE,CACH,CAAC;EACJ,CAAC,CACY,CAAC;AACpB,CAAC;AAED,eAAerB,iBAAiB","ignoreList":[]}
package/styles/theme.js CHANGED
@@ -156,6 +156,24 @@ export class Theme {
156
156
  this.styleGenerators.push(fn);
157
157
  fn(ThemeVariables.INSTANCE, this.addStyle.bind(this));
158
158
  }
159
+ handleMediaQueryStyles(styles) {
160
+ const mediaQueries = [];
161
+ Object.keys(styles).forEach(item => {
162
+ if (/@media/.test(item) && matchMedia(item.replace('@media ', '')).matches) {
163
+ mediaQueries.push(item);
164
+ }
165
+ });
166
+ if (mediaQueries.length === 0) {
167
+ return styles;
168
+ }
169
+ mediaQueries.forEach(mediaQueryCondition => {
170
+ const mediaQueryStyles = styles[mediaQueryCondition];
171
+ Object.keys(mediaQueryStyles).forEach(item => {
172
+ styles[item] = mediaQueryStyles[item];
173
+ });
174
+ });
175
+ return styles;
176
+ }
159
177
  checkStyleProperties(name, value) {
160
178
  if (isObject(value)) {
161
179
  Object.keys(value).map(k => this.checkStyleProperties(k, value[k]));
@@ -581,9 +599,10 @@ export class Theme {
581
599
  this.styles = {};
582
600
  this.clearCache();
583
601
  if (styles) {
602
+ const filteredStyles = this.handleMediaQueryStyles(styles);
584
603
  this.registerStyle((themeVariables, addStyle) => {
585
- Object.keys(styles).forEach(k => {
586
- addStyle(k, '', styles[k]);
604
+ Object.keys(filteredStyles).forEach(k => {
605
+ addStyle(k, '', filteredStyles[k]);
587
606
  });
588
607
  });
589
608
  } else {
@@ -1 +1 @@
1
- {"version":3,"names":["cloneDeep","isNil","forEach","flatten","isArray","isEmpty","isObject","isString","get","reverse","isNumber","React","camelCase","Dimensions","Platform","deepCopy","isWebPreviewMode","EventNotifier","ViewPort","EVENTS","ViewPortEvents","MediaQueryList","ThemeVariables","ColorMix","getErrorMessage","getStyleReference","isValidStyleProp","injector","isNativeStyle","DEFAULT_CLASS","window","matchMedia","query","DEVICE_BREAK_POINTS","DEVICE_BREAK_POINTS_NATIVE_MOBILE","getBreakPointValue","name","OS","splitVarArguments","content","depth","i","length","c","variableName","substring","trim","fallback","ThemeEvent","Theme","constructor","parent","_this$getAppConfig","_defineProperty","revertLayoutToExpo50","getAppConfig","traceEnabled","enableTrace","flag","resetCache","reset","children","t","subscribe","event","fn","eventNotifer","notify","replaceVariables","val","baseTokens","classNames","inheritedTokens","match","s","resolvedValue","variants","INSTANCE","classList","split","cls","_ref","_ref2","_ref3","_ref4","_ref5","_inheritedTokens$vari","replace","parseFloat","clearCache","cache","registerStyle","styleGenerators","push","addStyle","bind","checkStyleProperties","value","Object","keys","map","k","startsWith","console","log","extend","style","styles","getStyle","addTrace","styleName","mergedChildstyle","childStyle","parentStyle","v","__trace","prefix","result","collect","extractTopLevelVariables","vars","key","mergeStyle","flattenStyles","cs","filter","classnames","Array","join","values","cleanseStyleProperties","resolveStyle","valueOf","resolvedTokens","_style$marginLeft","_style$marginRight","_style$marginTop","_style$marginBottom","endsWith","percentage","isNaN","processStyleValue","num","isUniformBorderWidthValue","Number","tokens","Boolean","parsed","r","b","l","vals","every","normalizeUniformBorderWidth","first","mergeBorderLikeBoxModelResult","target","_target$key","applyBoxModelProperty","property","positions","isBorderRadius","isBorderWidth","borderRadiusKeys","Top","Right","Bottom","Left","getProp","pos","numValue","entries","charAt","toUpperCase","slice","toLowerCase","assign","paddingPositions","hasOverridePadding","some","overrideKey","overrideValue","bw","paddingLeft","paddingRight","undefined","marginLeft","marginRight","screenWidth","width","screenHeight","height","stylePropertyValue","indexOf","mediaQuery","clonedStyle","root","matches","extraTextStyles","getTextStyle","isValObject","BASE","$new","newTheme","destroy","splice","textStyle","color","fontFamily","fontSize","fontStyle","fontWeight","includeFontPadding","fontVariant","letterSpacing","lineHeight","textAlign","textAlignVertical","textDecorationColor","textDecorationStyle","textShadowColor","textShadowOffset","textShadowRadius","textTransform","verticalAlign","writingDirection","userSelect","themeVariables","CHANGE","_Theme","SIZE_CHANGE","ThemeContext","createContext","ThemeProvider","Provider","ThemeConsumer","Consumer","addColStyles","device","minWidth","display","addDisplayStyles","maxWidth","addElevationClasses","boxShadow","zIndex","transform","scale","overflow","backgroundColor","dangerColor","infoColor","primaryColor","successColor","warningColor","borderColor","text"],"sources":["theme.tsx"],"sourcesContent":["import { cloneDeep, isNil, forEach, flatten, isArray, isEmpty, isObject, isString, get, reverse, isNumber } from 'lodash';\nimport React from 'react';\nimport { camelCase } from 'lodash-es';\nimport { TextStyle, ViewStyle, ImageStyle, ImageBackground, Dimensions, Platform } from 'react-native';\nimport { deepCopy, isWebPreviewMode } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport EventNotifier from '@wavemaker-ai/app-rn-runtime/core/event-notifier';\nimport ViewPort, {EVENTS as ViewPortEvents} from '@wavemaker-ai/app-rn-runtime/core/viewport';\nimport MediaQueryList from './MediaQueryList';\nimport ThemeVariables from './theme.variables';\nimport ColorMix from './color-mix';\nimport { getErrorMessage, getStyleReference, isValidStyleProp } from './style-prop.validator';\nimport injector from '@wavemaker-ai/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker-ai/app-rn-runtime/core/AppConfig';\nimport { isNativeStyle} from '@wavemaker-ai/app-rn-runtime/core/utils';\nexport const DEFAULT_CLASS = 'DEFAULT_CLASS';\n\ndeclare const matchMedia: any, window: any;\n\nif (typeof window !== \"undefined\") {\n // @ts-ignore: does not properly extend MediaQueryList\n window.matchMedia = (query: string) => new MediaQueryList(query);\n}\n\nexport const DEVICE_BREAK_POINTS: {[key: string]: string} = {\n 'MIN_EXTRA_SMALL_DEVICE' : '0px',\n 'MAX_EXTRA_SMALL_DEVICE' : '767px',\n 'MIN_SMALL_DEVICE' : '768px',\n 'MAX_SMALL_DEVICE' : '991px',\n 'MIN_MEDIUM_DEVICE' : '992px',\n 'MAX_MEDIUM_DEVICE' : '1199px',\n 'MIN_LARGE_DEVICE' : '1200px',\n 'MAX_LARGE_DEVICE' : '1000000px',\n};\n\nexport const DEVICE_BREAK_POINTS_NATIVE_MOBILE: {[key: string]: string} = {\n 'MIN_EXTRA_SMALL_DEVICE': '0px', // 0-479px (phones portrait)\n 'MAX_EXTRA_SMALL_DEVICE': '479px',\n 'MIN_SMALL_DEVICE': '480px', // 480-767px (phones landscape, small tablets portrait)\n 'MAX_SMALL_DEVICE': '767px',\n 'MIN_MEDIUM_DEVICE': '768px', // 768-1023px (tablets portrait, small laptops)\n 'MAX_MEDIUM_DEVICE': '1023px',\n 'MIN_LARGE_DEVICE': '1024px', // 1024px+ (tablets landscape, desktops)\n 'MAX_LARGE_DEVICE': '1000000px',\n};\n\nexport const getBreakPointValue = (name: string) => {\n if(Platform.OS === 'web') {\n return DEVICE_BREAK_POINTS[name];\n }\n\n return DEVICE_BREAK_POINTS_NATIVE_MOBILE[name];\n}\n\n/** Split `var()` inner content into custom property name and optional fallback. Only commas outside `()` count (so rgba(), linear-gradient(), etc. stay intact). */\nfunction splitVarArguments(content: string): { variableName: string; fallback?: string } {\n let depth = 0;\n for (let i = 0; i < content.length; i++) {\n const c = content[i];\n if (c === '(') {\n depth++;\n } else if (c === ')') {\n depth--;\n } else if (c === ',' && depth === 0) {\n return {\n variableName: content.substring(0, i).trim(),\n fallback: content.substring(i + 1).trim(),\n };\n }\n }\n return { variableName: content.trim() };\n}\n\nexport type styleGeneratorFn<T extends NamedStyles<any>> = (\n themeVariables: ThemeVariables,\n addStyle: (name: string, extend: string, style: T) => void) => void\n\nexport enum ThemeEvent {\n CHANGE ='change'\n};\n\nexport class Theme {\n public static BASE = new Theme(null as any, 'default');\n\n static {\n ViewPort.subscribe(ViewPortEvents.SIZE_CHANGE, () => {\n Theme.BASE.reset();\n });\n }\n\n\n private eventNotifer = new EventNotifier();\n\n private children: Theme[] = [];\n\n private styles: any = {};\n\n private cache: any = {};\n\n private traceEnabled = false;\n\n private revertLayoutToExpo50: Boolean;\n\n private styleGenerators: styleGeneratorFn<any>[] = [];\n\n private constructor(private parent:Theme, public readonly name: string) {\n this.revertLayoutToExpo50 = this.getAppConfig()?.revertLayoutToExpo50 || false;\n if (parent) {\n this.traceEnabled = parent.traceEnabled;\n } else {\n this.traceEnabled = isWebPreviewMode();\n }\n }\n\n private getAppConfig() {\n return injector.get<AppConfig>('APP_CONFIG');\n }\n\n public enableTrace(flag: boolean, resetCache: boolean = true) {\n this.traceEnabled = flag;\n if (resetCache && resetCache !== 'false' as any){\n this.reset();\n }\n this.children.forEach(t => t.enableTrace(flag, resetCache));\n }\n\n public subscribe(event: ThemeEvent, fn: Function) {\n return this.eventNotifer.subscribe(event, fn);\n }\n\n public notify(event: ThemeEvent): void {\n this.eventNotifer.notify(event, []);\n this.children.forEach(t => t.notify(event));\n }\n\n private replaceVariables(val: any, baseTokens: any, classNames: any, inheritedTokens: Record<string, any> = {}) {\n if(isString(val)) {\n (val.match(/_*var\\([^\\)]*\\)/g) || []).forEach((s) => {\n const content = s.substring(4, s.length - 1);\n const { variableName, fallback } = splitVarArguments(content);\n let resolvedValue;\n let variants: any = (ThemeVariables.INSTANCE as any).variants;\n if (variants && typeof classNames === 'string') {\n const classList = classNames.split(/\\s+/);\n for (const cls of classList) {\n if (variants[cls] && variants[cls][variableName]) {\n resolvedValue = variants[cls][variableName];\n break;\n }\n }\n }\n if (!resolvedValue) {\n resolvedValue = inheritedTokens[variableName] ?? inheritedTokens[`--${variableName}`] ?? baseTokens[variableName]\n ?? (ThemeVariables.INSTANCE as any)[variableName]\n ?? (ThemeVariables.INSTANCE as any)[variableName.substring(2)]\n ?? (ThemeVariables.INSTANCE as any)[camelCase(variableName.substring(2))]\n ?? fallback;\n }\n val = val.replace(s, resolvedValue);\n if (isNumber(resolvedValue)\n && val.trim() === (resolvedValue + '')) {\n val = resolvedValue;\n } else {\n val = this.replaceVariables(val, baseTokens, classNames, inheritedTokens);\n }\n });\n }\n if(isString(val) && val.match(/^-?\\d+(\\.\\d+)?$/)) {\n return parseFloat(val);\n }\n return val;\n }\n\n clearCache() {\n this.cache = {};\n this.children.forEach((t) => t.clearCache());\n }\n\n registerStyle<T extends NamedStyles<any>>(fn: styleGeneratorFn<T>) {\n this.styleGenerators.push(fn);\n fn(ThemeVariables.INSTANCE, this.addStyle.bind(this));\n }\n\n checkStyleProperties(name: string, value : any) {\n if (isObject(value)) {\n Object.keys(value).map((k) => this.checkStyleProperties(k, (value as any)[k]));\n } else if(name && !(isString(value) && value.startsWith('calc(')) && !isValidStyleProp(name, value)) {\n console.log(\n `%cInvalid Style property in ${this.name}: ${getErrorMessage(name, value)}`,\n 'background-color: #FF0000;font-weight: bold; color: #fff'\n );\n console.log(`Refer: ${getStyleReference(name)}`);\n }\n }\n\n private addStyle<T extends NamedStyles<any>>(name: string, extend: string, style: T) {\n this.styles[name] = deepCopy(this.getStyle(extend), this.styles[name], style);\n }\n\n private addTrace(styleName: string, mergedChildstyle: any, childStyle: any, parentStyle?: any) {\n if (!this.traceEnabled) {\n return;\n }\n let addTrace = !isEmpty(childStyle);\n forEach(mergedChildstyle, (v: any, k: string) => {\n if (v && !isString(v) && !isArray(v) && isObject(v)) {\n addTrace = false;\n\n if (!isNativeStyle(k, 'property')) {\n this.addTrace(styleName + '.' + k, v, childStyle && childStyle[k], parentStyle && parentStyle[k])\n }\n }\n });\n if (addTrace) {\n mergedChildstyle['__trace'] = [\n {\n name: styleName,\n value: childStyle\n },\n ...(parentStyle?.__trace|| [])\n ];\n } else {\n mergedChildstyle['__trace'] = [...(parentStyle?.__trace|| [])];\n }\n }\n\n private flatten(style: any, prefix = \"\", result = {} as any) {\n let collect = !isEmpty(style);\n forEach(style, (v: any, k: string) => {\n if (v && !isString(v) && !isArray(v) && isObject(v)) {\n collect = false;\n this.flatten(v, (prefix ? prefix + '.' : '') + k, result)\n }\n });\n if (collect) {\n result[prefix] = style;\n }\n return result;\n }\n\n extractTopLevelVariables(style: Record<string, any>): Record<string, any> {\n const vars: Record<string, any> = {};\n for (const key in style) {\n if (key.startsWith('--')) {\n vars[key] = style[key];\n }\n }\n return vars;\n }\n\n mergeStyle(...styles: any) {\n const style = deepCopy(...styles);\n if (this.traceEnabled) {\n const flattenStyles = this.flatten(style);\n Object.keys(flattenStyles).forEach(k => {\n const s = flattenStyles[k];\n if (!isNativeStyle(k, 'path')) {\n s['__trace'] = flatten(reverse(styles.map((v: any) => {\n const cs = get(v, k);\n if (cs && cs.__trace) {\n return [...cs.__trace];\n }\n return [];\n }).filter((t: any) => t.length > 0)));\n }\n });\n }\n const baseTokens = this.extractTopLevelVariables(style)\n const classnames = Array.isArray(styles)\n ? styles.filter(isString).join(' ')\n : Object.values(styles).filter(isString).join(' ');\n\n return this.cleanseStyleProperties(style, baseTokens, classnames)\n }\n\n cleanseStyleProperties(style: any, baseTokens: any, classnames: any, inheritedTokens: Record<string, any> = {}) {\n if (!(style && isObject(style)) || isString(style) || isArray(style)) {\n return style;\n }\n style = style as any;\n if (isObject(style) && !isArray(style)) {\n const resolveStyle = (v: any, inheritedTokens: Record<string, any> = {}) => {\n v = this.replaceVariables(v, baseTokens, classnames, inheritedTokens);\n if (isString(v) && v.startsWith(\"color-mix(\")) {\n v = ColorMix.valueOf(v);\n }\n return v;\n };\n\n const classNames = Object.keys(style);\n const resolvedTokens = {...inheritedTokens};\n // For inline token in obj\n classNames.forEach(k => {\n if (k.startsWith('--')) {\n let v = resolveStyle((style as any)[k], resolvedTokens);\n resolvedTokens[k] = v;\n const variableName = k.substring(2);\n (ThemeVariables.INSTANCE as any)[variableName] = v;\n (ThemeVariables.INSTANCE as any)[camelCase(variableName)] = v;\n }\n });\n\n // For edge case when prop is before inline token\n classNames.forEach(k => {\n if (!k.startsWith('--')) {\n if (isObject((style as any)[k]) && !isArray((style as any)[k])) {\n this.cleanseStyleProperties((style as any)[k], baseTokens, classnames, resolvedTokens);\n } else {\n (style as any)[k] = resolveStyle((style as any)[k], resolvedTokens);\n }\n }\n });\n }\n if (!isNil(style['shadowRadius'])) {\n if (style['shadowRadius'] <= 0) {\n style['shadowColor'] = 'transparent';\n } else if (isNil(style['elevation'])) {\n style['elevation'] = 2;\n }\n }\n if (!isNil(style['margin'])) {\n style['marginLeft'] = style['marginLeft'] ?? style['margin'];\n style['marginRight'] = style['marginRight'] ?? style['margin'];\n style['marginTop'] = style['marginTop'] ?? style['margin'];\n style['marginBottom'] = style['marginBottom'] ?? style['margin'];\n delete style['margin'];\n }\n if (!isNil(style['opacity']) && typeof style['opacity'] === 'string' && style['opacity'].endsWith('%')) {\n const percentage = parseFloat(style['opacity']);\n if (!isNaN(percentage)) {\n style['opacity'] = percentage / 100;\n }\n }\n const processStyleValue = (value: any) => {\n if (typeof value === 'string') {\n const num = parseFloat(value);\n return isNaN(num) ? value : num;\n }\n return value;\n };\n\n /** True when borderWidth is a single value or shorthand that resolves to the same width on all sides. */\n const isUniformBorderWidthValue = (value: any): boolean => {\n if (value == null) {\n return false;\n }\n if (typeof value === 'number') {\n return !Number.isNaN(value);\n }\n if (typeof value === 'string') {\n const tokens = value.trim().split(/\\s+/).filter(Boolean);\n if (tokens.length <= 1) {\n return true;\n }\n const parsed = tokens.map((t) => processStyleValue(t));\n const [t, r = t, b = t, l = r] = parsed;\n return t === r && r === b && b === l;\n }\n if (isObject(value) && !isArray(value)) {\n const vals = Object.values(value).map((v) => processStyleValue(v));\n if (!vals.length) {\n return false;\n }\n return vals.every((v) => v === vals[0]);\n }\n if (typeof value !== 'object' && !isNaN(Number(value))) {\n return true;\n }\n return false;\n };\n\n const normalizeUniformBorderWidth = (value: any): any => {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n const tokens = value.trim().split(/\\s+/).filter(Boolean);\n return tokens.length ? processStyleValue(tokens[0]) : value;\n }\n if (isObject(value) && !isArray(value)) {\n const first = Object.values(value)[0];\n return processStyleValue(first);\n }\n if (typeof value !== 'object' && !isNaN(Number(value))) {\n return Number(value);\n }\n return value;\n };\n\n /** Border-like shorthands: only fill sides that are still nullish so explicit longhands (e.g. borderLeftWidth) win. */\n const mergeBorderLikeBoxModelResult = (target: any, result: Record<string, any>) => {\n Object.keys(result).forEach((key) => {\n target[key] = target[key] ?? result[key];\n });\n };\n\n const applyBoxModelProperty = (property: string, value: any) => {\n if (value == null) return;\n\n const result: any = {};\n const positions = ['Top', 'Right', 'Bottom', 'Left'];\n const isBorderRadius = property === 'border';\n const isBorderWidth = property === 'borderWidth';\n const borderRadiusKeys: Record<string, string> = {\n Top: 'borderTopLeftRadius',\n Right: 'borderTopRightRadius',\n Bottom: 'borderBottomRightRadius',\n Left: 'borderBottomLeftRadius'\n };\n const getProp = (pos: string) => {\n if (isBorderRadius) {\n return borderRadiusKeys[pos];\n } else if (isBorderWidth) {\n return `border${pos}Width`;\n }\n return property + pos;\n };\n if (typeof value === 'string') {\n const values = value.trim().split(/\\s+/).map(processStyleValue);\n const [t, r = t, b = t, l = r] = values; // Destructure with defaults\n\n result[getProp('Top')] = t;\n result[getProp('Right')] = r;\n result[getProp('Bottom')] = b;\n result[getProp('Left')] = l;\n\n }\n else if (typeof value === 'number' || !isNaN(Number(value))) {\n const numValue = Number(value);\n positions.forEach(pos => {\n result[getProp(pos)] = numValue;\n });\n }\n else if (isObject(value)) {\n Object.entries(value).forEach(([key, val]) => {\n const pos = key.charAt(0).toUpperCase() + key.slice(1).toLowerCase();\n result[getProp(pos)] = processStyleValue(val);\n });\n }\n if (Object.keys(result).length > 0) {\n if (property === 'padding' || property === 'margin' || property === 'border') {\n Object.assign(style, result);\n // foundation shorthand will take more priority\n } else {\n mergeBorderLikeBoxModelResult(style, result);\n //runtime default shorthand will be having more priority\n }\n }\n };\n const paddingPositions = ['Top', 'Right', 'Bottom', 'Left'];\n const hasOverridePadding = paddingPositions.some(pos =>\n !isNil(style[`_Padding${pos}`])\n );\n if (hasOverridePadding || !isNil(style['padding'])) {\n applyBoxModelProperty('padding', style['padding']);\n paddingPositions.forEach(pos => {\n const overrideKey = `_Padding${pos}`;\n const overrideValue = style[overrideKey];\n if (!isNil(overrideValue)) {\n style[`padding${pos}`] = processStyleValue(overrideValue);\n }\n delete style[overrideKey];\n });\n delete style['padding'];\n }\n\n if (!isNil(style['borderWidth'])) {\n const bw = style['borderWidth'];\n if (isUniformBorderWidthValue(bw)) {\n // Remove individual side widths so the uniform shorthand applies without conflict\n delete style['borderTopWidth'];\n delete style['borderRightWidth'];\n delete style['borderBottomWidth'];\n delete style['borderLeftWidth'];\n delete style['borderBottomColor'];\n delete style['borderBottomStyle'];\n style['borderWidth'] = normalizeUniformBorderWidth(bw);\n } else {\n applyBoxModelProperty('borderWidth', bw);\n delete style['borderWidth'];\n }\n }\n\n if (!isNil(style['borderRadius'])) {\n applyBoxModelProperty('border', style['borderRadius']);\n delete style['borderRadius'];\n // Non-uniform borderWidth shorthand is expanded at end of cleanse (after margin etc.) so it overrides per-side longhands.\n }\n\n if (!isNil(style['margin'])) {\n applyBoxModelProperty('margin', style['margin']);\n delete style['margin'];\n }\n if (this.revertLayoutToExpo50 && !isNil(style['flexDirection']) && style['flexDirection'] === 'row-reverse') {\n if (!isNil(style['paddingLeft']) || !isNil(style['paddingRight'])) {\n if (!isNil(style['paddingLeft']) && !isNil(style['paddingRight'])) {\n [style['paddingLeft'], style['paddingRight']] = [style['paddingRight'], style['paddingLeft']];\n } else {\n const [paddingLeft, paddingRight] = [style['paddingLeft'], style['paddingRight']];\n if (paddingLeft !== undefined) {\n style['paddingRight'] = paddingLeft;\n delete style['paddingLeft'];\n }\n if (paddingRight !== undefined) {\n style['paddingLeft'] = paddingRight;\n delete style['paddingRight'];\n }\n }\n }\n\n if (!isNil(style['marginLeft']) || !isNil(style['marginRight'])) {\n if (!isNil(style['marginLeft']) && !isNil(style['marginRight'])) {\n [style['marginLeft'], style['marginRight']] = [style['marginRight'], style['marginLeft']];\n } else {\n const [marginLeft, marginRight] = [style['marginLeft'], style['marginRight']];\n if (marginLeft !== undefined) {\n style['marginRight'] = marginLeft;\n delete style['marginLeft'];\n }\n if (marginRight !== undefined) {\n style['marginLeft'] = marginRight;\n delete style['marginRight'];\n }\n }\n }\n }\n if (!isNil(style['color']) && style['color'] === 'transparent') {\n style['color'] = 'rgba(255, 255, 255, 0)'\n }\n if (!isNil(style['color']) && style['color'] === 'transparent') {\n style['color'] = 'rgba(255, 255, 255, 0)'\n }\n let screenWidth = Dimensions.get('window').width;\n let screenHeight = Dimensions.get('window').height;\n Object.keys(style).forEach((k, i) => {\n let stylePropertyValue = style[k]\n if(typeof stylePropertyValue === 'string' && stylePropertyValue.endsWith('vw')) {\n stylePropertyValue = stylePropertyValue.replace('vw','')\n style[k] = Number(stylePropertyValue)/100 * screenWidth\n }\n if((typeof stylePropertyValue === 'string' && stylePropertyValue.endsWith('vh'))) {\n stylePropertyValue = stylePropertyValue.replace('vh','')\n style[k] = Number(stylePropertyValue)/100 * screenHeight\n }\n })\n return style;\n }\n\n getStyle(name: string) {\n let style = this.cache[name];\n if (style) {\n return style;\n }\n if (!name) {\n return {};\n }\n if (name.indexOf(' ') > 0) {\n style = this.mergeStyle(...(name.split(' ').map(c => this.getStyle(c))));\n } else {\n const parentStyle = this.parent && this.parent.getStyle(name);\n const mediaQuery = (this.styles[name] || {})['@media'];\n let clonedStyle: Record<string, any> = { root: {} }\n if (!mediaQuery || matchMedia(mediaQuery).matches) {\n clonedStyle = cloneDeep(this.styles[name]) || {} ;\n clonedStyle['root'] = clonedStyle['root'] || {};\n const extraTextStyles = (this.getTextStyle(clonedStyle) || {}) as any ;\n clonedStyle['text'] = Object.assign({}, extraTextStyles, clonedStyle['text'] || {});\n Object.keys(clonedStyle).forEach((k) => {\n const isValObject = isObject(clonedStyle[k]);\n if (!extraTextStyles[k] && (!isValObject || (k === 'shadowOffset'))) {\n clonedStyle['root'][k] = clonedStyle['root'][k] || clonedStyle[k]\n }\n });\n }\n if (this !== Theme.BASE && isWebPreviewMode()) {\n this.checkStyleProperties('', clonedStyle);\n }\n style = deepCopy(parentStyle, clonedStyle);\n this.addTrace(`@${this.name}:${name}`, style, clonedStyle, parentStyle);\n }\n this.cache[name] = style;\n return style;\n }\n\n $new(name = \"\", styles = {} as NamedStyles<any>) {\n const newTheme = new Theme(this, name);\n newTheme.reset(styles);\n this.children.push(newTheme);\n return newTheme;\n }\n\n destroy() {\n const i = this.parent.children.indexOf(this);\n if (i >= 0) {\n this.parent.children.splice(i, 1);\n }\n }\n\n getTextStyle(s: any) {\n if (!s) {\n return {};\n }\n const textStyle = {\n color: s.color,\n fontFamily: s.fontFamily,\n fontSize: s.fontSize,\n fontStyle: s.fontStyle,\n fontWeight: s.fontWeight,\n includeFontPadding: s.includeFontPadding,\n fontVariant: s.fontVariant,\n letterSpacing: s.letterSpacing,\n lineHeight: s.lineHeight,\n textAlign: s.textAlign,\n textAlignVertical: s.textAlignVertical,\n textDecorationColor: s.textDecorationColor,\n textDecorationStyle: s.textDecorationStyle,\n textShadowColor: s.textShadowColor,\n textShadowOffset: s.textShadowOffset,\n textShadowRadius: s.textShadowRadius,\n textTransform: s.textTransform,\n verticalAlign: s.verticalAlign,\n writingDirection: s.writingDirection,\n userSelect: s.userSelect,\n } as TextStyle;\n Object.keys(textStyle).forEach((k)=> {\n if(!(textStyle as any)[k]){\n delete (textStyle as any)[k];\n }\n })\n return textStyle;\n }\n\n reset(styles?: NamedStyles<any>) {\n this.styles = {};\n this.clearCache();\n if (styles) {\n this.registerStyle((themeVariables, addStyle) => {\n Object.keys(styles).forEach(k => {\n addStyle(k, '', styles[k] as any);\n });\n });\n } else {\n this.styleGenerators.forEach(fn =>\n fn(ThemeVariables.INSTANCE, this.addStyle.bind(this)));\n }\n this.notify(ThemeEvent.CHANGE);\n }\n}\nexport default Theme.BASE;\nexport type NamedStyles<T> = { [P in keyof T]: AllStyle | NamedStyles<T>};\nexport type BackgroundImageStyle = {\n backgroundImage: string,\n backgroundPosition: string,\n backgroundRepeat: string,\n backgroundSize: string | number\n};\n\nexport type AllStyle = (ViewStyle & TextStyle & ImageStyle & {userSelect?: 'none'| 'text'} & {rippleColor?: string});\n\nconst ThemeContext = React.createContext<Theme>(null as any);\n\nexport const ThemeProvider = ThemeContext.Provider;\nexport const ThemeConsumer = ThemeContext.Consumer;\n/**\n * Common styles\n */\n Theme.BASE.registerStyle((themeVariables, addStyle) => {\n const addColStyles = (device: string, minWidth: string) => {\n for(let i = 1; i <= 12; i++) {\n addStyle(`col-${device}-${i}`, '', {\n \"@media\": `(min-width: ${minWidth})`,\n root: {\n width: (100 * i / 12) + '%'\n }\n } as any)\n }\n };\n addColStyles('xs', getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'));\n addColStyles('sm', getBreakPointValue('MIN_SMALL_DEVICE'));\n addColStyles('md', getBreakPointValue('MIN_MEDIUM_DEVICE'));\n addColStyles('lg', getBreakPointValue('MIN_LARGE_DEVICE'));\n\n addStyle('d-none', '', {\n root: {\n display: 'none'\n }\n } as any);\n addStyle('d-flex', '', {\n root: {\n display: 'flex'\n }\n } as any);\n\n const addDisplayStyles = (device: string, minWidth: string, maxWidth: string) => {\n addStyle(`d-${device}-none`, '', {\n \"@media\": `(min-width: ${minWidth}) and (max-width: ${maxWidth})`,\n root: {\n display: 'none'\n }\n } as any);\n addStyle(`d-${device}-flex`, '', {\n \"@media\": `(min-width: ${minWidth}) and (max-width: ${maxWidth})`,\n root: {\n display: 'flex'\n }\n } as any);\n };\n addDisplayStyles('all',\n getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'),\n getBreakPointValue('MAX_LARGE_DEVICE'));\n addDisplayStyles('xs',\n getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'),\n getBreakPointValue('MAX_EXTRA_SMALL_DEVICE'));\n addDisplayStyles('sm',\n getBreakPointValue('MIN_SMALL_DEVICE'),\n getBreakPointValue('MAX_SMALL_DEVICE'));\n addDisplayStyles('md',\n getBreakPointValue('MIN_MEDIUM_DEVICE'),\n getBreakPointValue('MAX_MEDIUM_DEVICE'));\n addDisplayStyles('lg',\n getBreakPointValue('MIN_LARGE_DEVICE'),\n getBreakPointValue('MAX_LARGE_DEVICE'));\n\n const addElevationClasses = () => {\n for(let i = 1; i <= 10; i++) {\n addStyle(`elevate${i}`, '', {\n root : {\n boxShadow: `${i}px ${i}px ${i}px rgba(0, 0, 0, 0.27)`,\n zIndex: 1\n }\n });\n }\n };\n addElevationClasses();\n addStyle('hidden', '', {\n root: Platform.OS === 'web' ? {\n display: 'none'\n } : {\n width: 0,\n height: 0,\n transform: [{ scale: 0 }],\n overflow: 'hidden'\n }\n });\n addStyle('bg-danger', '', { root: { backgroundColor: themeVariables.dangerColor }});\n addStyle('bg-info', '', { root: { backgroundColor: themeVariables.infoColor }});\n addStyle('bg-primary', '', { root: { backgroundColor: themeVariables.primaryColor }});\n addStyle('bg-success', '', { root: { backgroundColor: themeVariables.successColor }});\n addStyle('bg-warning', '', { root: { backgroundColor: themeVariables.warningColor }});\n\n addStyle('border-danger', '', { root: { borderColor: themeVariables.dangerColor }});\n addStyle('border-info', '', { root: { borderColor: themeVariables.infoColor }});\n addStyle('border-primary', '', { root: { borderColor: themeVariables.primaryColor }});\n addStyle('border-success', '', { root: { borderColor: themeVariables.successColor }});\n addStyle('border-warning', '', { root: { borderColor: themeVariables.warningColor }});\n\n addStyle('hide-context-menu', '', { text: { userSelect: 'none' }});\n addStyle('hide-context-menu-input', '', { text: { userSelect: 'none' }});\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["cloneDeep","isNil","forEach","flatten","isArray","isEmpty","isObject","isString","get","reverse","isNumber","React","camelCase","Dimensions","Platform","deepCopy","isWebPreviewMode","EventNotifier","ViewPort","EVENTS","ViewPortEvents","MediaQueryList","ThemeVariables","ColorMix","getErrorMessage","getStyleReference","isValidStyleProp","injector","isNativeStyle","DEFAULT_CLASS","window","matchMedia","query","DEVICE_BREAK_POINTS","DEVICE_BREAK_POINTS_NATIVE_MOBILE","getBreakPointValue","name","OS","splitVarArguments","content","depth","i","length","c","variableName","substring","trim","fallback","ThemeEvent","Theme","constructor","parent","_this$getAppConfig","_defineProperty","revertLayoutToExpo50","getAppConfig","traceEnabled","enableTrace","flag","resetCache","reset","children","t","subscribe","event","fn","eventNotifer","notify","replaceVariables","val","baseTokens","classNames","inheritedTokens","match","s","resolvedValue","variants","INSTANCE","classList","split","cls","_ref","_ref2","_ref3","_ref4","_ref5","_inheritedTokens$vari","replace","parseFloat","clearCache","cache","registerStyle","styleGenerators","push","addStyle","bind","handleMediaQueryStyles","styles","mediaQueries","Object","keys","item","test","matches","mediaQueryCondition","mediaQueryStyles","checkStyleProperties","value","map","k","startsWith","console","log","extend","style","getStyle","addTrace","styleName","mergedChildstyle","childStyle","parentStyle","v","__trace","prefix","result","collect","extractTopLevelVariables","vars","key","mergeStyle","flattenStyles","cs","filter","classnames","Array","join","values","cleanseStyleProperties","resolveStyle","valueOf","resolvedTokens","_style$marginLeft","_style$marginRight","_style$marginTop","_style$marginBottom","endsWith","percentage","isNaN","processStyleValue","num","isUniformBorderWidthValue","Number","tokens","Boolean","parsed","r","b","l","vals","every","normalizeUniformBorderWidth","first","mergeBorderLikeBoxModelResult","target","_target$key","applyBoxModelProperty","property","positions","isBorderRadius","isBorderWidth","borderRadiusKeys","Top","Right","Bottom","Left","getProp","pos","numValue","entries","charAt","toUpperCase","slice","toLowerCase","assign","paddingPositions","hasOverridePadding","some","overrideKey","overrideValue","bw","paddingLeft","paddingRight","undefined","marginLeft","marginRight","screenWidth","width","screenHeight","height","stylePropertyValue","indexOf","mediaQuery","clonedStyle","root","extraTextStyles","getTextStyle","isValObject","BASE","$new","newTheme","destroy","splice","textStyle","color","fontFamily","fontSize","fontStyle","fontWeight","includeFontPadding","fontVariant","letterSpacing","lineHeight","textAlign","textAlignVertical","textDecorationColor","textDecorationStyle","textShadowColor","textShadowOffset","textShadowRadius","textTransform","verticalAlign","writingDirection","userSelect","filteredStyles","themeVariables","CHANGE","_Theme","SIZE_CHANGE","ThemeContext","createContext","ThemeProvider","Provider","ThemeConsumer","Consumer","addColStyles","device","minWidth","display","addDisplayStyles","maxWidth","addElevationClasses","boxShadow","zIndex","transform","scale","overflow","backgroundColor","dangerColor","infoColor","primaryColor","successColor","warningColor","borderColor","text"],"sources":["theme.tsx"],"sourcesContent":["import { cloneDeep, isNil, forEach, flatten, isArray, isEmpty, isObject, isString, get, reverse, isNumber } from 'lodash';\nimport React from 'react';\nimport { camelCase } from 'lodash-es';\nimport { TextStyle, ViewStyle, ImageStyle, ImageBackground, Dimensions, Platform } from 'react-native';\nimport { deepCopy, isWebPreviewMode } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport EventNotifier from '@wavemaker-ai/app-rn-runtime/core/event-notifier';\nimport ViewPort, {EVENTS as ViewPortEvents} from '@wavemaker-ai/app-rn-runtime/core/viewport';\nimport MediaQueryList from './MediaQueryList';\nimport ThemeVariables from './theme.variables';\nimport ColorMix from './color-mix';\nimport { getErrorMessage, getStyleReference, isValidStyleProp } from './style-prop.validator';\nimport injector from '@wavemaker-ai/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker-ai/app-rn-runtime/core/AppConfig';\nimport { isNativeStyle} from '@wavemaker-ai/app-rn-runtime/core/utils';\nexport const DEFAULT_CLASS = 'DEFAULT_CLASS';\n\ndeclare const matchMedia: any, window: any;\n\nif (typeof window !== \"undefined\") {\n // @ts-ignore: does not properly extend MediaQueryList\n window.matchMedia = (query: string) => new MediaQueryList(query);\n}\n\nexport const DEVICE_BREAK_POINTS: {[key: string]: string} = {\n 'MIN_EXTRA_SMALL_DEVICE' : '0px',\n 'MAX_EXTRA_SMALL_DEVICE' : '767px',\n 'MIN_SMALL_DEVICE' : '768px',\n 'MAX_SMALL_DEVICE' : '991px',\n 'MIN_MEDIUM_DEVICE' : '992px',\n 'MAX_MEDIUM_DEVICE' : '1199px',\n 'MIN_LARGE_DEVICE' : '1200px',\n 'MAX_LARGE_DEVICE' : '1000000px',\n};\n\nexport const DEVICE_BREAK_POINTS_NATIVE_MOBILE: {[key: string]: string} = {\n 'MIN_EXTRA_SMALL_DEVICE': '0px', // 0-479px (phones portrait)\n 'MAX_EXTRA_SMALL_DEVICE': '479px',\n 'MIN_SMALL_DEVICE': '480px', // 480-767px (phones landscape, small tablets portrait)\n 'MAX_SMALL_DEVICE': '767px',\n 'MIN_MEDIUM_DEVICE': '768px', // 768-1023px (tablets portrait, small laptops)\n 'MAX_MEDIUM_DEVICE': '1023px',\n 'MIN_LARGE_DEVICE': '1024px', // 1024px+ (tablets landscape, desktops)\n 'MAX_LARGE_DEVICE': '1000000px',\n};\n\nexport const getBreakPointValue = (name: string) => {\n if(Platform.OS === 'web') {\n return DEVICE_BREAK_POINTS[name];\n }\n\n return DEVICE_BREAK_POINTS_NATIVE_MOBILE[name];\n}\n\n/** Split `var()` inner content into custom property name and optional fallback. Only commas outside `()` count (so rgba(), linear-gradient(), etc. stay intact). */\nfunction splitVarArguments(content: string): { variableName: string; fallback?: string } {\n let depth = 0;\n for (let i = 0; i < content.length; i++) {\n const c = content[i];\n if (c === '(') {\n depth++;\n } else if (c === ')') {\n depth--;\n } else if (c === ',' && depth === 0) {\n return {\n variableName: content.substring(0, i).trim(),\n fallback: content.substring(i + 1).trim(),\n };\n }\n }\n return { variableName: content.trim() };\n}\n\nexport type styleGeneratorFn<T extends NamedStyles<any>> = (\n themeVariables: ThemeVariables,\n addStyle: (name: string, extend: string, style: T) => void) => void\n\nexport enum ThemeEvent {\n CHANGE ='change'\n};\n\nexport class Theme {\n public static BASE = new Theme(null as any, 'default');\n\n static {\n ViewPort.subscribe(ViewPortEvents.SIZE_CHANGE, () => {\n Theme.BASE.reset();\n });\n }\n\n\n private eventNotifer = new EventNotifier();\n\n private children: Theme[] = [];\n\n private styles: any = {};\n\n private cache: any = {};\n\n private traceEnabled = false;\n\n private revertLayoutToExpo50: Boolean;\n\n private styleGenerators: styleGeneratorFn<any>[] = [];\n\n private constructor(private parent:Theme, public readonly name: string) {\n this.revertLayoutToExpo50 = this.getAppConfig()?.revertLayoutToExpo50 || false;\n if (parent) {\n this.traceEnabled = parent.traceEnabled;\n } else {\n this.traceEnabled = isWebPreviewMode();\n }\n }\n\n private getAppConfig() {\n return injector.get<AppConfig>('APP_CONFIG');\n }\n\n public enableTrace(flag: boolean, resetCache: boolean = true) {\n this.traceEnabled = flag;\n if (resetCache && resetCache !== 'false' as any){\n this.reset();\n }\n this.children.forEach(t => t.enableTrace(flag, resetCache));\n }\n\n public subscribe(event: ThemeEvent, fn: Function) {\n return this.eventNotifer.subscribe(event, fn);\n }\n\n public notify(event: ThemeEvent): void {\n this.eventNotifer.notify(event, []);\n this.children.forEach(t => t.notify(event));\n }\n\n private replaceVariables(val: any, baseTokens: any, classNames: any, inheritedTokens: Record<string, any> = {}) {\n if(isString(val)) {\n (val.match(/_*var\\([^\\)]*\\)/g) || []).forEach((s) => {\n const content = s.substring(4, s.length - 1);\n const { variableName, fallback } = splitVarArguments(content);\n let resolvedValue;\n let variants: any = (ThemeVariables.INSTANCE as any).variants;\n if (variants && typeof classNames === 'string') {\n const classList = classNames.split(/\\s+/);\n for (const cls of classList) {\n if (variants[cls] && variants[cls][variableName]) {\n resolvedValue = variants[cls][variableName];\n break;\n }\n }\n }\n if (!resolvedValue) {\n resolvedValue = inheritedTokens[variableName] ?? inheritedTokens[`--${variableName}`] ?? baseTokens[variableName]\n ?? (ThemeVariables.INSTANCE as any)[variableName]\n ?? (ThemeVariables.INSTANCE as any)[variableName.substring(2)]\n ?? (ThemeVariables.INSTANCE as any)[camelCase(variableName.substring(2))]\n ?? fallback;\n }\n val = val.replace(s, resolvedValue);\n if (isNumber(resolvedValue)\n && val.trim() === (resolvedValue + '')) {\n val = resolvedValue;\n } else {\n val = this.replaceVariables(val, baseTokens, classNames, inheritedTokens);\n }\n });\n }\n if(isString(val) && val.match(/^-?\\d+(\\.\\d+)?$/)) {\n return parseFloat(val);\n }\n return val;\n }\n\n clearCache() {\n this.cache = {};\n this.children.forEach((t) => t.clearCache());\n }\n\n registerStyle<T extends NamedStyles<any>>(fn: styleGeneratorFn<T>) {\n this.styleGenerators.push(fn);\n fn(ThemeVariables.INSTANCE, this.addStyle.bind(this));\n }\n\n handleMediaQueryStyles(styles: NamedStyles<any> ){\n const mediaQueries: string[] = [];\n Object.keys(styles).forEach((item: string) => {\n if(/@media/.test(item) && matchMedia(item.replace('@media ', '')).matches) {\n mediaQueries.push(item);\n }\n })\n\n if(mediaQueries.length === 0) {\n return styles;\n }\n\n mediaQueries.forEach((mediaQueryCondition: string) => {\n const mediaQueryStyles = styles[mediaQueryCondition];\n Object.keys(mediaQueryStyles).forEach((item: string) => {\n styles[item] = (mediaQueryStyles as any)[item];\n }) \n })\n return styles;\n }\n\n checkStyleProperties(name: string, value : any) {\n if (isObject(value)) {\n Object.keys(value).map((k) => this.checkStyleProperties(k, (value as any)[k]));\n } else if(name && !(isString(value) && value.startsWith('calc(')) && !isValidStyleProp(name, value)) {\n console.log(\n `%cInvalid Style property in ${this.name}: ${getErrorMessage(name, value)}`,\n 'background-color: #FF0000;font-weight: bold; color: #fff'\n );\n console.log(`Refer: ${getStyleReference(name)}`);\n }\n }\n\n private addStyle<T extends NamedStyles<any>>(name: string, extend: string, style: T) {\n this.styles[name] = deepCopy(this.getStyle(extend), this.styles[name], style);\n }\n\n private addTrace(styleName: string, mergedChildstyle: any, childStyle: any, parentStyle?: any) {\n if (!this.traceEnabled) {\n return;\n }\n let addTrace = !isEmpty(childStyle);\n forEach(mergedChildstyle, (v: any, k: string) => {\n if (v && !isString(v) && !isArray(v) && isObject(v)) {\n addTrace = false;\n\n if (!isNativeStyle(k, 'property')) {\n this.addTrace(styleName + '.' + k, v, childStyle && childStyle[k], parentStyle && parentStyle[k])\n }\n }\n });\n if (addTrace) {\n mergedChildstyle['__trace'] = [\n {\n name: styleName,\n value: childStyle\n },\n ...(parentStyle?.__trace|| [])\n ];\n } else {\n mergedChildstyle['__trace'] = [...(parentStyle?.__trace|| [])];\n }\n }\n\n private flatten(style: any, prefix = \"\", result = {} as any) {\n let collect = !isEmpty(style);\n forEach(style, (v: any, k: string) => {\n if (v && !isString(v) && !isArray(v) && isObject(v)) {\n collect = false;\n this.flatten(v, (prefix ? prefix + '.' : '') + k, result)\n }\n });\n if (collect) {\n result[prefix] = style;\n }\n return result;\n }\n\n extractTopLevelVariables(style: Record<string, any>): Record<string, any> {\n const vars: Record<string, any> = {};\n for (const key in style) {\n if (key.startsWith('--')) {\n vars[key] = style[key];\n }\n }\n return vars;\n }\n\n mergeStyle(...styles: any) {\n const style = deepCopy(...styles);\n if (this.traceEnabled) {\n const flattenStyles = this.flatten(style);\n Object.keys(flattenStyles).forEach(k => {\n const s = flattenStyles[k];\n if (!isNativeStyle(k, 'path')) {\n s['__trace'] = flatten(reverse(styles.map((v: any) => {\n const cs = get(v, k);\n if (cs && cs.__trace) {\n return [...cs.__trace];\n }\n return [];\n }).filter((t: any) => t.length > 0)));\n }\n });\n }\n const baseTokens = this.extractTopLevelVariables(style)\n const classnames = Array.isArray(styles)\n ? styles.filter(isString).join(' ')\n : Object.values(styles).filter(isString).join(' ');\n\n return this.cleanseStyleProperties(style, baseTokens, classnames)\n }\n\n cleanseStyleProperties(style: any, baseTokens: any, classnames: any, inheritedTokens: Record<string, any> = {}) {\n if (!(style && isObject(style)) || isString(style) || isArray(style)) {\n return style;\n }\n style = style as any;\n if (isObject(style) && !isArray(style)) {\n const resolveStyle = (v: any, inheritedTokens: Record<string, any> = {}) => {\n v = this.replaceVariables(v, baseTokens, classnames, inheritedTokens);\n if (isString(v) && v.startsWith(\"color-mix(\")) {\n v = ColorMix.valueOf(v);\n }\n return v;\n };\n\n const classNames = Object.keys(style);\n const resolvedTokens = {...inheritedTokens};\n // For inline token in obj\n classNames.forEach(k => {\n if (k.startsWith('--')) {\n let v = resolveStyle((style as any)[k], resolvedTokens);\n resolvedTokens[k] = v;\n const variableName = k.substring(2);\n (ThemeVariables.INSTANCE as any)[variableName] = v;\n (ThemeVariables.INSTANCE as any)[camelCase(variableName)] = v;\n }\n });\n\n // For edge case when prop is before inline token\n classNames.forEach(k => {\n if (!k.startsWith('--')) {\n if (isObject((style as any)[k]) && !isArray((style as any)[k])) {\n this.cleanseStyleProperties((style as any)[k], baseTokens, classnames, resolvedTokens);\n } else {\n (style as any)[k] = resolveStyle((style as any)[k], resolvedTokens);\n }\n }\n });\n }\n if (!isNil(style['shadowRadius'])) {\n if (style['shadowRadius'] <= 0) {\n style['shadowColor'] = 'transparent';\n } else if (isNil(style['elevation'])) {\n style['elevation'] = 2;\n }\n }\n if (!isNil(style['margin'])) {\n style['marginLeft'] = style['marginLeft'] ?? style['margin'];\n style['marginRight'] = style['marginRight'] ?? style['margin'];\n style['marginTop'] = style['marginTop'] ?? style['margin'];\n style['marginBottom'] = style['marginBottom'] ?? style['margin'];\n delete style['margin'];\n }\n if (!isNil(style['opacity']) && typeof style['opacity'] === 'string' && style['opacity'].endsWith('%')) {\n const percentage = parseFloat(style['opacity']);\n if (!isNaN(percentage)) {\n style['opacity'] = percentage / 100;\n }\n }\n const processStyleValue = (value: any) => {\n if (typeof value === 'string') {\n const num = parseFloat(value);\n return isNaN(num) ? value : num;\n }\n return value;\n };\n\n /** True when borderWidth is a single value or shorthand that resolves to the same width on all sides. */\n const isUniformBorderWidthValue = (value: any): boolean => {\n if (value == null) {\n return false;\n }\n if (typeof value === 'number') {\n return !Number.isNaN(value);\n }\n if (typeof value === 'string') {\n const tokens = value.trim().split(/\\s+/).filter(Boolean);\n if (tokens.length <= 1) {\n return true;\n }\n const parsed = tokens.map((t) => processStyleValue(t));\n const [t, r = t, b = t, l = r] = parsed;\n return t === r && r === b && b === l;\n }\n if (isObject(value) && !isArray(value)) {\n const vals = Object.values(value).map((v) => processStyleValue(v));\n if (!vals.length) {\n return false;\n }\n return vals.every((v) => v === vals[0]);\n }\n if (typeof value !== 'object' && !isNaN(Number(value))) {\n return true;\n }\n return false;\n };\n\n const normalizeUniformBorderWidth = (value: any): any => {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n const tokens = value.trim().split(/\\s+/).filter(Boolean);\n return tokens.length ? processStyleValue(tokens[0]) : value;\n }\n if (isObject(value) && !isArray(value)) {\n const first = Object.values(value)[0];\n return processStyleValue(first);\n }\n if (typeof value !== 'object' && !isNaN(Number(value))) {\n return Number(value);\n }\n return value;\n };\n\n /** Border-like shorthands: only fill sides that are still nullish so explicit longhands (e.g. borderLeftWidth) win. */\n const mergeBorderLikeBoxModelResult = (target: any, result: Record<string, any>) => {\n Object.keys(result).forEach((key) => {\n target[key] = target[key] ?? result[key];\n });\n };\n\n const applyBoxModelProperty = (property: string, value: any) => {\n if (value == null) return;\n\n const result: any = {};\n const positions = ['Top', 'Right', 'Bottom', 'Left'];\n const isBorderRadius = property === 'border';\n const isBorderWidth = property === 'borderWidth';\n const borderRadiusKeys: Record<string, string> = {\n Top: 'borderTopLeftRadius',\n Right: 'borderTopRightRadius',\n Bottom: 'borderBottomRightRadius',\n Left: 'borderBottomLeftRadius'\n };\n const getProp = (pos: string) => {\n if (isBorderRadius) {\n return borderRadiusKeys[pos];\n } else if (isBorderWidth) {\n return `border${pos}Width`;\n }\n return property + pos;\n };\n if (typeof value === 'string') {\n const values = value.trim().split(/\\s+/).map(processStyleValue);\n const [t, r = t, b = t, l = r] = values; // Destructure with defaults\n\n result[getProp('Top')] = t;\n result[getProp('Right')] = r;\n result[getProp('Bottom')] = b;\n result[getProp('Left')] = l;\n\n }\n else if (typeof value === 'number' || !isNaN(Number(value))) {\n const numValue = Number(value);\n positions.forEach(pos => {\n result[getProp(pos)] = numValue;\n });\n }\n else if (isObject(value)) {\n Object.entries(value).forEach(([key, val]) => {\n const pos = key.charAt(0).toUpperCase() + key.slice(1).toLowerCase();\n result[getProp(pos)] = processStyleValue(val);\n });\n }\n if (Object.keys(result).length > 0) {\n if (property === 'padding' || property === 'margin' || property === 'border') {\n Object.assign(style, result);\n // foundation shorthand will take more priority\n } else {\n mergeBorderLikeBoxModelResult(style, result);\n //runtime default shorthand will be having more priority\n }\n }\n };\n const paddingPositions = ['Top', 'Right', 'Bottom', 'Left'];\n const hasOverridePadding = paddingPositions.some(pos =>\n !isNil(style[`_Padding${pos}`])\n );\n if (hasOverridePadding || !isNil(style['padding'])) {\n applyBoxModelProperty('padding', style['padding']);\n paddingPositions.forEach(pos => {\n const overrideKey = `_Padding${pos}`;\n const overrideValue = style[overrideKey];\n if (!isNil(overrideValue)) {\n style[`padding${pos}`] = processStyleValue(overrideValue);\n }\n delete style[overrideKey];\n });\n delete style['padding'];\n }\n\n if (!isNil(style['borderWidth'])) {\n const bw = style['borderWidth'];\n if (isUniformBorderWidthValue(bw)) {\n // Remove individual side widths so the uniform shorthand applies without conflict\n delete style['borderTopWidth'];\n delete style['borderRightWidth'];\n delete style['borderBottomWidth'];\n delete style['borderLeftWidth'];\n delete style['borderBottomColor'];\n delete style['borderBottomStyle'];\n style['borderWidth'] = normalizeUniformBorderWidth(bw);\n } else {\n applyBoxModelProperty('borderWidth', bw);\n delete style['borderWidth'];\n }\n }\n\n if (!isNil(style['borderRadius'])) {\n applyBoxModelProperty('border', style['borderRadius']);\n delete style['borderRadius'];\n // Non-uniform borderWidth shorthand is expanded at end of cleanse (after margin etc.) so it overrides per-side longhands.\n }\n\n if (!isNil(style['margin'])) {\n applyBoxModelProperty('margin', style['margin']);\n delete style['margin'];\n }\n if (this.revertLayoutToExpo50 && !isNil(style['flexDirection']) && style['flexDirection'] === 'row-reverse') {\n if (!isNil(style['paddingLeft']) || !isNil(style['paddingRight'])) {\n if (!isNil(style['paddingLeft']) && !isNil(style['paddingRight'])) {\n [style['paddingLeft'], style['paddingRight']] = [style['paddingRight'], style['paddingLeft']];\n } else {\n const [paddingLeft, paddingRight] = [style['paddingLeft'], style['paddingRight']];\n if (paddingLeft !== undefined) {\n style['paddingRight'] = paddingLeft;\n delete style['paddingLeft'];\n }\n if (paddingRight !== undefined) {\n style['paddingLeft'] = paddingRight;\n delete style['paddingRight'];\n }\n }\n }\n\n if (!isNil(style['marginLeft']) || !isNil(style['marginRight'])) {\n if (!isNil(style['marginLeft']) && !isNil(style['marginRight'])) {\n [style['marginLeft'], style['marginRight']] = [style['marginRight'], style['marginLeft']];\n } else {\n const [marginLeft, marginRight] = [style['marginLeft'], style['marginRight']];\n if (marginLeft !== undefined) {\n style['marginRight'] = marginLeft;\n delete style['marginLeft'];\n }\n if (marginRight !== undefined) {\n style['marginLeft'] = marginRight;\n delete style['marginRight'];\n }\n }\n }\n }\n if (!isNil(style['color']) && style['color'] === 'transparent') {\n style['color'] = 'rgba(255, 255, 255, 0)'\n }\n if (!isNil(style['color']) && style['color'] === 'transparent') {\n style['color'] = 'rgba(255, 255, 255, 0)'\n }\n let screenWidth = Dimensions.get('window').width;\n let screenHeight = Dimensions.get('window').height;\n Object.keys(style).forEach((k, i) => {\n let stylePropertyValue = style[k]\n if(typeof stylePropertyValue === 'string' && stylePropertyValue.endsWith('vw')) {\n stylePropertyValue = stylePropertyValue.replace('vw','')\n style[k] = Number(stylePropertyValue)/100 * screenWidth\n }\n if((typeof stylePropertyValue === 'string' && stylePropertyValue.endsWith('vh'))) {\n stylePropertyValue = stylePropertyValue.replace('vh','')\n style[k] = Number(stylePropertyValue)/100 * screenHeight\n }\n })\n return style;\n }\n\n getStyle(name: string) {\n let style = this.cache[name];\n if (style) {\n return style;\n }\n if (!name) {\n return {};\n }\n if (name.indexOf(' ') > 0) {\n style = this.mergeStyle(...(name.split(' ').map(c => this.getStyle(c))));\n } else {\n const parentStyle = this.parent && this.parent.getStyle(name);\n const mediaQuery = (this.styles[name] || {})['@media'];\n let clonedStyle: Record<string, any> = { root: {} }\n if (!mediaQuery || matchMedia(mediaQuery).matches) {\n clonedStyle = cloneDeep(this.styles[name]) || {} ;\n clonedStyle['root'] = clonedStyle['root'] || {};\n const extraTextStyles = (this.getTextStyle(clonedStyle) || {}) as any ;\n clonedStyle['text'] = Object.assign({}, extraTextStyles, clonedStyle['text'] || {});\n Object.keys(clonedStyle).forEach((k) => {\n const isValObject = isObject(clonedStyle[k]);\n if (!extraTextStyles[k] && (!isValObject || (k === 'shadowOffset'))) {\n clonedStyle['root'][k] = clonedStyle['root'][k] || clonedStyle[k]\n }\n });\n }\n if (this !== Theme.BASE && isWebPreviewMode()) {\n this.checkStyleProperties('', clonedStyle);\n }\n style = deepCopy(parentStyle, clonedStyle);\n this.addTrace(`@${this.name}:${name}`, style, clonedStyle, parentStyle);\n }\n this.cache[name] = style;\n return style;\n }\n\n $new(name = \"\", styles = {} as NamedStyles<any>) {\n const newTheme = new Theme(this, name);\n newTheme.reset(styles);\n this.children.push(newTheme);\n return newTheme;\n }\n\n destroy() {\n const i = this.parent.children.indexOf(this);\n if (i >= 0) {\n this.parent.children.splice(i, 1);\n }\n }\n\n getTextStyle(s: any) {\n if (!s) {\n return {};\n }\n const textStyle = {\n color: s.color,\n fontFamily: s.fontFamily,\n fontSize: s.fontSize,\n fontStyle: s.fontStyle,\n fontWeight: s.fontWeight,\n includeFontPadding: s.includeFontPadding,\n fontVariant: s.fontVariant,\n letterSpacing: s.letterSpacing,\n lineHeight: s.lineHeight,\n textAlign: s.textAlign,\n textAlignVertical: s.textAlignVertical,\n textDecorationColor: s.textDecorationColor,\n textDecorationStyle: s.textDecorationStyle,\n textShadowColor: s.textShadowColor,\n textShadowOffset: s.textShadowOffset,\n textShadowRadius: s.textShadowRadius,\n textTransform: s.textTransform,\n verticalAlign: s.verticalAlign,\n writingDirection: s.writingDirection,\n userSelect: s.userSelect,\n } as TextStyle;\n Object.keys(textStyle).forEach((k)=> {\n if(!(textStyle as any)[k]){\n delete (textStyle as any)[k];\n }\n })\n return textStyle;\n }\n\n reset(styles?: NamedStyles<any>) {\n this.styles = {};\n this.clearCache();\n if (styles) {\n const filteredStyles = this.handleMediaQueryStyles(styles);\n\n this.registerStyle((themeVariables, addStyle) => {\n Object.keys(filteredStyles).forEach(k => {\n addStyle(k, '', filteredStyles[k] as any);\n });\n });\n } else {\n this.styleGenerators.forEach(fn =>\n fn(ThemeVariables.INSTANCE, this.addStyle.bind(this)));\n }\n this.notify(ThemeEvent.CHANGE);\n }\n}\nexport default Theme.BASE;\nexport type NamedStyles<T> = { [P in keyof T]: AllStyle | NamedStyles<T>};\nexport type BackgroundImageStyle = {\n backgroundImage: string,\n backgroundPosition: string,\n backgroundRepeat: string,\n backgroundSize: string | number\n};\n\nexport type AllStyle = (ViewStyle & TextStyle & ImageStyle & {userSelect?: 'none'| 'text'} & {rippleColor?: string});\n\nconst ThemeContext = React.createContext<Theme>(null as any);\n\nexport const ThemeProvider = ThemeContext.Provider;\nexport const ThemeConsumer = ThemeContext.Consumer;\n/**\n * Common styles\n */\n Theme.BASE.registerStyle((themeVariables, addStyle) => {\n const addColStyles = (device: string, minWidth: string) => {\n for(let i = 1; i <= 12; i++) {\n addStyle(`col-${device}-${i}`, '', {\n \"@media\": `(min-width: ${minWidth})`,\n root: {\n width: (100 * i / 12) + '%'\n }\n } as any)\n }\n };\n addColStyles('xs', getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'));\n addColStyles('sm', getBreakPointValue('MIN_SMALL_DEVICE'));\n addColStyles('md', getBreakPointValue('MIN_MEDIUM_DEVICE'));\n addColStyles('lg', getBreakPointValue('MIN_LARGE_DEVICE'));\n\n addStyle('d-none', '', {\n root: {\n display: 'none'\n }\n } as any);\n addStyle('d-flex', '', {\n root: {\n display: 'flex'\n }\n } as any);\n\n const addDisplayStyles = (device: string, minWidth: string, maxWidth: string) => {\n addStyle(`d-${device}-none`, '', {\n \"@media\": `(min-width: ${minWidth}) and (max-width: ${maxWidth})`,\n root: {\n display: 'none'\n }\n } as any);\n addStyle(`d-${device}-flex`, '', {\n \"@media\": `(min-width: ${minWidth}) and (max-width: ${maxWidth})`,\n root: {\n display: 'flex'\n }\n } as any);\n };\n addDisplayStyles('all',\n getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'),\n getBreakPointValue('MAX_LARGE_DEVICE'));\n addDisplayStyles('xs',\n getBreakPointValue('MIN_EXTRA_SMALL_DEVICE'),\n getBreakPointValue('MAX_EXTRA_SMALL_DEVICE'));\n addDisplayStyles('sm',\n getBreakPointValue('MIN_SMALL_DEVICE'),\n getBreakPointValue('MAX_SMALL_DEVICE'));\n addDisplayStyles('md',\n getBreakPointValue('MIN_MEDIUM_DEVICE'),\n getBreakPointValue('MAX_MEDIUM_DEVICE'));\n addDisplayStyles('lg',\n getBreakPointValue('MIN_LARGE_DEVICE'),\n getBreakPointValue('MAX_LARGE_DEVICE'));\n\n const addElevationClasses = () => {\n for(let i = 1; i <= 10; i++) {\n addStyle(`elevate${i}`, '', {\n root : {\n boxShadow: `${i}px ${i}px ${i}px rgba(0, 0, 0, 0.27)`,\n zIndex: 1\n }\n });\n }\n };\n addElevationClasses();\n addStyle('hidden', '', {\n root: Platform.OS === 'web' ? {\n display: 'none'\n } : {\n width: 0,\n height: 0,\n transform: [{ scale: 0 }],\n overflow: 'hidden'\n }\n });\n addStyle('bg-danger', '', { root: { backgroundColor: themeVariables.dangerColor }});\n addStyle('bg-info', '', { root: { backgroundColor: themeVariables.infoColor }});\n addStyle('bg-primary', '', { root: { backgroundColor: themeVariables.primaryColor }});\n addStyle('bg-success', '', { root: { backgroundColor: themeVariables.successColor }});\n addStyle('bg-warning', '', { root: { backgroundColor: themeVariables.warningColor }});\n\n addStyle('border-danger', '', { root: { borderColor: themeVariables.dangerColor }});\n addStyle('border-info', '', { root: { borderColor: themeVariables.infoColor }});\n addStyle('border-primary', '', { root: { borderColor: themeVariables.primaryColor }});\n addStyle('border-success', '', { root: { borderColor: themeVariables.successColor }});\n addStyle('border-warning', '', { root: { borderColor: themeVariables.warningColor }});\n\n addStyle('hide-context-menu', '', { text: { userSelect: 'none' }});\n addStyle('hide-context-menu-input', '', { text: { userSelect: 'none' }});\n});\n"],"mappings":"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","ignoreList":[]}