@wavemaker/app-rn-runtime 11.14.1-20.6468 → 11.14.1-21.64739

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 (104) hide show
  1. package/components/basic/bottomsheet/bottomsheet.component.js +0 -12
  2. package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
  3. package/components/basic/progress-circle/progress-circle.component.js +3 -3
  4. package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
  5. package/components/chart/area-chart/area-chart.component.js +9 -26
  6. package/components/chart/area-chart/area-chart.component.js.map +1 -1
  7. package/components/chart/bar-chart/bar-chart.component.js +6 -38
  8. package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
  9. package/components/chart/bar-chart/bar-chart.props.js +0 -1
  10. package/components/chart/bar-chart/bar-chart.props.js.map +1 -1
  11. package/components/chart/basechart.component.js +15 -8
  12. package/components/chart/basechart.component.js.map +1 -1
  13. package/components/chart/basechart.props.js +0 -1
  14. package/components/chart/basechart.props.js.map +1 -1
  15. package/components/chart/bubble-chart/bubble-chart.component.js +5 -22
  16. package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
  17. package/components/chart/line-chart/line-chart.component.js +5 -22
  18. package/components/chart/line-chart/line-chart.component.js.map +1 -1
  19. package/components/chart/pie-chart/pie-chart.component.js +3 -14
  20. package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  21. package/components/container/tabs/tabs.component.js +29 -62
  22. package/components/container/tabs/tabs.component.js.map +1 -1
  23. package/components/container/tabs/tabs.props.js +0 -1
  24. package/components/container/tabs/tabs.props.js.map +1 -1
  25. package/components/container/wizard/wizard.component.js +1 -1
  26. package/components/container/wizard/wizard.component.js.map +1 -1
  27. package/components/container/wizard/wizard.props.js +1 -0
  28. package/components/container/wizard/wizard.props.js.map +1 -1
  29. package/components/container/wizard/wizardstep/wizardstep.component.js +2 -2
  30. package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
  31. package/components/data/form/form-field/form-field.component.js +0 -1
  32. package/components/data/form/form-field/form-field.component.js.map +1 -1
  33. package/components/data/form/form-field/form-field.props.js +0 -1
  34. package/components/data/form/form-field/form-field.props.js.map +1 -1
  35. package/components/data/form/form.component.js +1 -4
  36. package/components/data/form/form.component.js.map +1 -1
  37. package/components/dialogs/dialogcontent/dialogcontent.component.js +2 -1
  38. package/components/dialogs/dialogcontent/dialogcontent.component.js.map +1 -1
  39. package/components/input/baseinput/baseinput.component.js +3 -21
  40. package/components/input/baseinput/baseinput.component.js.map +1 -1
  41. package/components/input/baseinput/baseinput.props.js +0 -1
  42. package/components/input/baseinput/baseinput.props.js.map +1 -1
  43. package/components/input/basenumber/basenumber.component.js +3 -18
  44. package/components/input/basenumber/basenumber.component.js.map +1 -1
  45. package/components/input/basenumber/basenumber.props.js +0 -1
  46. package/components/input/basenumber/basenumber.props.js.map +1 -1
  47. package/components/input/checkboxset/checkboxset.component.js +1 -1
  48. package/components/input/checkboxset/checkboxset.component.js.map +1 -1
  49. package/components/input/currency/currency.component.js +0 -2
  50. package/components/input/currency/currency.component.js.map +1 -1
  51. package/components/input/currency/currency.styles.js +1 -10
  52. package/components/input/currency/currency.styles.js.map +1 -1
  53. package/components/input/number/number.component.js +0 -2
  54. package/components/input/number/number.component.js.map +1 -1
  55. package/components/input/number/number.styles.js +0 -4
  56. package/components/input/number/number.styles.js.map +1 -1
  57. package/components/input/radioset/radioset.component.js +4 -2
  58. package/components/input/radioset/radioset.component.js.map +1 -1
  59. package/components/input/text/text.component.js +0 -2
  60. package/components/input/text/text.component.js.map +1 -1
  61. package/components/input/text/text.props.js +1 -0
  62. package/components/input/text/text.props.js.map +1 -1
  63. package/components/input/text/text.styles.js +0 -17
  64. package/components/input/text/text.styles.js.map +1 -1
  65. package/components/input/textarea/textarea.component.js +0 -1
  66. package/components/input/textarea/textarea.component.js.map +1 -1
  67. package/components/input/textarea/textarea.styles.js +0 -4
  68. package/components/input/textarea/textarea.styles.js.map +1 -1
  69. package/components/navigation/popover/popover.component.js +3 -3
  70. package/components/navigation/popover/popover.component.js.map +1 -1
  71. package/core/AppConfig.js.map +1 -1
  72. package/core/advanced-promise-rejection-tracker.js +207 -0
  73. package/core/advanced-promise-rejection-tracker.js.map +1 -0
  74. package/core/base.component.js +5 -0
  75. package/core/base.component.js.map +1 -1
  76. package/core/components/error-fallback/error-fallback.component.js +50 -18
  77. package/core/components/error-fallback/error-fallback.component.js.map +1 -1
  78. package/core/components/error-fallback/error-fallback.styles.js +4 -1
  79. package/core/components/error-fallback/error-fallback.styles.js.map +1 -1
  80. package/core/components/textinput.component.js +4 -25
  81. package/core/components/textinput.component.js.map +1 -1
  82. package/core/error-boundary.component.js +46 -2
  83. package/core/error-boundary.component.js.map +1 -1
  84. package/core/fixed-view.component.js +2 -19
  85. package/core/fixed-view.component.js.map +1 -1
  86. package/core/global-error-handler.service.js +177 -0
  87. package/core/global-error-handler.service.js.map +1 -0
  88. package/core/tappable.component.js +1 -1
  89. package/core/tappable.component.js.map +1 -1
  90. package/core/viewport.js +8 -13
  91. package/core/viewport.js.map +1 -1
  92. package/gestures/carousel-swipe.animation.js +1 -0
  93. package/gestures/carousel-swipe.animation.js.map +1 -1
  94. package/npm-shrinkwrap.json +9553 -8521
  95. package/package-lock.json +9553 -8521
  96. package/package.json +2 -2
  97. package/runtime/App.js +174 -12
  98. package/runtime/App.js.map +1 -1
  99. package/runtime/base-page.component.js +11 -2
  100. package/runtime/base-page.component.js.map +1 -1
  101. package/runtime/navigator/stack.navigator.js +6 -0
  102. package/runtime/navigator/stack.navigator.js.map +1 -1
  103. package/styles/theme.js +0 -6
  104. package/styles/theme.js.map +1 -1
@@ -115,9 +115,18 @@ export default class BasePage extends BaseFragment {
115
115
  }
116
116
  async canNavigate(currentPage, nextPage) {
117
117
  let navigate = true;
118
- navigate = await this.onBeforePageLeave(currentPage, nextPage);
118
+ //added try-catch to catch any errors in the callback fn and propogate it to global error handler.
119
+ try {
120
+ navigate = await this.onBeforePageLeave(currentPage, nextPage);
121
+ } catch (e) {
122
+ this.App.handleCallbackError(e, `Error in page-level onBeforePageLeave callback`);
123
+ }
119
124
  if (navigate !== false) {
120
- navigate = await this.App.onBeforePageLeave(currentPage, nextPage);
125
+ try {
126
+ navigate = await this.App.onBeforePageLeave(currentPage, nextPage);
127
+ } catch (e) {
128
+ this.App.handleCallbackError(e, `Error in app-level onBeforePageLeave callback`);
129
+ }
121
130
  }
122
131
  if (navigate !== false) navigate = true;
123
132
  return navigate;
@@ -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","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","_this$appConfig$scree2","disableProtection","componentWillUnmount","canNavigate","nextPage","navigate","onBeforePageLeave","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","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/app-rn-runtime/core/base.component';\n\nimport WmPage from '@wavemaker/app-rn-runtime/components/page/page.component';\nimport NavigationService, { NavigationServiceProvider } from '@wavemaker/app-rn-runtime/core/navigation.service';\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';\nimport { Alert } from 'react-native';\n\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\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 onComponentInit(w: BaseComponent<any, any, any>) {\n super.onComponentInit(w);\n if (w instanceof WmPage) {\n this.targetWidget = 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 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 }));\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 }));\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 navigate = await this.onBeforePageLeave(currentPage, nextPage);\n if(navigate !== false){\n navigate = await this.App.onBeforePageLeave(currentPage, nextPage);\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 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","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","_this$appConfig$scree2","disableProtection","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","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/app-rn-runtime/core/base.component';\n\nimport WmPage from '@wavemaker/app-rn-runtime/components/page/page.component';\nimport NavigationService, { NavigationServiceProvider } from '@wavemaker/app-rn-runtime/core/navigation.service';\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';\nimport { Alert } from 'react-native';\n\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\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 onComponentInit(w: BaseComponent<any, any, any>) {\n super.onComponentInit(w);\n if (w instanceof WmPage) {\n this.targetWidget = 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 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 }));\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 }));\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 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":[]}
@@ -6,6 +6,7 @@ import { View } from 'react-native';
6
6
  import { createStackNavigator } from '@react-navigation/stack';
7
7
  import ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';
8
8
  import ErrorBoundary from '@wavemaker/app-rn-runtime/core/error-boundary.component';
9
+ import injector from '@wavemaker/app-rn-runtime/core/injector';
9
10
  const Stack = createStackNavigator();
10
11
  const pages = {};
11
12
  class Screen extends React.Component {
@@ -54,6 +55,8 @@ const getPageId = (pageName, pageParams) => {
54
55
  return `${pageName}?${pageParamsStr}`;
55
56
  };
56
57
  const AppStackNavigator = props => {
58
+ const appConfig = injector.get('APP_CONFIG');
59
+ const disablePageAnimation = (appConfig === null || appConfig === void 0 ? void 0 : appConfig.disableNavigationAnimation) || false;
57
60
  return /*#__PURE__*/React.createElement(Stack.Navigator, {
58
61
  initialRouteName: props.landingPage
59
62
  }, props.pages.map(p => {
@@ -66,6 +69,9 @@ const AppStackNavigator = props => {
66
69
  params
67
70
  }) => getPageId(p.name, params),
68
71
  options: {
72
+ ...(disablePageAnimation && {
73
+ animation: 'none'
74
+ }),
69
75
  headerShown: false,
70
76
  cardStyle: {
71
77
  backgroundColor: ThemeVariables.INSTANCE.pageContentBgColor
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","createStackNavigator","ThemeVariables","ErrorBoundary","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","Navigator","initialRouteName","landingPage","p","key","getId","params","options","headerShown","cardStyle","backgroundColor","INSTANCE","pageContentBgColor"],"sources":["stack.navigator.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { createStackNavigator } from '@react-navigation/stack';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport ErrorBoundary from '@wavemaker/app-rn-runtime/core/error-boundary.component';\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 return (<Stack.Navigator 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;"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","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","Navigator","initialRouteName","landingPage","p","key","getId","params","options","animation","headerShown","cardStyle","backgroundColor","INSTANCE","pageContentBgColor"],"sources":["stack.navigator.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { createStackNavigator } from '@react-navigation/stack';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\nimport ErrorBoundary from '@wavemaker/app-rn-runtime/core/error-boundary.component';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\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 return (<Stack.Navigator initialRouteName={props.landingPage}>\n {props.pages.map(p => {\n pages[p.name] = p;\n return (\n <Stack.Screen key={p.name}\n \n name={p.name}\n component={Screen}\n getId={({params}) => getPageId(p.name, params)}\n options={{\n ...(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;"],"mappings":"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","ignoreList":[]}
package/styles/theme.js CHANGED
@@ -96,9 +96,6 @@ export class Theme {
96
96
  val = this.replaceVariables(val);
97
97
  });
98
98
  }
99
- if (isString(val) && val.match(/^-?\d+(\.\d+)?$/)) {
100
- return parseFloat(val);
101
- }
102
99
  return val;
103
100
  }
104
101
  clearCache() {
@@ -237,9 +234,6 @@ export class Theme {
237
234
  }
238
235
  }
239
236
  }
240
- if (!isNil(style['color']) && style['color'] === 'transparent') {
241
- style['color'] = 'rgba(255, 255, 255, 0)';
242
- }
243
237
  let screenWidth = Dimensions.get('window').width;
244
238
  let screenHeight = Dimensions.get('window').height;
245
239
  Object.keys(style).forEach((k, i) => {
@@ -1 +1 @@
1
- {"version":3,"names":["cloneDeep","isNil","forEach","flatten","isArray","isEmpty","isObject","isString","get","reverse","React","camelCase","Dimensions","Platform","deepCopy","isWebPreviewMode","EventNotifier","ViewPort","EVENTS","ViewPortEvents","MediaQueryList","ThemeVariables","getErrorMessage","getStyleReference","isValidStyleProp","injector","isNativeStyle","DEFAULT_CLASS","window","matchMedia","query","DEVICE_BREAK_POINTS","DEVICE_BREAK_POINTS_NATIVE_MOBILE","getBreakPointValue","name","OS","ThemeEvent","Theme","constructor","parent","_this$getAppConfig","_defineProperty","revertLayoutToExpo50","getAppConfig","traceEnabled","enableTrace","flag","reset","children","t","subscribe","event","fn","eventNotifer","notify","replaceVariables","val","match","s","variableName","substring","length","replace","INSTANCE","parseFloat","clearCache","cache","registerStyle","styleGenerators","push","addStyle","bind","checkStyleProperties","value","Object","keys","map","k","console","log","extend","style","styles","getStyle","addTrace","styleName","mergedChildstyle","childStyle","parentStyle","v","__trace","prefix","result","collect","mergeStyle","flattenStyles","cs","filter","cleanseStyleProperties","paddingLeft","paddingRight","undefined","marginLeft","marginRight","screenWidth","width","screenHeight","height","i","stylePropertyValue","endsWith","Number","indexOf","split","c","mediaQuery","clonedStyle","matches","BASE","$new","newTheme","destroy","splice","getTextStyle","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","root","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, isFunction, get, reverse } 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/app-rn-runtime/core/utils';\nimport EventNotifier from '@wavemaker/app-rn-runtime/core/event-notifier';\nimport ViewPort, {EVENTS as ViewPortEvents} from '@wavemaker/app-rn-runtime/core/viewport';\nimport MediaQueryList from './MediaQueryList';\nimport ThemeVariables from './theme.variables';\nimport { getErrorMessage, getStyleReference, isValidStyleProp } from './style-prop.validator';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { isNativeStyle} from '@wavemaker/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 \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) {\n this.traceEnabled = flag;\n this.reset();\n this.children.forEach(t => t.enableTrace(flag));\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: string | number) {\n if(isString(val)) { \n (val.match(/_*var\\([^\\)]*\\)/g) || []).forEach((s) => {\n const variableName = s.substring(4, s.length - 1);\n val = (val as string).replace(s, (ThemeVariables.INSTANCE as any)[variableName]\n || (ThemeVariables.INSTANCE as any)[variableName.substring(2)]\n || (ThemeVariables.INSTANCE as any)[camelCase(variableName.substring(2))]);\n val = this.replaceVariables(val);\n });\n }\n\n if(isString(val) && val.match(/^-?\\d+(\\.\\d+)?$/)) {\n return parseFloat(val);\n }\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 && !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 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 return style;\n }\n\n cleanseStyleProperties(style: 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 Object.keys(style).forEach(k => {\n (style as any)[k] = this.replaceVariables((style as any)[k]);\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['padding'])) {\n style['paddingLeft'] = style['paddingLeft'] || style['padding'];\n style['paddingRight'] = style['paddingRight'] || style['padding'];\n style['paddingTop'] = style['paddingTop'] || style['padding'];\n style['paddingBottom'] = style['paddingBottom'] || style['padding'];\n delete style['padding'];\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 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 Object.keys(style).forEach((k, i) => this.cleanseStyleProperties(style[k]));\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 = {};\n if (!mediaQuery || matchMedia(mediaQuery).matches) {\n clonedStyle = cloneDeep(this.styles[name]);\n this.cleanseStyleProperties(clonedStyle);\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 return {\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 }\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: {\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\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["cloneDeep","isNil","forEach","flatten","isArray","isEmpty","isObject","isString","get","reverse","React","camelCase","Dimensions","Platform","deepCopy","isWebPreviewMode","EventNotifier","ViewPort","EVENTS","ViewPortEvents","MediaQueryList","ThemeVariables","getErrorMessage","getStyleReference","isValidStyleProp","injector","isNativeStyle","DEFAULT_CLASS","window","matchMedia","query","DEVICE_BREAK_POINTS","DEVICE_BREAK_POINTS_NATIVE_MOBILE","getBreakPointValue","name","OS","ThemeEvent","Theme","constructor","parent","_this$getAppConfig","_defineProperty","revertLayoutToExpo50","getAppConfig","traceEnabled","enableTrace","flag","reset","children","t","subscribe","event","fn","eventNotifer","notify","replaceVariables","val","match","s","variableName","substring","length","replace","INSTANCE","clearCache","cache","registerStyle","styleGenerators","push","addStyle","bind","checkStyleProperties","value","Object","keys","map","k","console","log","extend","style","styles","getStyle","addTrace","styleName","mergedChildstyle","childStyle","parentStyle","v","__trace","prefix","result","collect","mergeStyle","flattenStyles","cs","filter","cleanseStyleProperties","paddingLeft","paddingRight","undefined","marginLeft","marginRight","screenWidth","width","screenHeight","height","i","stylePropertyValue","endsWith","Number","indexOf","split","c","mediaQuery","clonedStyle","matches","BASE","$new","newTheme","destroy","splice","getTextStyle","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","root","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, isFunction, get, reverse } 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/app-rn-runtime/core/utils';\nimport EventNotifier from '@wavemaker/app-rn-runtime/core/event-notifier';\nimport ViewPort, {EVENTS as ViewPortEvents} from '@wavemaker/app-rn-runtime/core/viewport';\nimport MediaQueryList from './MediaQueryList';\nimport ThemeVariables from './theme.variables';\nimport { getErrorMessage, getStyleReference, isValidStyleProp } from './style-prop.validator';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport { isNativeStyle} from '@wavemaker/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 \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) {\n this.traceEnabled = flag;\n this.reset();\n this.children.forEach(t => t.enableTrace(flag));\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: string) {\n if(isString(val)) { \n (val.match(/_*var\\([^\\)]*\\)/g) || []).forEach((s) => {\n const variableName = s.substring(4, s.length - 1);\n val = val.replace(s, (ThemeVariables.INSTANCE as any)[variableName]\n || (ThemeVariables.INSTANCE as any)[variableName.substring(2)]\n || (ThemeVariables.INSTANCE as any)[camelCase(variableName.substring(2))]);\n val = this.replaceVariables(val);\n });\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 && !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 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 return style;\n }\n\n cleanseStyleProperties(style: 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 Object.keys(style).forEach(k => {\n (style as any)[k] = this.replaceVariables((style as any)[k]);\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['padding'])) {\n style['paddingLeft'] = style['paddingLeft'] || style['padding'];\n style['paddingRight'] = style['paddingRight'] || style['padding'];\n style['paddingTop'] = style['paddingTop'] || style['padding'];\n style['paddingBottom'] = style['paddingBottom'] || style['padding'];\n delete style['padding'];\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 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 Object.keys(style).forEach((k, i) => this.cleanseStyleProperties(style[k]));\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 = {};\n if (!mediaQuery || matchMedia(mediaQuery).matches) {\n clonedStyle = cloneDeep(this.styles[name]);\n this.cleanseStyleProperties(clonedStyle);\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 return {\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 }\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: {\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\n"],"mappings":"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","ignoreList":[]}