@wavemaker/app-rn-runtime 11.8.0-rc.5775 → 11.8.0-rc.5868
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/advanced/carousel/carousel.component.js +32 -5
- package/components/advanced/carousel/carousel.component.js.map +1 -1
- package/components/advanced/carousel/carousel.props.js +1 -0
- package/components/advanced/carousel/carousel.props.js.map +1 -1
- package/components/advanced/carousel/carousel.styles.js +15 -0
- package/components/advanced/carousel/carousel.styles.js.map +1 -1
- package/components/advanced/webview/webview.component.js.map +1 -1
- package/components/basic/anchor/anchor.component.js +15 -5
- package/components/basic/anchor/anchor.component.js.map +1 -1
- package/components/basic/anchor/anchor.styles.js +3 -0
- package/components/basic/anchor/anchor.styles.js.map +1 -1
- package/components/basic/animatedview.component.js +6 -2
- package/components/basic/animatedview.component.js.map +1 -1
- package/components/basic/audio/audio.component.js.map +1 -1
- package/components/basic/button/button.component.js +20 -6
- package/components/basic/button/button.component.js.map +1 -1
- package/components/basic/custom/custom.component.js +1 -1
- package/components/basic/custom/custom.component.js.map +1 -1
- package/components/basic/icon/icon.component.js +14 -6
- package/components/basic/icon/icon.component.js.map +1 -1
- package/components/basic/label/label.component.js +13 -3
- package/components/basic/label/label.component.js.map +1 -1
- package/components/basic/label/label.styles.js.map +1 -1
- package/components/basic/lottie/lottie.component.js +3 -1
- package/components/basic/lottie/lottie.component.js.map +1 -1
- package/components/basic/message/message.component.js.map +1 -1
- package/components/basic/picture/picture.component.js +1 -2
- package/components/basic/picture/picture.component.js.map +1 -1
- package/components/basic/progress-bar/progress-bar.component.js +2 -2
- package/components/basic/progress-bar/progress-bar.component.js.map +1 -1
- package/components/basic/progress-circle/progress-circle.component.js +5 -5
- package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
- package/components/basic/search/search.component.js +10 -1
- package/components/basic/search/search.component.js.map +1 -1
- package/components/basic/search/search.props.js +3 -0
- package/components/basic/search/search.props.js.map +1 -1
- package/components/basic/search/search.styles.js +5 -0
- package/components/basic/search/search.styles.js.map +1 -1
- package/components/basic/skeleton/skeleton.component.js +6 -3
- package/components/basic/skeleton/skeleton.component.js.map +1 -1
- package/components/basic/skeleton/skeleton.props.js +9 -1
- package/components/basic/skeleton/skeleton.props.js.map +1 -1
- package/components/basic/spinner/spinner.component.js +2 -3
- package/components/basic/spinner/spinner.component.js.map +1 -1
- package/components/basic/spinner/spinner.styles.js +3 -2
- package/components/basic/spinner/spinner.styles.js.map +1 -1
- package/components/basic/video/video.component.js.map +1 -1
- package/components/basic/video/video.styles.js +4 -1
- package/components/basic/video/video.styles.js.map +1 -1
- package/components/chart/area-chart/area-chart.component.js +2 -1
- package/components/chart/area-chart/area-chart.component.js.map +1 -1
- package/components/chart/area-chart/area-chart.styles.js +7 -1
- package/components/chart/area-chart/area-chart.styles.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.styles.js +7 -1
- package/components/chart/bar-chart/bar-chart.styles.js.map +1 -1
- package/components/chart/basechart.component.js +54 -2
- package/components/chart/basechart.component.js.map +1 -1
- package/components/chart/basechart.props.js +3 -2
- package/components/chart/basechart.props.js.map +1 -1
- package/components/chart/basechart.styles.js +4 -0
- package/components/chart/basechart.styles.js.map +1 -1
- package/components/chart/bubble-chart/bubble-chart.component.js +15 -3
- package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
- package/components/chart/bubble-chart/bubble-chart.styles.js +7 -1
- package/components/chart/bubble-chart/bubble-chart.styles.js.map +1 -1
- package/components/chart/column-chart/column-chart.styles.js +7 -1
- package/components/chart/column-chart/column-chart.styles.js.map +1 -1
- package/components/chart/donut-chart/donut-chart.styles.js +7 -1
- package/components/chart/donut-chart/donut-chart.styles.js.map +1 -1
- package/components/chart/line-chart/line-chart.props.js +2 -0
- package/components/chart/line-chart/line-chart.props.js.map +1 -1
- package/components/chart/line-chart/line-chart.styles.js +7 -1
- package/components/chart/line-chart/line-chart.styles.js.map +1 -1
- package/components/chart/pie-chart/pie-chart.component.js +6 -2
- package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
- package/components/chart/pie-chart/pie-chart.styles.js +7 -1
- package/components/chart/pie-chart/pie-chart.styles.js.map +1 -1
- package/components/chart/stack-chart/stack-chart.component.js +37 -11
- package/components/chart/stack-chart/stack-chart.component.js.map +1 -1
- package/components/container/accordion/accordion.component.js +61 -12
- package/components/container/accordion/accordion.component.js.map +1 -1
- package/components/container/accordion/accordion.props.js.map +1 -1
- package/components/container/accordion/accordion.styles.js +5 -0
- package/components/container/accordion/accordion.styles.js.map +1 -1
- package/components/container/accordion/accordionpane/accordionpane.component.js +11 -1
- package/components/container/accordion/accordionpane/accordionpane.component.js.map +1 -1
- package/components/container/container.component.js +44 -3
- package/components/container/container.component.js.map +1 -1
- package/components/container/container.props.js +1 -0
- package/components/container/container.props.js.map +1 -1
- package/components/container/container.styles.js +7 -0
- package/components/container/container.styles.js.map +1 -1
- package/components/container/layoutgrid/gridcolumn/gridcolumn.component.js.map +1 -1
- package/components/container/layoutgrid/gridrow/gridrow.component.js +5 -1
- package/components/container/layoutgrid/gridrow/gridrow.component.js.map +1 -1
- package/components/container/layoutgrid/gridrow/gridrow.styles.js +6 -1
- package/components/container/layoutgrid/gridrow/gridrow.styles.js.map +1 -1
- package/components/container/layoutgrid/layoutgrid.component.js +28 -2
- package/components/container/layoutgrid/layoutgrid.component.js.map +1 -1
- package/components/container/layoutgrid/layoutgrid.props.js.map +1 -1
- package/components/container/layoutgrid/layoutgrid.styles.js +4 -1
- package/components/container/layoutgrid/layoutgrid.styles.js.map +1 -1
- package/components/container/linearlayout/linearlayout.component.js +31 -5
- package/components/container/linearlayout/linearlayout.component.js.map +1 -1
- package/components/container/linearlayout/linearlayout.props.js.map +1 -1
- package/components/container/linearlayout/linearlayout.styles.js +4 -1
- package/components/container/linearlayout/linearlayout.styles.js.map +1 -1
- package/components/container/panel/panel.component.js +47 -6
- package/components/container/panel/panel.component.js.map +1 -1
- package/components/container/panel/panel.props.js.map +1 -1
- package/components/container/panel/panel.styles.js +3 -0
- package/components/container/panel/panel.styles.js.map +1 -1
- package/components/container/partial-host.component.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.component.js +3 -4
- package/components/container/tabs/tabheader/tabheader.component.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.props.js.map +1 -1
- package/components/container/tabs/tabpane/tabpane.component.js +11 -1
- package/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
- package/components/container/tabs/tabpane/tabpane.props.js +1 -0
- package/components/container/tabs/tabpane/tabpane.props.js.map +1 -1
- package/components/container/tabs/tabs.component.js +44 -6
- package/components/container/tabs/tabs.component.js.map +1 -1
- package/components/container/tabs/tabs.props.js.map +1 -1
- package/components/container/tabs/tabs.styles.js +4 -1
- package/components/container/tabs/tabs.styles.js.map +1 -1
- package/components/container/tile/tile.component.js +28 -2
- package/components/container/tile/tile.component.js.map +1 -1
- package/components/container/tile/tile.props.js.map +1 -1
- package/components/container/tile/tile.styles.js +6 -1
- package/components/container/tile/tile.styles.js.map +1 -1
- package/components/container/wizard/wizard.component.js +62 -13
- package/components/container/wizard/wizard.component.js.map +1 -1
- package/components/container/wizard/wizard.props.js.map +1 -1
- package/components/container/wizard/wizard.styles.js +3 -0
- package/components/container/wizard/wizard.styles.js.map +1 -1
- package/components/container/wizard/wizardstep/wizardstep.component.js +8 -1
- package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
- package/components/data/card/card-content/card-content.component.js +6 -2
- package/components/data/card/card-content/card-content.component.js.map +1 -1
- package/components/data/card/card-content/card-content.styles.js +4 -1
- package/components/data/card/card-content/card-content.styles.js.map +1 -1
- package/components/data/card/card.component.js +18 -0
- package/components/data/card/card.component.js.map +1 -1
- package/components/data/card/card.styles.js +3 -0
- package/components/data/card/card.styles.js.map +1 -1
- package/components/data/form/form-field/form-field.component.js +2 -1
- package/components/data/form/form-field/form-field.component.js.map +1 -1
- package/components/data/form/form.component.js +1 -1
- package/components/data/form/form.component.js.map +1 -1
- package/components/data/form/form.props.js +1 -0
- package/components/data/form/form.props.js.map +1 -1
- package/components/data/list/list-template/list-template.component.js +15 -1
- package/components/data/list/list-template/list-template.component.js.map +1 -1
- package/components/data/list/list-template/list-template.props.js +1 -0
- package/components/data/list/list-template/list-template.props.js.map +1 -1
- package/components/data/list/list-template/list-template.styles.js +11 -1
- package/components/data/list/list-template/list-template.styles.js.map +1 -1
- package/components/data/list/list.component.js +54 -33
- package/components/data/list/list.component.js.map +1 -1
- package/components/data/list/list.props.js +1 -0
- package/components/data/list/list.props.js.map +1 -1
- package/components/data/list/list.styles.js +9 -0
- package/components/data/list/list.styles.js.map +1 -1
- package/components/dialogs/dialog/dialog.component.js +5 -3
- package/components/dialogs/dialog/dialog.component.js.map +1 -1
- package/components/dialogs/dialog/dialog.styles.js.map +1 -1
- package/components/input/basedataset/basedataset.component.js.map +1 -1
- package/components/input/baseinput/baseinput.component.js +57 -14
- package/components/input/baseinput/baseinput.component.js.map +1 -1
- package/components/input/baseinput/baseinput.props.js +1 -0
- package/components/input/baseinput/baseinput.props.js.map +1 -1
- package/components/input/basenumber/basenumber.component.js +43 -17
- package/components/input/basenumber/basenumber.component.js.map +1 -1
- package/components/input/basenumber/basenumber.props.js +2 -0
- package/components/input/basenumber/basenumber.props.js.map +1 -1
- package/components/input/checkbox/checkbox.component.js +7 -8
- package/components/input/checkbox/checkbox.component.js.map +1 -1
- package/components/input/checkbox/checkbox.styles.js +3 -1
- package/components/input/checkbox/checkbox.styles.js.map +1 -1
- package/components/input/checkboxset/checkboxset.component.js +24 -3
- package/components/input/checkboxset/checkboxset.component.js.map +1 -1
- package/components/input/checkboxset/checkboxset.props.js +1 -0
- package/components/input/checkboxset/checkboxset.props.js.map +1 -1
- package/components/input/checkboxset/checkboxset.styles.js +1 -0
- package/components/input/checkboxset/checkboxset.styles.js.map +1 -1
- package/components/input/chips/chips.component.js +3 -2
- package/components/input/chips/chips.component.js.map +1 -1
- package/components/input/currency/currency.component.js +19 -2
- package/components/input/currency/currency.component.js.map +1 -1
- package/components/input/currency/currency.styles.js +6 -1
- package/components/input/currency/currency.styles.js.map +1 -1
- package/components/input/epoch/base-datetime.component.js +26 -8
- package/components/input/epoch/base-datetime.component.js.map +1 -1
- package/components/input/epoch/wheel-date-picker.component.js +123 -12
- package/components/input/epoch/wheel-date-picker.component.js.map +1 -1
- package/components/input/epoch/wheelpicker/wheelpicker.component.js.map +1 -1
- package/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js +4 -0
- package/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js.map +1 -1
- package/components/input/epoch/wheelpickermodal/date/date-picker-modal.props.js +2 -0
- package/components/input/epoch/wheelpickermodal/date/date-picker-modal.props.js.map +1 -1
- package/components/input/fileupload/fileupload.component.js +4 -2
- package/components/input/fileupload/fileupload.component.js.map +1 -1
- package/components/input/fileupload/fileupload.props.js +1 -0
- package/components/input/fileupload/fileupload.props.js.map +1 -1
- package/components/input/number/number.component.js +9 -4
- package/components/input/number/number.component.js.map +1 -1
- package/components/input/number/number.styles.js +3 -0
- package/components/input/number/number.styles.js.map +1 -1
- package/components/input/radioset/radioset.component.js +39 -14
- package/components/input/radioset/radioset.component.js.map +1 -1
- package/components/input/radioset/radioset.props.js +2 -0
- package/components/input/radioset/radioset.props.js.map +1 -1
- package/components/input/radioset/radioset.styles.js +7 -0
- package/components/input/radioset/radioset.styles.js.map +1 -1
- package/components/input/select/select.component.js +23 -9
- package/components/input/select/select.component.js.map +1 -1
- package/components/input/switch/switch.component.js +2 -2
- package/components/input/switch/switch.component.js.map +1 -1
- package/components/input/text/text.component.js +26 -2
- package/components/input/text/text.component.js.map +1 -1
- package/components/input/text/text.props.js +3 -0
- package/components/input/text/text.props.js.map +1 -1
- package/components/input/text/text.styles.js +3 -0
- package/components/input/text/text.styles.js.map +1 -1
- package/components/input/textarea/textarea.component.js +24 -1
- package/components/input/textarea/textarea.component.js.map +1 -1
- package/components/input/textarea/textarea.props.js +2 -0
- package/components/input/textarea/textarea.props.js.map +1 -1
- package/components/input/textarea/textarea.styles.js +3 -0
- package/components/input/textarea/textarea.styles.js.map +1 -1
- package/components/input/toggle/toggle.component.js +2 -4
- package/components/input/toggle/toggle.component.js.map +1 -1
- package/components/navigation/appnavbar/appnavbar.component.js +2 -2
- package/components/navigation/appnavbar/appnavbar.component.js.map +1 -1
- package/components/navigation/basenav/basenav.component.js.map +1 -1
- package/components/navigation/navitem/navitem.component.js +2 -3
- package/components/navigation/navitem/navitem.component.js.map +1 -1
- package/components/navigation/popover/popover.component.js.map +1 -1
- package/components/page/content/content.component.js.map +1 -1
- package/components/page/left-panel/left-panel.component.js +4 -1
- package/components/page/left-panel/left-panel.component.js.map +1 -1
- package/components/page/page-content/page-content.component.js +70 -14
- package/components/page/page-content/page-content.component.js.map +1 -1
- package/components/page/page-content/page-content.props.js +2 -2
- package/components/page/page-content/page-content.props.js.map +1 -1
- package/components/page/page-content/page-content.styles.js +6 -1
- package/components/page/page-content/page-content.styles.js.map +1 -1
- package/components/page/page.component.js.map +1 -1
- package/components/page/page.props.js.map +1 -1
- package/components/page/page.styles.js +7 -1
- package/components/page/page.styles.js.map +1 -1
- package/components/page/partial/partial.component.js +27 -1
- package/components/page/partial/partial.component.js.map +1 -1
- package/components/page/partial/partial.props.js.map +1 -1
- package/components/page/partial/partial.styles.js +6 -1
- package/components/page/partial/partial.styles.js.map +1 -1
- package/components/page/tabbar/curve.js.map +1 -1
- package/components/page/tabbar/tabbar.component.js.map +1 -1
- package/components/page/tabbar/tabbar.props.js +1 -0
- package/components/page/tabbar/tabbar.props.js.map +1 -1
- package/components/prefab/prefab-container.component.js +27 -1
- package/components/prefab/prefab-container.component.js.map +1 -1
- package/components/prefab/prefab-container.props.js.map +1 -1
- package/components/prefab/prefab-container.styles.js +6 -1
- package/components/prefab/prefab-container.styles.js.map +1 -1
- package/core/AppConfig.js.map +1 -1
- package/core/base.component.js +35 -7
- package/core/base.component.js.map +1 -1
- package/core/components/textinput.component.js +13 -10
- package/core/components/textinput.component.js.map +1 -1
- package/core/formatters.js.map +1 -1
- package/core/key.extractor.js.map +1 -1
- package/core/props.provider.js +4 -1
- package/core/props.provider.js.map +1 -1
- package/core/storage.service.js +15 -0
- package/core/storage.service.js.map +1 -1
- package/core/tappable.component.js +34 -27
- package/core/tappable.component.js.map +1 -1
- package/core/ui-preferences.context.js +7 -0
- package/core/ui-preferences.context.js.map +1 -0
- package/core/utils.js +87 -4
- package/core/utils.js.map +1 -1
- package/core/wm-component-tree.js +58 -0
- package/core/wm-component-tree.js.map +1 -0
- package/package-lock.json +26639 -31474
- package/package.json +39 -9
- package/runtime/App.js +25 -10
- package/runtime/App.js.map +1 -1
- package/runtime/App.navigator.js +1 -0
- package/runtime/App.navigator.js.map +1 -1
- package/runtime/base-fragment.component.js +61 -13
- package/runtime/base-fragment.component.js.map +1 -1
- package/runtime/base-page.component.js +37 -2
- package/runtime/base-page.component.js.map +1 -1
- package/runtime/base-partial.component.js +3 -0
- package/runtime/base-partial.component.js.map +1 -1
- package/runtime/base-prefab.component.js.map +1 -1
- package/runtime/navigator/drawer.navigator.js +19 -10
- package/runtime/navigator/drawer.navigator.js.map +1 -1
- package/runtime/navigator/stack.navigator.js.map +1 -1
- package/runtime/services/app-i18n.service.js +10 -0
- package/runtime/services/app-i18n.service.js.map +1 -1
- package/runtime/services/app-security.service.js +42 -2
- package/runtime/services/app-security.service.js.map +1 -1
- package/runtime/services/app-spinner.service.js +1 -1
- package/runtime/services/app-spinner.service.js.map +1 -1
- package/runtime/services/webprocess.service.js.map +1 -1
- package/runtime/watcher.js.map +1 -1
- package/styles/background.component.js +1 -0
- package/styles/background.component.js.map +1 -1
- package/styles/style-prop.validator.js.map +1 -1
- package/styles/theme.js +10 -0
- package/styles/theme.js.map +1 -1
- package/styles/theme.variables.js +2 -1
- package/styles/theme.variables.js.map +1 -1
- package/variables/base-variable.js.map +1 -1
- package/variables/device/file/upload-file.operation.js.map +1 -1
- package/variables/device-variable.js.map +1 -1
- package/variables/http.service.js +5 -1
- package/variables/http.service.js.map +1 -1
- package/variables/live-variable.js +14 -0
- package/variables/live-variable.js.map +1 -1
- package/variables/service-variable.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","createStackNavigator","ThemeVariables","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';\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 React.createElement(pages[props.route.name].component, {...props, destroyMe: () => {\n setTimeout(() => {\n this.setState(() => ({renew: true, page: null}));\n }, 100);\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":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,oBAAoB,QAAQ,yBAAyB;AAC9D,OAAOC,cAAc,MAAM,kDAAkD;AAE7E,MAAMC,KAAK,GAAGF,oBAAoB,CAAC,CAAC;AAOpC,MAAMG,KAAK,GAAG,CAAC,CAAQ;AAEvB,MAAMC,MAAM,SAASN,KAAK,CAACO,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,oBAAOT,KAAK,CAACoB,aAAa,CAACf,KAAK,CAACI,KAAK,CAACY,KAAK,CAACC,IAAI,CAAC,CAACC,SAAS,EAAE;MAAC,GAAGd,KAAK;MAAEe,SAAS,EAAEA,CAAA,KAAM;QACxFC,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,CAAC;EACL;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,iBAAKb,KAAA,CAAAoB,aAAA,CAACnB,IAAI,MAAC,CAAE;EAC9C;AACF;AAEA,MAAM6B,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,
|
|
1
|
+
{"version":3,"names":["React","View","createStackNavigator","ThemeVariables","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';\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 React.createElement(pages[props.route.name].component, {...props, destroyMe: () => {\n setTimeout(() => {\n this.setState(() => ({renew: true, page: null}));\n }, 100);\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":[]}
|
|
@@ -51,6 +51,16 @@ class AppI18nService {
|
|
|
51
51
|
});
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
+
|
|
55
|
+
// app defaults support same as web
|
|
56
|
+
get appDefaults() {
|
|
57
|
+
return {
|
|
58
|
+
dateFormat: this.dateFormat,
|
|
59
|
+
timeFormat: this.timeFormat,
|
|
60
|
+
currencyCode: this.currencyCode,
|
|
61
|
+
dateTimeFormat: this.dateTimeFormat
|
|
62
|
+
};
|
|
63
|
+
}
|
|
54
64
|
setTimezone(timezone) {
|
|
55
65
|
this.timezone = timezone;
|
|
56
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["axios","StorageService","isWebPreviewMode","I18nManager","APP_LOCALE_ROOT_PATH","STORAGE_KEY","RTL_LANGUAGE_CODES","map","forEach","v","AppI18nService","constructor","_defineProperty","init","selectedLocale","getItem","isRTLLocale","newLocale","setRTL","locale","flag","needsRestart","isRTL","forceRTL","loadAppLocaleBundle","url","Promise","resolve","then","path","get","bundle","dateFormat","data","formats","date","timeFormat","time","currencyCode","currency","dateTimeFormat","catch","console","warn","setTimezone","timezone","getTimezone","setSelectedLocale","setItem","getSelectedLocale","i18nService"],"sources":["app-i18n.service.tsx"],"sourcesContent":["import axios, { AxiosResponse } from 'axios';\nimport StorageService from '@wavemaker/app-rn-runtime/core/storage.service';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { I18nManager, Platform } from 'react-native';\nimport { I18nService } from '@wavemaker/app-rn-runtime/core/i18n.service';\n\nconst APP_LOCALE_ROOT_PATH = '/resources/i18n';\nconst STORAGE_KEY = 'selectedLocale';\nconst RTL_LANGUAGE_CODES = (()=>{\n const map = {} as any;\n [\"ar\", \"ar-001\", \"ar-ae\", \"ar-bh\", \"ar-dz\", \"ar-eg\", \"ar-iq\", \"ar-jo\", \"ar-kw\", \"ar-lb\",\n \"ar-ly\", \"ar-ma\", \"ar-om\", \"ar-qa\", \"ar-sa\", \"ar-sd\", \"ar-sy\", \"ar-tn\", \"ar-ye\", \"arc\",\n \"bcc\", \"bqi\", \"ckb\", \"dv\", \"fa\", \"glk\", \"he\", \"ku\", \"mzn\", \"pnb\", \"ps\", \"sd\", \"ug\", \"ur\", \"yi\"].forEach(v=>{\n map[v] = true;\n });\n return map;\n })();\n\nclass AppI18nService implements I18nService{\n appLocale: any;\n defaultSupportedLocale = 'en';\n selectedLocale: any;\n dateFormat: string = '';\n timeFormat: string = '';\n dateTimeFormat: string = '';\n currencyCode: string = '';\n timezone: string = '';\n\n constructor() {}\n\n async init() {\n this.selectedLocale = await StorageService.getItem(STORAGE_KEY);\n }\n\n isRTLLocale(newLocale: string = this.selectedLocale){\n return !!(newLocale && RTL_LANGUAGE_CODES[newLocale]);\n }\n\n setRTL(locale?: string){\n const flag = this.isRTLLocale(locale);\n const needsRestart = !isWebPreviewMode() && I18nManager.isRTL !== flag;\n I18nManager.forceRTL(flag);\n return needsRestart; \n }\n\n loadAppLocaleBundle(url: string) {\n return Promise.resolve().then(() => {\n const path = `${url + APP_LOCALE_ROOT_PATH}/${this.selectedLocale}.json`;\n return axios.get(path)\n .then((bundle) => {\n this.dateFormat = bundle.data.formats.date;\n this.timeFormat = bundle.data.formats.time;\n this.currencyCode = bundle.data.formats.currency;\n this.dateTimeFormat = this.dateFormat + ' ' + this.timeFormat;\n return bundle;\n })\n .catch(() => {\n console.warn(`error loading locale resource from ${path}`);\n });\n\n });\n }\n\n setTimezone(timezone: string){\n this.timezone = timezone;\n }\n\n getTimezone(){\n return this.timezone;\n }\n\n setSelectedLocale(locale: string) {\n this.selectedLocale = locale;\n StorageService.setItem(STORAGE_KEY, locale);\n return this.setRTL(locale);\n }\n\n getSelectedLocale() {\n return this.selectedLocale;\n }\n}\n\nconst i18nService = new AppI18nService();\n\nexport default i18nService;\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAyB,OAAO;AAC5C,OAAOC,cAAc,MAAM,gDAAgD;AAC3E,SAASC,gBAAgB,QAAQ,sCAAsC;AACvE,SAASC,WAAW,QAAkB,cAAc;AAGpD,MAAMC,oBAAoB,GAAG,iBAAiB;AAC9C,MAAMC,WAAW,GAAG,gBAAgB;AACpC,MAAMC,kBAAkB,GAAG,CAAC,MAAI;EAC9B,MAAMC,GAAG,GAAG,CAAC,CAAQ;EACrB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EACtF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EACrF,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAACC,OAAO,CAACC,CAAC,IAAE;IACzGF,GAAG,CAACE,CAAC,CAAC,GAAG,IAAI;EACf,CAAC,CAAC;EACF,OAAOF,GAAG;AACZ,CAAC,EAAE,CAAC;AAEN,MAAMG,cAAc,CAAuB;EAUvCC,WAAWA,CAAA,EAAG;IAAAC,eAAA;IAAAA,eAAA,iCARW,IAAI;IAAAA,eAAA;IAAAA,eAAA,qBAER,EAAE;IAAAA,eAAA,qBACF,EAAE;IAAAA,eAAA,yBACE,EAAE;IAAAA,eAAA,uBACJ,EAAE;IAAAA,eAAA,mBACN,EAAE;EAEN;EAEf,MAAMC,IAAIA,CAAA,EAAG;IACX,IAAI,CAACC,cAAc,GAAG,MAAMb,cAAc,CAACc,OAAO,CAACV,WAAW,CAAC;EACjE;EAEAW,WAAWA,CAACC,SAAiB,GAAG,IAAI,CAACH,cAAc,EAAC;IAClD,OAAO,CAAC,EAAEG,SAAS,IAAIX,kBAAkB,CAACW,SAAS,CAAC,CAAC;EACvD;EAEAC,MAAMA,CAACC,MAAe,EAAC;IACrB,MAAMC,IAAI,GAAG,IAAI,CAACJ,WAAW,CAACG,MAAM,CAAC;IACrC,MAAME,YAAY,GAAG,CAACnB,gBAAgB,CAAC,CAAC,IAAIC,WAAW,CAACmB,KAAK,KAAKF,IAAI;IACtEjB,WAAW,CAACoB,QAAQ,CAACH,IAAI,CAAC;IAC1B,OAAOC,YAAY;EACrB;EAEAG,mBAAmBA,CAACC,GAAW,EAAE;IAC7B,OAAOC,OAAO,CAACC,OAAO,CAAC,CAAC,CAACC,IAAI,CAAC,MAAM;MAClC,MAAMC,IAAI,
|
|
1
|
+
{"version":3,"names":["axios","StorageService","isWebPreviewMode","I18nManager","APP_LOCALE_ROOT_PATH","STORAGE_KEY","RTL_LANGUAGE_CODES","map","forEach","v","AppI18nService","constructor","_defineProperty","init","selectedLocale","getItem","isRTLLocale","newLocale","setRTL","locale","flag","needsRestart","isRTL","forceRTL","loadAppLocaleBundle","url","Promise","resolve","then","path","get","bundle","dateFormat","data","formats","date","timeFormat","time","currencyCode","currency","dateTimeFormat","catch","console","warn","appDefaults","setTimezone","timezone","getTimezone","setSelectedLocale","setItem","getSelectedLocale","i18nService"],"sources":["app-i18n.service.tsx"],"sourcesContent":["import axios, { AxiosResponse } from 'axios';\nimport StorageService from '@wavemaker/app-rn-runtime/core/storage.service';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\nimport { I18nManager, Platform } from 'react-native';\nimport { I18nService } from '@wavemaker/app-rn-runtime/core/i18n.service';\n\nconst APP_LOCALE_ROOT_PATH = '/resources/i18n';\nconst STORAGE_KEY = 'selectedLocale';\nconst RTL_LANGUAGE_CODES = (()=>{\n const map = {} as any;\n [\"ar\", \"ar-001\", \"ar-ae\", \"ar-bh\", \"ar-dz\", \"ar-eg\", \"ar-iq\", \"ar-jo\", \"ar-kw\", \"ar-lb\",\n \"ar-ly\", \"ar-ma\", \"ar-om\", \"ar-qa\", \"ar-sa\", \"ar-sd\", \"ar-sy\", \"ar-tn\", \"ar-ye\", \"arc\",\n \"bcc\", \"bqi\", \"ckb\", \"dv\", \"fa\", \"glk\", \"he\", \"ku\", \"mzn\", \"pnb\", \"ps\", \"sd\", \"ug\", \"ur\", \"yi\"].forEach(v=>{\n map[v] = true;\n });\n return map;\n })();\n\nclass AppI18nService implements I18nService{\n appLocale: any;\n defaultSupportedLocale = 'en';\n selectedLocale: any;\n dateFormat: string = '';\n timeFormat: string = '';\n dateTimeFormat: string = '';\n currencyCode: string = '';\n timezone: string = '';\n\n constructor() {}\n\n async init() {\n this.selectedLocale = await StorageService.getItem(STORAGE_KEY);\n }\n\n isRTLLocale(newLocale: string = this.selectedLocale){\n return !!(newLocale && RTL_LANGUAGE_CODES[newLocale]);\n }\n\n setRTL(locale?: string){\n const flag = this.isRTLLocale(locale);\n const needsRestart = !isWebPreviewMode() && I18nManager.isRTL !== flag;\n I18nManager.forceRTL(flag);\n return needsRestart; \n }\n\n loadAppLocaleBundle(url: string) {\n return Promise.resolve().then(() => {\n const path = `${url + APP_LOCALE_ROOT_PATH}/${this.selectedLocale}.json`;\n return axios.get(path)\n .then((bundle) => {\n this.dateFormat = bundle.data.formats.date;\n this.timeFormat = bundle.data.formats.time;\n this.currencyCode = bundle.data.formats.currency;\n this.dateTimeFormat = this.dateFormat + ' ' + this.timeFormat;\n return bundle;\n })\n .catch(() => {\n console.warn(`error loading locale resource from ${path}`);\n });\n\n });\n }\n\n // app defaults support same as web \n get appDefaults(){\n return {\n dateFormat : this.dateFormat,\n timeFormat : this.timeFormat,\n currencyCode: this.currencyCode,\n dateTimeFormat: this.dateTimeFormat\n }\n }\n\n setTimezone(timezone: string){\n this.timezone = timezone;\n }\n\n getTimezone(){\n return this.timezone;\n }\n\n setSelectedLocale(locale: string) {\n this.selectedLocale = locale;\n StorageService.setItem(STORAGE_KEY, locale);\n return this.setRTL(locale);\n }\n\n getSelectedLocale() {\n return this.selectedLocale;\n }\n}\n\nconst i18nService = new AppI18nService();\n\nexport default i18nService;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ import networkService from '@wavemaker/app-rn-runtime/core/network.service';
|
|
|
8
8
|
import injector from '@wavemaker/app-rn-runtime/core/injector';
|
|
9
9
|
import StorageService from '@wavemaker/app-rn-runtime/core/storage.service';
|
|
10
10
|
import WebProcessService from './webprocess.service';
|
|
11
|
+
import { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';
|
|
11
12
|
var USER_ROLE = /*#__PURE__*/function (USER_ROLE) {
|
|
12
13
|
USER_ROLE["EVERYONE"] = "Everyone";
|
|
13
14
|
USER_ROLE["ANONYMOUS"] = "Anonymous";
|
|
@@ -27,6 +28,19 @@ class AppSecurityService {
|
|
|
27
28
|
_defineProperty(this, "baseUrl", '');
|
|
28
29
|
_defineProperty(this, "defaultSecurityConfig", void 0);
|
|
29
30
|
_defineProperty(this, "landingPage", '');
|
|
31
|
+
_defineProperty(this, "getRegex", str => {
|
|
32
|
+
const wm_xsrf_token_index = str.indexOf('wm_xsrf_token') + 13; // 13 is the length of 'wm_xsrf_token' string
|
|
33
|
+
let index = wm_xsrf_token_index;
|
|
34
|
+
while (str[index] !== ':') {
|
|
35
|
+
index++;
|
|
36
|
+
}
|
|
37
|
+
const regExp = str.substring(wm_xsrf_token_index, index);
|
|
38
|
+
return new RegExp(regExp, "g");
|
|
39
|
+
});
|
|
40
|
+
_defineProperty(this, "formateData", data => {
|
|
41
|
+
const regex = this.getRegex(data);
|
|
42
|
+
return JSON.parse(data.replace(regex, "\""));
|
|
43
|
+
});
|
|
30
44
|
axios.interceptors.request.use(config => this.onBeforeServiceCall(config));
|
|
31
45
|
}
|
|
32
46
|
onBeforeServiceCall(config) {
|
|
@@ -90,6 +104,14 @@ class AppSecurityService {
|
|
|
90
104
|
});
|
|
91
105
|
}
|
|
92
106
|
load(baseURL) {
|
|
107
|
+
if (isWebPreviewMode()) {
|
|
108
|
+
var _document;
|
|
109
|
+
const token = (_document = document) === null || _document === void 0 || (_document = _document.cookie) === null || _document === void 0 ? void 0 : _document.split(';').filter(item => item.includes('wm_xsrf_token'));
|
|
110
|
+
if (token && token.length > 0) {
|
|
111
|
+
const wm_xsrf_token = token[0].split('=')[1];
|
|
112
|
+
wm_xsrf_token && StorageService.setItem(XSRF_COOKIE_NAME, wm_xsrf_token);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
93
115
|
return Promise.resolve().then(() => {
|
|
94
116
|
if (networkService.isConnected()) {
|
|
95
117
|
return axios.get(baseURL + '/services/security/info').then(response => response.data);
|
|
@@ -142,7 +164,9 @@ class AppSecurityService {
|
|
|
142
164
|
setTimeout(() => {
|
|
143
165
|
WebProcessService.execute('LOGIN', '/services/security/ssologin', false, true).then(output => {
|
|
144
166
|
if (output) {
|
|
145
|
-
|
|
167
|
+
if (output.data) {
|
|
168
|
+
return this.formateData(`${output.data}`);
|
|
169
|
+
}
|
|
146
170
|
}
|
|
147
171
|
return Promise.reject();
|
|
148
172
|
}).then(output => {
|
|
@@ -171,7 +195,23 @@ class AppSecurityService {
|
|
|
171
195
|
appLogout(options) {
|
|
172
196
|
return axios.post(options.baseURL + '/j_spring_security_logout', null, {
|
|
173
197
|
withCredentials: true
|
|
174
|
-
}).catch(() => {}).then(
|
|
198
|
+
}).catch(() => {}).then(response => {
|
|
199
|
+
var _response$data;
|
|
200
|
+
if (response !== null && response !== void 0 && (_response$data = response.data) !== null && _response$data !== void 0 && _response$data.result) {
|
|
201
|
+
if (isWebPreviewMode()) {
|
|
202
|
+
location.href = response.data.result;
|
|
203
|
+
return new Promise(r => setTimeout(r, 5000));
|
|
204
|
+
} else {
|
|
205
|
+
var _response$data2;
|
|
206
|
+
return axios.get(`${response === null || response === void 0 || (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.result}`, {
|
|
207
|
+
withCredentials: true
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return Promise.reject();
|
|
212
|
+
}).catch(e => {
|
|
213
|
+
console.error(e);
|
|
214
|
+
}).then(() => {
|
|
175
215
|
this.isLoggedIn = false;
|
|
176
216
|
this.redirectToLogin();
|
|
177
217
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","axios","each","includes","networkService","injector","StorageService","WebProcessService","USER_ROLE","authCookieStr","XSRF_COOKIE_NAME","xsrf_header_name","AppSecurityService","constructor","_defineProperty","interceptors","request","use","config","onBeforeServiceCall","appConfig","getAppConfig","baseUrl","url","getXsrfToken","then","token","_config$url","startsWith","headers","Promise","resolve","getItem","xsrf_token","get","navigateToLandingPage","_this$appConfig$curre","_this$appConfig$logge","currentPage","goToPage","loggedInUser","landingPage","setTimeout","_this$appConfig$curre2","openUrl","appLogin","options","payload","formData","value","name","encodeURIComponent","defaults","withCredentials","post","baseURL","response","xsrfCookieValue","data","setItem","isLoggedIn","load","userData","getLoggedInUserDetails","useDefaultSuccessHandler","app","triggerStartUpVariables","isConnected","getServiceDefinitions","defaultSecurityConfig","details","securityConfig","isSecurityEnabled","securityEnabled","authenticated","_appConfig$appPropert","isAuthenticated","roles","userInfo","userRoles","userName","id","userId","tenantId","userAttributes","dataSet","appProperties","homePage","redirectToLogin","redirectTo","_this$securityConfig","loginConfig","type","authUrl","OS","window","parent","location","href","execute","output","JSON","parse","replace","reject","refresh","_this$securityConfig$","_this$appConfig$curre3","loginPage","pageName","appLogout","catch","canUserAccessPage","_this$securityConfig2","res","status","matchRoles","widgetRoles","some","item","hasAccessToWidget","_this$loggedInUser$da","_this$loggedInUser$da2","_this$loggedInUser$da3","_this$loggedInUser$da4","widgetRolesArr","split","EVERYONE","ANONYMOUS","AUTHENTICATED","appSecurityService"],"sources":["app-security.service.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport axios, { InternalAxiosRequestConfig, AxiosResponse } from 'axios';\nimport { each, includes } from 'lodash';\n\nimport networkService from '@wavemaker/app-rn-runtime/core/network.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport StorageService from '@wavemaker/app-rn-runtime/core/storage.service';\nimport { SecurityService } from '@wavemaker/app-rn-runtime/core/security.service';\n\nimport WebProcessService from './webprocess.service';\n\ndeclare const window: any;\n\ninterface LoggedInUserConfig {\n isAuthenticated: Boolean;\n isSecurityEnabled: Boolean;\n roles: Array<string>;\n name: String;\n id: String;\n tenantId: String;\n userAttributes: any;\n landingPage: string;\n}\n\nenum USER_ROLE {\n EVERYONE = 'Everyone',\n ANONYMOUS = 'Anonymous',\n AUTHENTICATED = 'Authenticated'\n}\n\nconst authCookieStr = 'AUTH_COOKIE';\nconst XSRF_COOKIE_NAME = 'wm_xsrf_token';\nconst xsrf_header_name = 'X-WM-XSRF-TOKEN';\n\nclass AppSecurityService implements SecurityService {\n\n securityConfig: any;\n isLoggedIn = false;\n loggedInUser: any = {};\n token: any;\n appConfig: any;\n baseUrl: string = '';\n defaultSecurityConfig: any;\n landingPage = '';\n\n constructor() {\n axios.interceptors.request.use((config: InternalAxiosRequestConfig) => this.onBeforeServiceCall(config));\n }\n\n onBeforeServiceCall(config: InternalAxiosRequestConfig) {\n if (!this.appConfig) {\n this.appConfig = this.getAppConfig();\n this.baseUrl = this.appConfig.url;\n }\n return this.getXsrfToken().then((token: string) => {\n if (config.url?.startsWith(this.baseUrl) && token) {\n if(config.headers) config.headers[xsrf_header_name] = token;\n }\n return config\n });\n }\n\n private getXsrfToken(): Promise<string> {\n if (this.token) {\n return Promise.resolve(this.token);\n }\n return StorageService.getItem(XSRF_COOKIE_NAME).then(xsrf_token => {\n this.token = xsrf_token;\n return this.token;\n });\n }\n\n private getAppConfig() {\n return injector.get<AppConfig>('APP_CONFIG');\n }\n\n public navigateToLandingPage() {\n this.appConfig.currentPage?.goToPage(\n this.appConfig.loggedInUser?.landingPage \n || this.appConfig.landingPage \n || 'Main', null, true);\n if (this.landingPage) {\n const landingPage = this.landingPage;\n this.landingPage = '';\n setTimeout(() => {\n this.appConfig.currentPage?.openUrl(landingPage);\n }, 100);\n }\n }\n\n public appLogin(options: any) {\n // encode all parameters\n let payload = '';\n each(options.formData, function (value, name) {\n payload += (payload ? '&' : '') + encodeURIComponent(name) + '=' + encodeURIComponent(value);\n });\n axios.defaults.withCredentials = true;\n return axios.post(options.baseURL + '/j_spring_security_check', payload, {\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }}).then((response: AxiosResponse) => {\n const xsrfCookieValue = response.data ? response.data[XSRF_COOKIE_NAME] : '';\n this.token = xsrfCookieValue;\n StorageService.setItem(XSRF_COOKIE_NAME, xsrfCookieValue);\n this.isLoggedIn = true;\n }).then(() => this.load(options.baseURL))\n .then(async () => {\n const userData = await this.getLoggedInUserDetails(options.baseURL, options.useDefaultSuccessHandler);\n await this.appConfig.app.triggerStartUpVariables();\n return userData;\n });\n }\n\n public load(baseURL: string) {\n return Promise.resolve().then(() => {\n if (networkService.isConnected()) {\n return axios.get(baseURL + '/services/security/info')\n .then((response: AxiosResponse) => response.data);\n }\n return this.appConfig.getServiceDefinitions(this.appConfig.url)\n .then(() => Promise.resolve(this.defaultSecurityConfig));\n }).then((details: any) => {\n const loggedInUser = {} as LoggedInUserConfig;\n this.securityConfig = details || {};\n this.securityConfig.isSecurityEnabled = !!details?.securityEnabled;\n const appConfig = this.appConfig;\n if (typeof details !== 'string' && (!details.securityEnabled || details.authenticated)) {\n if (details.authenticated) {\n loggedInUser.isAuthenticated = details.authenticated;\n loggedInUser.isSecurityEnabled = details.authenticated;\n loggedInUser.roles = details.userInfo.userRoles;\n loggedInUser.name = details.userInfo.userName;\n loggedInUser.id = details.userInfo.userId;\n loggedInUser.tenantId = details.userInfo.tenantId;\n loggedInUser.userAttributes = details.userInfo.userAttributes;\n loggedInUser.landingPage = details.userInfo.landingPage;\n appConfig.loggedInUser = loggedInUser;\n this.loggedInUser.dataSet = loggedInUser;\n appConfig.landingPage = appConfig.appProperties?.homePage;\n }\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n return details;\n });\n } else {\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n this.redirectToLogin();\n });\n }\n });\n }\n\n private getLoggedInUserDetails(baseURL: string, useDefaultSuccessHandler: boolean = true) {\n if (!baseURL) {\n this.loggedInUser = {};\n return Promise.resolve({});\n }\n return this.load(baseURL);\n }\n\n \n public redirectToLogin(redirectTo?: string) {\n if (this.securityConfig?.loginConfig?.type === 'SSO') {\n const authUrl = this.appConfig.url + '/services/security/ssologin';\n if (Platform.OS === 'web') {\n (window.parent || window).location.href = authUrl;\n } else {\n setTimeout(() => {\n WebProcessService.execute('LOGIN', '/services/security/ssologin', false, true)\n .then((output: any) => {\n if (output) {\n return JSON.parse(output.data && output.data.replace(/"/g, \"\\\"\"));\n }\n return Promise.reject();\n }).then((output: any) => {\n if (output[XSRF_COOKIE_NAME]) {\n this.token = output[XSRF_COOKIE_NAME];\n StorageService.setItem(XSRF_COOKIE_NAME, output[XSRF_COOKIE_NAME]);\n }\n }).then(() => {\n this.appConfig.refresh(true);\n }).then(() => this.load(this.baseUrl)).then(() => {\n return this.getLoggedInUserDetails(this.baseUrl);\n });\n }, 1000);\n }\n } else {\n const loginPage = this.securityConfig.loginConfig?.pageName || 'Login';\n if (redirectTo && !redirectTo.startsWith('#/'+ loginPage)) {\n this.landingPage = redirectTo;\n }\n injector.get<AppConfig>('APP_CONFIG').landingPage = loginPage;\n this.appConfig.currentPage?.goToPage(loginPage, null, true);\n }\n this.appConfig.refresh();\n }\n\n public appLogout(options: any) {\n return axios.post(options.baseURL + '/j_spring_security_logout', null, {\n withCredentials: true\n }).catch(() => {}).then(() => {\n this.isLoggedIn = false;\n this.redirectToLogin();\n });\n }\n\n public canUserAccessPage(pageName: string) {\n if (this.baseUrl && this.securityConfig?.isSecurityEnabled) {\n return axios.get(this.baseUrl + `/pages/${pageName}/${pageName}.html`)\n .catch((res) => res)\n .then((res) => res.status === 200 || res.status === 304); \n } else {\n return Promise.resolve(true);\n }\n }\n\n private matchRoles(widgetRoles: Array<String>, userRoles: Array<String>) {\n return widgetRoles.some(function (item) {\n return includes(userRoles, item);\n });\n }\n\n public hasAccessToWidget(widgetRoles: String) {\n const widgetRolesArr = widgetRoles.split(',');\n // access the widget when 'Everyone' is chosen\n if (includes(widgetRolesArr, USER_ROLE.EVERYONE)) {\n return true;\n }\n\n // access the widget when 'Anonymous' is chosen and user is not authenticated\n if (includes(widgetRolesArr, USER_ROLE.ANONYMOUS) && !this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when 'Only Authenticated Users' is chosen and user is authenticated\n if (includes(widgetRolesArr, USER_ROLE.AUTHENTICATED) && this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when widget role and logged in user role matches\n return this.loggedInUser.dataSet?.isAuthenticated && this.matchRoles(widgetRolesArr, this.loggedInUser.dataSet?.roles);\n }\n}\n\nconst appSecurityService = new AppSecurityService();\n\nexport default appSecurityService;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Platform","axios","each","includes","networkService","injector","StorageService","WebProcessService","isWebPreviewMode","USER_ROLE","authCookieStr","XSRF_COOKIE_NAME","xsrf_header_name","AppSecurityService","constructor","_defineProperty","str","wm_xsrf_token_index","indexOf","index","regExp","substring","RegExp","data","regex","getRegex","JSON","parse","replace","interceptors","request","use","config","onBeforeServiceCall","appConfig","getAppConfig","baseUrl","url","getXsrfToken","then","token","_config$url","startsWith","headers","Promise","resolve","getItem","xsrf_token","get","navigateToLandingPage","_this$appConfig$curre","_this$appConfig$logge","currentPage","goToPage","loggedInUser","landingPage","setTimeout","_this$appConfig$curre2","openUrl","appLogin","options","payload","formData","value","name","encodeURIComponent","defaults","withCredentials","post","baseURL","response","xsrfCookieValue","setItem","isLoggedIn","load","userData","getLoggedInUserDetails","useDefaultSuccessHandler","app","triggerStartUpVariables","_document","document","cookie","split","filter","item","length","wm_xsrf_token","isConnected","getServiceDefinitions","defaultSecurityConfig","details","securityConfig","isSecurityEnabled","securityEnabled","authenticated","_appConfig$appPropert","isAuthenticated","roles","userInfo","userRoles","userName","id","userId","tenantId","userAttributes","dataSet","appProperties","homePage","redirectToLogin","redirectTo","_this$securityConfig","loginConfig","type","authUrl","OS","window","parent","location","href","execute","output","formateData","reject","refresh","_this$securityConfig$","_this$appConfig$curre3","loginPage","pageName","appLogout","catch","_response$data","result","r","_response$data2","e","console","error","canUserAccessPage","_this$securityConfig2","res","status","matchRoles","widgetRoles","some","hasAccessToWidget","_this$loggedInUser$da","_this$loggedInUser$da2","_this$loggedInUser$da3","_this$loggedInUser$da4","widgetRolesArr","EVERYONE","ANONYMOUS","AUTHENTICATED","appSecurityService"],"sources":["app-security.service.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport axios, { InternalAxiosRequestConfig, AxiosResponse } from 'axios';\nimport { each, includes } from 'lodash';\n\nimport networkService from '@wavemaker/app-rn-runtime/core/network.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport StorageService from '@wavemaker/app-rn-runtime/core/storage.service';\nimport { SecurityService } from '@wavemaker/app-rn-runtime/core/security.service';\n\nimport WebProcessService from './webprocess.service';\nimport { isWebPreviewMode } from '@wavemaker/app-rn-runtime/core/utils';\n\ndeclare const window: any;\n\ninterface LoggedInUserConfig {\n isAuthenticated: Boolean;\n isSecurityEnabled: Boolean;\n roles: Array<string>;\n name: String;\n id: String;\n tenantId: String;\n userAttributes: any;\n landingPage: string;\n}\n\nenum USER_ROLE {\n EVERYONE = 'Everyone',\n ANONYMOUS = 'Anonymous',\n AUTHENTICATED = 'Authenticated'\n}\n\nconst authCookieStr = 'AUTH_COOKIE';\nconst XSRF_COOKIE_NAME = 'wm_xsrf_token';\nconst xsrf_header_name = 'X-WM-XSRF-TOKEN';\n\nclass AppSecurityService implements SecurityService {\n\n securityConfig: any;\n isLoggedIn = false;\n loggedInUser: any = {};\n token: any;\n appConfig: any;\n baseUrl: string = '';\n defaultSecurityConfig: any;\n landingPage = '';\n\n constructor() {\n axios.interceptors.request.use((config: InternalAxiosRequestConfig) => this.onBeforeServiceCall(config));\n }\n\n getRegex = (str: string) =>{\n const wm_xsrf_token_index = str.indexOf('wm_xsrf_token') + 13; // 13 is the length of 'wm_xsrf_token' string\n let index = wm_xsrf_token_index;\n\n while(str[index] !== ':'){\n index++;\n }\n \n const regExp = str.substring(wm_xsrf_token_index, index);\n return new RegExp(regExp, \"g\");\n }\n \n formateData = (data: string) => {\n const regex = this.getRegex(data)\n return JSON.parse(data.replace(regex, \"\\\"\"));\n }\n\n onBeforeServiceCall(config: InternalAxiosRequestConfig) {\n if (!this.appConfig) {\n this.appConfig = this.getAppConfig();\n this.baseUrl = this.appConfig.url;\n }\n return this.getXsrfToken().then((token: string) => {\n if (config.url?.startsWith(this.baseUrl) && token) {\n if(config.headers) config.headers[xsrf_header_name] = token;\n }\n return config\n });\n }\n\n private getXsrfToken(): Promise<string> {\n if (this.token) {\n return Promise.resolve(this.token);\n }\n return StorageService.getItem(XSRF_COOKIE_NAME).then(xsrf_token => {\n this.token = xsrf_token;\n return this.token;\n });\n }\n\n private getAppConfig() {\n return injector.get<AppConfig>('APP_CONFIG');\n }\n\n public navigateToLandingPage() {\n this.appConfig.currentPage?.goToPage(\n this.appConfig.loggedInUser?.landingPage \n || this.appConfig.landingPage \n || 'Main', null, true);\n if (this.landingPage) {\n const landingPage = this.landingPage;\n this.landingPage = '';\n setTimeout(() => {\n this.appConfig.currentPage?.openUrl(landingPage);\n }, 100);\n }\n }\n\n public appLogin(options: any) {\n // encode all parameters\n let payload = '';\n each(options.formData, function (value, name) {\n payload += (payload ? '&' : '') + encodeURIComponent(name) + '=' + encodeURIComponent(value);\n });\n axios.defaults.withCredentials = true;\n return axios.post(options.baseURL + '/j_spring_security_check', payload, {\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }}).then((response: AxiosResponse) => {\n const xsrfCookieValue = response.data ? response.data[XSRF_COOKIE_NAME] : '';\n this.token = xsrfCookieValue;\n StorageService.setItem(XSRF_COOKIE_NAME, xsrfCookieValue);\n this.isLoggedIn = true;\n }).then(() => this.load(options.baseURL))\n .then(async () => {\n const userData = await this.getLoggedInUserDetails(options.baseURL, options.useDefaultSuccessHandler);\n await this.appConfig.app.triggerStartUpVariables();\n return userData;\n });\n }\n\n public load(baseURL: string) {\n if (isWebPreviewMode()) {\n const token = document?.cookie?.split(';').filter(item => item.includes('wm_xsrf_token'))\n if (token && token.length > 0) {\n const wm_xsrf_token = token[0].split('=')[1];\n wm_xsrf_token && StorageService.setItem(XSRF_COOKIE_NAME, wm_xsrf_token);\n }\n }\n\n return Promise.resolve().then(() => {\n if (networkService.isConnected()) {\n return axios.get(baseURL + '/services/security/info')\n .then((response: AxiosResponse) => response.data);\n }\n return this.appConfig.getServiceDefinitions(this.appConfig.url)\n .then(() => Promise.resolve(this.defaultSecurityConfig));\n }).then((details: any) => {\n const loggedInUser = {} as LoggedInUserConfig;\n this.securityConfig = details || {};\n this.securityConfig.isSecurityEnabled = !!details?.securityEnabled;\n const appConfig = this.appConfig;\n if (typeof details !== 'string' && (!details.securityEnabled || details.authenticated)) {\n if (details.authenticated) {\n loggedInUser.isAuthenticated = details.authenticated;\n loggedInUser.isSecurityEnabled = details.authenticated;\n loggedInUser.roles = details.userInfo.userRoles;\n loggedInUser.name = details.userInfo.userName;\n loggedInUser.id = details.userInfo.userId;\n loggedInUser.tenantId = details.userInfo.tenantId;\n loggedInUser.userAttributes = details.userInfo.userAttributes;\n loggedInUser.landingPage = details.userInfo.landingPage;\n appConfig.loggedInUser = loggedInUser;\n this.loggedInUser.dataSet = loggedInUser;\n appConfig.landingPage = appConfig.appProperties?.homePage;\n }\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n return details;\n });\n } else {\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n this.redirectToLogin();\n });\n }\n });\n }\n\n private getLoggedInUserDetails(baseURL: string, useDefaultSuccessHandler: boolean = true) {\n if (!baseURL) {\n this.loggedInUser = {};\n return Promise.resolve({});\n }\n return this.load(baseURL);\n }\n\n \n public redirectToLogin(redirectTo?: string) {\n if (this.securityConfig?.loginConfig?.type === 'SSO') {\n const authUrl = this.appConfig.url + '/services/security/ssologin';\n if (Platform.OS === 'web') {\n (window.parent || window).location.href = authUrl;\n } else {\n setTimeout(() => {\n WebProcessService.execute('LOGIN', '/services/security/ssologin', false, true)\n .then((output: any) => {\n if (output) {\n if(output.data){\n return this.formateData(`${output.data}`);\n }\n }\n return Promise.reject();\n }).then((output: any) => {\n if (output[XSRF_COOKIE_NAME]) {\n this.token = output[XSRF_COOKIE_NAME];\n StorageService.setItem(XSRF_COOKIE_NAME, output[XSRF_COOKIE_NAME]);\n }\n }).then(() => {\n this.appConfig.refresh(true);\n }).then(() => this.load(this.baseUrl)).then(() => {\n return this.getLoggedInUserDetails(this.baseUrl);\n });\n }, 1000);\n }\n } else {\n const loginPage = this.securityConfig.loginConfig?.pageName || 'Login';\n if (redirectTo && !redirectTo.startsWith('#/'+ loginPage)) {\n this.landingPage = redirectTo;\n }\n injector.get<AppConfig>('APP_CONFIG').landingPage = loginPage;\n this.appConfig.currentPage?.goToPage(loginPage, null, true);\n }\n this.appConfig.refresh();\n }\n\n public appLogout(options: any) {\n return axios.post(options.baseURL + '/j_spring_security_logout', null, {\n withCredentials: true\n })\n .catch(() => {})\n .then((response) => {\n if(response?.data?.result){\n if (isWebPreviewMode()) {\n location.href = response.data.result;\n return new Promise(r => setTimeout(r, 5000));\n } else {\n return axios.get(`${response?.data?.result}`, {\n withCredentials: true,\n });\n }\n }\n return Promise.reject();\n })\n .catch((e) => {\n console.error(e);\n })\n .then(()=>{\n this.isLoggedIn = false;\n this.redirectToLogin();\n });\n }\n\n public canUserAccessPage(pageName: string) {\n if (this.baseUrl && this.securityConfig?.isSecurityEnabled) {\n return axios.get(this.baseUrl + `/pages/${pageName}/${pageName}.html`)\n .catch((res) => res)\n .then((res) => res.status === 200 || res.status === 304); \n } else {\n return Promise.resolve(true);\n }\n }\n\n private matchRoles(widgetRoles: Array<String>, userRoles: Array<String>) {\n return widgetRoles.some(function (item) {\n return includes(userRoles, item);\n });\n }\n\n public hasAccessToWidget(widgetRoles: String) {\n const widgetRolesArr = widgetRoles.split(',');\n // access the widget when 'Everyone' is chosen\n if (includes(widgetRolesArr, USER_ROLE.EVERYONE)) {\n return true;\n }\n\n // access the widget when 'Anonymous' is chosen and user is not authenticated\n if (includes(widgetRolesArr, USER_ROLE.ANONYMOUS) && !this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when 'Only Authenticated Users' is chosen and user is authenticated\n if (includes(widgetRolesArr, USER_ROLE.AUTHENTICATED) && this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when widget role and logged in user role matches\n return this.loggedInUser.dataSet?.isAuthenticated && this.matchRoles(widgetRolesArr, this.loggedInUser.dataSet?.roles);\n }\n}\n\nconst appSecurityService = new AppSecurityService();\n\nexport default appSecurityService;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -44,7 +44,6 @@ export class AppSpinnerService {
|
|
|
44
44
|
this.count++;
|
|
45
45
|
}
|
|
46
46
|
hide() {
|
|
47
|
-
this.skeleton = false;
|
|
48
47
|
if (this.count > 0) {
|
|
49
48
|
this.count--;
|
|
50
49
|
} else {
|
|
@@ -55,6 +54,7 @@ export class AppSpinnerService {
|
|
|
55
54
|
if (!this.count && this.destroy) {
|
|
56
55
|
this.destroy.call(this.displayManager);
|
|
57
56
|
this.destroy = null;
|
|
57
|
+
this.skeleton = false;
|
|
58
58
|
}
|
|
59
59
|
}, 300);
|
|
60
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","appDisplayManagerService","WmSpinner","ThemeVariables","AppSpinnerService","constructor","displayManager","_defineProperty","setImage","path","image","setDefaultOptions","options","defaultDisplayOptions","show","skeleton","spinner","loader","count","destroy","setTimeout","content","createElement","Fragment","style","styles","appSpinnerContainer","backgroundColor","INSTANCE","pageContentBgColor","caption","message","classname","lottie","delay","hide","call","justifyContent","alignItems","width","height","opacity","spinnerService"],"sources":["app-spinner.service.tsx"],"sourcesContent":["import React from 'react';\n\nimport { View, ViewStyle } from 'react-native';\n\nimport { SpinnerService, DisplayOptions } from '@wavemaker/app-rn-runtime/core/spinner.service';\nimport { DisplayManager } from '@wavemaker/app-rn-runtime/core/display.manager';\nimport appDisplayManagerService from '@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service';\nimport WmSpinner from '@wavemaker/app-rn-runtime/components/basic/spinner/spinner.component';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\n\nexport class AppSpinnerService implements SpinnerService {\n public displayOptions = {} as DisplayOptions;\n public destroy: any;\n public delay = 0;\n private count = 0;\n private image: string = '';\n public skeleton: boolean = false;\n private defaultDisplayOptions: DisplayOptions = {} as any;\n constructor(private displayManager: DisplayManager) {}\n\n setImage(path: string) {\n this.image = path;\n }\n\n setDefaultOptions(options: DisplayOptions) {\n this.defaultDisplayOptions = options;\n }\n\n show(options: DisplayOptions = this.defaultDisplayOptions) {\n this.skeleton = options.spinner.loader == 'skeleton';\n if (this.count === 0 && !this.destroy) { \n setTimeout(() => {\n const content = (<>\n {!this.skeleton? \n <View style={[styles.appSpinnerContainer, { backgroundColor: ThemeVariables.INSTANCE.pageContentBgColor }]}>\n <WmSpinner\n caption={options.message || ''}\n classname=\"global-spinner\"\n lottie={options.spinner}></WmSpinner>\n </View> : null}\n </>);\n this.destroy = this.displayManager.show({ content: content });\n }, this.delay);\n }\n this.count++;\n }\n\n hide() {\n
|
|
1
|
+
{"version":3,"names":["React","View","appDisplayManagerService","WmSpinner","ThemeVariables","AppSpinnerService","constructor","displayManager","_defineProperty","setImage","path","image","setDefaultOptions","options","defaultDisplayOptions","show","skeleton","spinner","loader","count","destroy","setTimeout","content","createElement","Fragment","style","styles","appSpinnerContainer","backgroundColor","INSTANCE","pageContentBgColor","caption","message","classname","lottie","delay","hide","call","justifyContent","alignItems","width","height","opacity","spinnerService"],"sources":["app-spinner.service.tsx"],"sourcesContent":["import React from 'react';\n\nimport { View, ViewStyle } from 'react-native';\n\nimport { SpinnerService, DisplayOptions } from '@wavemaker/app-rn-runtime/core/spinner.service';\nimport { DisplayManager } from '@wavemaker/app-rn-runtime/core/display.manager';\nimport appDisplayManagerService from '@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service';\nimport WmSpinner from '@wavemaker/app-rn-runtime/components/basic/spinner/spinner.component';\nimport ThemeVariables from '@wavemaker/app-rn-runtime/styles/theme.variables';\n\nexport class AppSpinnerService implements SpinnerService {\n public displayOptions = {} as DisplayOptions;\n public destroy: any;\n public delay = 0;\n private count = 0;\n private image: string = '';\n public skeleton: boolean = false;\n private defaultDisplayOptions: DisplayOptions = {} as any;\n constructor(private displayManager: DisplayManager) {}\n\n setImage(path: string) {\n this.image = path;\n }\n\n setDefaultOptions(options: DisplayOptions) {\n this.defaultDisplayOptions = options;\n }\n\n show(options: DisplayOptions = this.defaultDisplayOptions) {\n this.skeleton = options.spinner.loader == 'skeleton';\n if (this.count === 0 && !this.destroy) { \n setTimeout(() => {\n const content = (<>\n {!this.skeleton? \n <View style={[styles.appSpinnerContainer, { backgroundColor: ThemeVariables.INSTANCE.pageContentBgColor }]}>\n <WmSpinner\n caption={options.message || ''}\n classname=\"global-spinner\"\n lottie={options.spinner}></WmSpinner>\n </View> : null}\n </>);\n this.destroy = this.displayManager.show({ content: content });\n }, this.delay);\n }\n this.count++;\n }\n\n hide() {\n if (this.count > 0) {\n this.count--;\n } else {\n this.count = 0;\n }\n if (this.count === 0) {\n setTimeout(() => {\n if (!this.count && this.destroy) {\n this.destroy.call(this.displayManager);\n this.destroy = null;\n this.skeleton = false;\n }\n }, 300);\n }\n }\n}\n\nconst styles = {\n appSpinnerContainer:{ \n justifyContent: 'center', \n alignItems: 'center', \n width:'100%', \n height:'100%', \n opacity: 0.8 \n } as ViewStyle\n}\n\nconst spinnerService = new AppSpinnerService(appDisplayManagerService);\nexport default spinnerService;\n"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,IAAI,QAAmB,cAAc;AAI9C,OAAOC,wBAAwB,MAAM,wEAAwE;AAC7G,OAAOC,SAAS,MAAM,sEAAsE;AAC5F,OAAOC,cAAc,MAAM,kDAAkD;AAE7E,OAAO,MAAMC,iBAAiB,CAA2B;EAQvDC,WAAWA,CAASC,cAA8B,EAAE;IAAA,KAAhCA,cAA8B,GAA9BA,cAA8B;IAAAC,eAAA,yBAP1B,CAAC,CAAC;IAAAA,eAAA;IAAAA,eAAA,gBAEX,CAAC;IAAAA,eAAA,gBACA,CAAC;IAAAA,eAAA,gBACO,EAAE;IAAAA,eAAA,mBACC,KAAK;IAAAA,eAAA,gCACiB,CAAC,CAAC;EACE;EAErDC,QAAQA,CAACC,IAAY,EAAE;IACrB,IAAI,CAACC,KAAK,GAAGD,IAAI;EACnB;EAEAE,iBAAiBA,CAACC,OAAuB,EAAE;IACzC,IAAI,CAACC,qBAAqB,GAAGD,OAAO;EACtC;EAEAE,IAAIA,CAACF,OAAuB,GAAG,IAAI,CAACC,qBAAqB,EAAE;IACzD,IAAI,CAACE,QAAQ,GAAGH,OAAO,CAACI,OAAO,CAACC,MAAM,IAAI,UAAU;IACpD,IAAI,IAAI,CAACC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE;MACrCC,UAAU,CAAC,MAAM;QACf,MAAMC,OAAO,gBAAItB,KAAA,CAAAuB,aAAA,CAAAvB,KAAA,CAAAwB,QAAA,QACd,CAAC,IAAI,CAACR,QAAQ,gBACbhB,KAAA,CAAAuB,aAAA,CAACtB,IAAI;UAACwB,KAAK,EAAE,CAACC,MAAM,CAACC,mBAAmB,EAAE;YAAEC,eAAe,EAAExB,cAAc,CAACyB,QAAQ,CAACC;UAAmB,CAAC;QAAE,gBACzG9B,KAAA,CAAAuB,aAAA,CAACpB,SAAS;UACR4B,OAAO,EAAElB,OAAO,CAACmB,OAAO,IAAI,EAAG;UAC/BC,SAAS,EAAC,gBAAgB;UAC1BC,MAAM,EAAErB,OAAO,CAACI;QAAQ,CAAY,CAClC,CAAC,GAAG,IACR,CAAE;QACR,IAAI,CAACG,OAAO,GAAG,IAAI,CAACb,cAAc,CAACQ,IAAI,CAAC;UAAEO,OAAO,EAAEA;QAAQ,CAAC,CAAC;MAC/D,CAAC,EAAE,IAAI,CAACa,KAAK,CAAC;IAChB;IACA,IAAI,CAAChB,KAAK,EAAE;EACd;EAEAiB,IAAIA,CAAA,EAAG;IACL,IAAI,IAAI,CAACjB,KAAK,GAAG,CAAC,EAAE;MAClB,IAAI,CAACA,KAAK,EAAE;IACd,CAAC,MAAM;MACL,IAAI,CAACA,KAAK,GAAG,CAAC;IAChB;IACA,IAAI,IAAI,CAACA,KAAK,KAAK,CAAC,EAAE;MACpBE,UAAU,CAAC,MAAM;QACf,IAAI,CAAC,IAAI,CAACF,KAAK,IAAI,IAAI,CAACC,OAAO,EAAE;UAC/B,IAAI,CAACA,OAAO,CAACiB,IAAI,CAAC,IAAI,CAAC9B,cAAc,CAAC;UACtC,IAAI,CAACa,OAAO,GAAG,IAAI;UACnB,IAAI,CAACJ,QAAQ,GAAG,KAAK;QACvB;MACF,CAAC,EAAE,GAAG,CAAC;IACT;EACF;AACF;AAEA,MAAMU,MAAM,GAAG;EACbC,mBAAmB,EAAC;IAClBW,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,KAAK,EAAC,MAAM;IACZC,MAAM,EAAC,MAAM;IACbC,OAAO,EAAE;EACX;AACF,CAAC;AAED,MAAMC,cAAc,GAAG,IAAItC,iBAAiB,CAACH,wBAAwB,CAAC;AACtE,eAAeyC,cAAc","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["axios","React","Component","Dimensions","View","WmWebview","injector","AppDisplayManagerService","windowWidth","get","width","windowHeight","height","WebProcessWebViewProps","constructor","_defineProperty","WebProcessWebView","props","getScriptToInject","process","render","createElement","style","src","incognito","styles","root","onLoad","e","w","setTimeout","executeScript","then","output","onComplete","WebProcessService","execute","hookUrl","useSystemBrowser","baseUrl","url","withCredentials","response","executeWithSystemBrowser","data","executeWithInAppBrowser","processInfo","Promise","reject","resolve","destroyFn","show","content","encodeURIComponent","ouput","call"],"sources":["webprocess.service.tsx"],"sourcesContent":["import axios from \"axios\";\nimport React, { Component } from \"react\";\nimport { Dimensions, View } from \"react-native\";\n\nimport WmWebview from \"@wavemaker/app-rn-runtime/components/advanced/webview/webview.component\";\nimport AppConfig from \"@wavemaker/app-rn-runtime/core/AppConfig\";\nimport injector from \"@wavemaker/app-rn-runtime/core/injector\";\n\nimport AppDisplayManagerService from \"./app-display-manager.service\";\n\ndeclare const window: any, document: any, alert: any;\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nclass WebProcessWebViewProps {\n src: string = \"\";\n process: string = \"\";\n incognito = false;\n onComplete?: (output: string) => any = null as any;\n}\n \nclass WebProcessWebView extends Component<WebProcessWebViewProps> {\n\n constructor(props: WebProcessWebViewProps) {\n super(props);\n }\n\n private getScriptToInject(process: string): string {\n return `(function() {\n var elements = document.querySelectorAll('body.flex>a.link');\n for (var i = 0; i < elements.length; i++) {\n var href = elements[i].href;\n if (href && href.indexOf('://services/webprocess/${process}?process_output=')) {\n return href.split('process_output=')[1];\n }\n }\n window.isWebLoginProcess = true;\n })()`;\n }\n\n render() {\n return(\n <View style={{\n width: windowWidth,\n height: windowHeight\n }}>\n <WmWebview src={this.props.src}\n incognito={this.props.incognito}\n styles={{\n root: {\n width: '100%',\n height: '100%'\n }\n }}\n onLoad={(e, w) => {\n setTimeout(() => {\n w.executeScript(this.getScriptToInject(this.props.process))\n .then((output) => {\n if (output) {\n const onComplete = this.props.onComplete;\n onComplete && onComplete(output as string);\n }\n });\n }, 1000);\n }}></WmWebview>\n </View>\n );\n }\n}\n\nexport class WebProcessService {\n\n baseUrl: string | null = null;\n\n constructor() {}\n\n public execute(process: string, hookUrl: string, useSystemBrowser = false, incognito = false): Promise<any> {\n if (!this.baseUrl) {\n this.baseUrl = injector.get<AppConfig>('APP_CONFIG').url;\n }\n return axios.get(this.baseUrl + `/services/webprocess/prepare?processName=${process}&hookUrl=${hookUrl}&requestSourceType=MOBILE`, {\n withCredentials: true\n })\n .then((response) => {\n if (useSystemBrowser) {\n return this.executeWithSystemBrowser(response.data);\n } else {\n return this.executeWithInAppBrowser(response.data, process, incognito);\n }\n }).then(output => {\n return axios.get(this.baseUrl + '/services/webprocess/decode?encodedProcessdata=' + output, {\n withCredentials: true\n });\n });\n }\n\n private executeWithSystemBrowser(processInfo: string): Promise<any> {\n return Promise.reject('Web Process in System browser is nor ready yet');\n }\n\n private executeWithInAppBrowser(processInfo: string, process: string, incognito: boolean): Promise<any> {\n return new Promise((resolve, reject) => {\n let destroyFn = () => {};\n destroyFn = AppDisplayManagerService.show({\n content: (\n <WebProcessWebView \n src={this.baseUrl + '/services/webprocess/start?process=' + encodeURIComponent(processInfo)}\n incognito={incognito}\n process={process}\n onComplete={(ouput) => {\n resolve(ouput);\n destroyFn.call(AppDisplayManagerService);\n }}></WebProcessWebView>\n ),\n \n });\n });\n }\n}\n\nexport default new WebProcessService();"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,OAAOC,SAAS,MAAM,yEAAyE;AAE/F,OAAOC,QAAQ,MAAM,yCAAyC;AAE9D,OAAOC,wBAAwB,MAAM,+BAA+B;AAIpE,MAAMC,WAAW,GAAGL,UAAU,CAACM,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK;AAClD,MAAMC,YAAY,GAAGR,UAAU,CAACM,GAAG,CAAC,QAAQ,CAAC,CAACG,MAAM;AAEpD,MAAMC,sBAAsB,CAAC;EAAAC,YAAA;IAAAC,eAAA,cACX,EAAE;IAAAA,eAAA,kBACE,EAAE;IAAAA,eAAA,oBACR,KAAK;IAAAA,eAAA,qBACsB,IAAI;EAAA;AAC/C;AAEA,MAAMC,iBAAiB,SAASd,SAAS,CAAyB;EAE9DY,WAAWA,CAACG,KAA6B,EAAE;IACzC,KAAK,CAACA,KAAK,CAAC;EACd;EAEQC,iBAAiBA,CAACC,OAAe,EAAU;IAC/C,
|
|
1
|
+
{"version":3,"names":["axios","React","Component","Dimensions","View","WmWebview","injector","AppDisplayManagerService","windowWidth","get","width","windowHeight","height","WebProcessWebViewProps","constructor","_defineProperty","WebProcessWebView","props","getScriptToInject","process","render","createElement","style","src","incognito","styles","root","onLoad","e","w","setTimeout","executeScript","then","output","onComplete","WebProcessService","execute","hookUrl","useSystemBrowser","baseUrl","url","withCredentials","response","executeWithSystemBrowser","data","executeWithInAppBrowser","processInfo","Promise","reject","resolve","destroyFn","show","content","encodeURIComponent","ouput","call"],"sources":["webprocess.service.tsx"],"sourcesContent":["import axios from \"axios\";\nimport React, { Component } from \"react\";\nimport { Dimensions, View } from \"react-native\";\n\nimport WmWebview from \"@wavemaker/app-rn-runtime/components/advanced/webview/webview.component\";\nimport AppConfig from \"@wavemaker/app-rn-runtime/core/AppConfig\";\nimport injector from \"@wavemaker/app-rn-runtime/core/injector\";\n\nimport AppDisplayManagerService from \"./app-display-manager.service\";\n\ndeclare const window: any, document: any, alert: any;\n\nconst windowWidth = Dimensions.get('window').width;\nconst windowHeight = Dimensions.get('window').height;\n\nclass WebProcessWebViewProps {\n src: string = \"\";\n process: string = \"\";\n incognito = false;\n onComplete?: (output: string) => any = null as any;\n}\n \nclass WebProcessWebView extends Component<WebProcessWebViewProps> {\n\n constructor(props: WebProcessWebViewProps) {\n super(props);\n }\n\n private getScriptToInject(process: string): string {\n return `(function() {\n var elements = document.querySelectorAll('body.flex>a.link');\n for (var i = 0; i < elements.length; i++) {\n var href = elements[i].href;\n if (href && href.indexOf('://services/webprocess/${process}?process_output=')) {\n return href.split('process_output=')[1];\n }\n }\n window.isWebLoginProcess = true;\n })()`;\n }\n\n render() {\n return(\n <View style={{\n width: windowWidth,\n height: windowHeight\n }}>\n <WmWebview src={this.props.src}\n incognito={this.props.incognito}\n styles={{\n root: {\n width: '100%',\n height: '100%'\n }\n }}\n onLoad={(e, w) => {\n setTimeout(() => {\n w.executeScript(this.getScriptToInject(this.props.process))\n .then((output) => {\n if (output) {\n const onComplete = this.props.onComplete;\n onComplete && onComplete(output as string);\n }\n });\n }, 1000);\n }}></WmWebview>\n </View>\n );\n }\n}\n\nexport class WebProcessService {\n\n baseUrl: string | null = null;\n\n constructor() {}\n\n public execute(process: string, hookUrl: string, useSystemBrowser = false, incognito = false): Promise<any> {\n if (!this.baseUrl) {\n this.baseUrl = injector.get<AppConfig>('APP_CONFIG').url;\n }\n return axios.get(this.baseUrl + `/services/webprocess/prepare?processName=${process}&hookUrl=${hookUrl}&requestSourceType=MOBILE`, {\n withCredentials: true\n })\n .then((response) => {\n if (useSystemBrowser) {\n return this.executeWithSystemBrowser(response.data);\n } else {\n return this.executeWithInAppBrowser(response.data, process, incognito);\n }\n }).then(output => {\n return axios.get(this.baseUrl + '/services/webprocess/decode?encodedProcessdata=' + output, {\n withCredentials: true\n });\n });\n }\n\n private executeWithSystemBrowser(processInfo: string): Promise<any> {\n return Promise.reject('Web Process in System browser is nor ready yet');\n }\n\n private executeWithInAppBrowser(processInfo: string, process: string, incognito: boolean): Promise<any> {\n return new Promise((resolve, reject) => {\n let destroyFn = () => {};\n destroyFn = AppDisplayManagerService.show({\n content: (\n <WebProcessWebView \n src={this.baseUrl + '/services/webprocess/start?process=' + encodeURIComponent(processInfo)}\n incognito={incognito}\n process={process}\n onComplete={(ouput) => {\n resolve(ouput);\n destroyFn.call(AppDisplayManagerService);\n }}></WebProcessWebView>\n ),\n \n });\n });\n }\n}\n\nexport default new WebProcessService();"],"mappings":";;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,OAAOC,SAAS,MAAM,yEAAyE;AAE/F,OAAOC,QAAQ,MAAM,yCAAyC;AAE9D,OAAOC,wBAAwB,MAAM,+BAA+B;AAIpE,MAAMC,WAAW,GAAGL,UAAU,CAACM,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK;AAClD,MAAMC,YAAY,GAAGR,UAAU,CAACM,GAAG,CAAC,QAAQ,CAAC,CAACG,MAAM;AAEpD,MAAMC,sBAAsB,CAAC;EAAAC,YAAA;IAAAC,eAAA,cACX,EAAE;IAAAA,eAAA,kBACE,EAAE;IAAAA,eAAA,oBACR,KAAK;IAAAA,eAAA,qBACsB,IAAI;EAAA;AAC/C;AAEA,MAAMC,iBAAiB,SAASd,SAAS,CAAyB;EAE9DY,WAAWA,CAACG,KAA6B,EAAE;IACzC,KAAK,CAACA,KAAK,CAAC;EACd;EAEQC,iBAAiBA,CAACC,OAAe,EAAU;IAC/C,OAAO;AACf;AACA;AACA;AACA,mEAAmEA,OAAO;AAC1E;AACA;AACA;AACA;AACA,aAAa;EACT;EAEAC,MAAMA,CAAA,EAAG;IACP,oBACEnB,KAAA,CAAAoB,aAAA,CAACjB,IAAI;MAACkB,KAAK,EAAE;QACXZ,KAAK,EAAEF,WAAW;QAClBI,MAAM,EAAED;MACV;IAAE,gBACAV,KAAA,CAAAoB,aAAA,CAAChB,SAAS;MAACkB,GAAG,EAAE,IAAI,CAACN,KAAK,CAACM,GAAI;MAC7BC,SAAS,EAAE,IAAI,CAACP,KAAK,CAACO,SAAU;MAChCC,MAAM,EAAE;QACRC,IAAI,EAAE;UACJhB,KAAK,EAAE,MAAM;UACbE,MAAM,EAAE;QACV;MACF,CAAE;MACFe,MAAM,EAAEA,CAACC,CAAC,EAAEC,CAAC,KAAK;QAChBC,UAAU,CAAC,MAAM;UACfD,CAAC,CAACE,aAAa,CAAC,IAAI,CAACb,iBAAiB,CAAC,IAAI,CAACD,KAAK,CAACE,OAAO,CAAC,CAAC,CAC1Da,IAAI,CAAEC,MAAM,IAAK;YACd,IAAIA,MAAM,EAAE;cACV,MAAMC,UAAU,GAAG,IAAI,CAACjB,KAAK,CAACiB,UAAU;cACxCA,UAAU,IAAIA,UAAU,CAACD,MAAgB,CAAC;YAC5C;UACJ,CAAC,CAAC;QACJ,CAAC,EAAE,IAAI,CAAC;MACV;IAAE,CAAY,CACV,CAAC;EAEX;AACJ;AAEA,OAAO,MAAME,iBAAiB,CAAC;EAI3BrB,WAAWA,CAAA,EAAG;IAAAC,eAAA,kBAFW,IAAI;EAEd;EAERqB,OAAOA,CAACjB,OAAe,EAAEkB,OAAe,EAAEC,gBAAgB,GAAG,KAAK,EAAEd,SAAS,GAAG,KAAK,EAAgB;IACxG,IAAI,CAAC,IAAI,CAACe,OAAO,EAAE;MACf,IAAI,CAACA,OAAO,GAAGjC,QAAQ,CAACG,GAAG,CAAY,YAAY,CAAC,CAAC+B,GAAG;IAC1D;IACF,OAAOxC,KAAK,CAACS,GAAG,CAAC,IAAI,CAAC8B,OAAO,GAAG,4CAA4CpB,OAAO,YAAYkB,OAAO,2BAA2B,EAAE;MACjII,eAAe,EAAE;IACnB,CAAC,CAAC,CACGT,IAAI,CAAEU,QAAQ,IAAK;MAChB,IAAIJ,gBAAgB,EAAE;QAClB,OAAO,IAAI,CAACK,wBAAwB,CAACD,QAAQ,CAACE,IAAI,CAAC;MACvD,CAAC,MAAM;QACH,OAAO,IAAI,CAACC,uBAAuB,CAACH,QAAQ,CAACE,IAAI,EAAEzB,OAAO,EAAEK,SAAS,CAAC;MAC1E;IACJ,CAAC,CAAC,CAACQ,IAAI,CAACC,MAAM,IAAI;MACd,OAAOjC,KAAK,CAACS,GAAG,CAAC,IAAI,CAAC8B,OAAO,GAAG,iDAAiD,GAAGN,MAAM,EAAE;QAC1FQ,eAAe,EAAE;MACnB,CAAC,CAAC;IACN,CAAC,CAAC;EACV;EAEQE,wBAAwBA,CAACG,WAAmB,EAAgB;IAChE,OAAOC,OAAO,CAACC,MAAM,CAAC,gDAAgD,CAAC;EAC3E;EAEQH,uBAAuBA,CAACC,WAAmB,EAAE3B,OAAe,EAAEK,SAAkB,EAAgB;IACpG,OAAO,IAAIuB,OAAO,CAAC,CAACE,OAAO,EAAED,MAAM,KAAK;MACpC,IAAIE,SAAS,GAAGA,CAAA,KAAM,CAAC,CAAC;MACxBA,SAAS,GAAG3C,wBAAwB,CAAC4C,IAAI,CAAC;QACtCC,OAAO,eACLnD,KAAA,CAAAoB,aAAA,CAACL,iBAAiB;UAChBO,GAAG,EAAE,IAAI,CAACgB,OAAO,GAAI,qCAAqC,GAAGc,kBAAkB,CAACP,WAAW,CAAE;UAC7FtB,SAAS,EAAEA,SAAU;UACrBL,OAAO,EAAEA,OAAQ;UACjBe,UAAU,EAAGoB,KAAK,IAAK;YACrBL,OAAO,CAACK,KAAK,CAAC;YACdJ,SAAS,CAACK,IAAI,CAAChD,wBAAwB,CAAC;UAC1C;QAAE,CAAoB;MAG5B,CAAC,CAAC;IACR,CAAC,CAAC;EACN;AACJ;AAEA,eAAe,IAAI4B,iBAAiB,CAAC,CAAC","ignoreList":[]}
|
package/runtime/watcher.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isArray","clone","useEffect","useState","WIDGET_LOGGER","WATCH_LOGGER","extend","WatchExpression","constructor","fn","onChange","_defineProperty","last","execute","getExpBody","expBody","expStr","toString","substring","indexOf","lastIndexOf","e","isEqual","$old","$new","isArrayObj","length","i","value","check","start","Date","now","changed","lastExecutionTime","debug","Watcher","isActive","expressions","forEach","expression","children","child","create","parent","push","remove","splice","destroy","clear","watch","count","_Watcher","useWatcher","change","watcher"],"sources":["watcher.ts"],"sourcesContent":["import { isEqual as _isEqual, isArray, isObject, clone, remove, reverse, sortBy } from 'lodash';\nimport { useEffect, useMemo, useState } from 'react';\nimport { WIDGET_LOGGER } from '@wavemaker/app-rn-runtime/core/base.component';\n\nconst WATCH_LOGGER = WIDGET_LOGGER.extend(\"watch\");\n\nclass WatchExpression {\n private last: any = null;\n private expBody: string = null as any;\n public lastExecutionTime = 0;\n\n constructor(private fn: Function, private onChange: (prev: any, now: any) => any) {\n this.last = this.execute();\n if (isArray(this.last)) {\n this.last = clone(this.last);\n }\n }\n\n private getExpBody() {\n if (!this.expBody) {\n const expStr = this.fn.toString();\n this.expBody = expStr.substring(\n expStr.indexOf('return ') + 7,\n expStr.lastIndexOf(';'));\n }\n return this.expBody;\n }\n \n private execute() {\n try {\n return this.fn();\n } catch(e) {\n //do nothing\n return null;\n }\n }\n\n private isEqual($old: any, $new: any) {\n const isArrayObj = isArray($old) || isArray($new);\n if (isArrayObj) {\n if (($old && !$new) \n || (!$old && $new)\n || $old.length !== $new.length) {\n return false;\n }\n for(let i = 0; i < $old.length; i++) {\n if ($old[i] !== $new[i]) {\n return false;\n }\n }\n return true;\n }\n return $old === $new;\n }\n\n get value() {\n return this.last;\n }\n\n public check() {\n const start = Date.now();\n const now = this.execute();\n const changed = !this.isEqual(this.last, now);\n this.lastExecutionTime = Date.now() - start;\n if (changed) {\n WATCH_LOGGER.debug(() => {\n if (this.getExpBody() !== 'fragment') {\n return `Watcher: <${this.getExpBody()}> Changed from ${this.last} to ${now} `;\n }\n return '';\n });\n this.onChange(this.last, now);\n this.last = now;\n if (isArray(this.last)) {\n this.last = clone(this.last);\n }\n return true;\n }\n return false;\n }\n}\n\nexport class Watcher {\n public static ROOT = new Watcher();\n public expressions = [] as WatchExpression[];\n public isActive = true;\n public parent: Watcher = null as any;\n public children = [] as Watcher[];\n private constructor() {}\n\n check() {\n if (this.isActive) {\n this.expressions.forEach(expression => expression.check());\n this.children.forEach(child => {\n child.check();\n });\n }\n }\n \n create() {\n const child = new Watcher();\n child.parent = this;\n this.children.push(child);\n return child;\n }\n\n remove(child: Watcher) {\n if (this.children.length > 0) {\n const i = this.children.indexOf(child);\n if (i >= 0) {\n this.children.splice(i, 1);\n }\n }\n }\n\n destroy() {\n this.clear();\n this.parent && this.parent.remove(this);\n }\n\n clear() {\n this.children = [];\n this.expressions = [];\n }\n\n watch(fn: Function, onChange: (prev: any, now: any) => any) {\n const expression = new WatchExpression(fn, onChange);\n this.expressions.push(expression);\n return expression;\n }\n\n count() {\n if (!this.isActive) {\n return 0;\n }\n let count = this.expressions.length;\n this.children.forEach(child => {\n count += child.count();\n });\n return count;\n }\n}\n\nexport function useWatcher(parent: Watcher) {\n const [change, onChange] = useState({});\n let [ watcher ] = useState(() => parent.create());\n watcher.clear();\n useEffect(() => { \n return () => {\n watcher.destroy();\n };\n }, []);\n return {\n watch: (fn: Function) => {\n return watcher.watch(fn, () => onChange({})).value;\n }\n };\n};"],"mappings":";;;;AAAA,SAA8BA,OAAO,EAAYC,KAAK,QAAiC,QAAQ;AAC/F,SAASC,SAAS,EAAWC,QAAQ,QAAQ,OAAO;AACpD,SAASC,aAAa,QAAQ,+CAA+C;AAE7E,MAAMC,YAAY,GAAGD,aAAa,CAACE,MAAM,CAAC,OAAO,CAAC;AAElD,MAAMC,eAAe,CAAC;EAKlBC,WAAWA,CAASC,EAAY,EAAUC,QAAsC,EAAE;IAAA,KAA9DD,EAAY,GAAZA,EAAY;IAAA,KAAUC,QAAsC,GAAtCA,QAAsC;IAAAC,eAAA,eAJ5D,IAAI;IAAAA,eAAA,kBACE,IAAI;IAAAA,eAAA,4BACH,CAAC;IAGxB,IAAI,CAACC,IAAI,GAAG,IAAI,CAACC,OAAO,CAAC,CAAC;IAC1B,IAAIb,OAAO,CAAC,IAAI,CAACY,IAAI,CAAC,EAAE;MACpB,IAAI,CAACA,IAAI,GAAGX,KAAK,CAAC,IAAI,CAACW,IAAI,CAAC;IAChC;EACJ;EAEQE,UAAUA,CAAA,EAAG;IACjB,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE;MACf,MAAMC,MAAM,GAAG,IAAI,CAACP,EAAE,CAACQ,QAAQ,CAAC,CAAC;MACjC,IAAI,CAACF,OAAO,GAAGC,MAAM,CAACE,SAAS,CAC3BF,MAAM,CAACG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAC7BH,MAAM,CAACI,WAAW,CAAC,GAAG,CAAC,CAAC;IAChC;IACA,OAAO,IAAI,CAACL,OAAO;EACvB;EAEQF,OAAOA,CAAA,EAAG;IACd,IAAI;MACA,OAAO,IAAI,CAACJ,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC,OAAMY,CAAC,EAAE;MACP;MACA,OAAO,IAAI;IACf;EACJ;EAEQC,OAAOA,CAACC,IAAS,EAAEC,IAAS,EAAE;IAClC,MAAMC,UAAU,GAAGzB,OAAO,CAACuB,IAAI,CAAC,IAAIvB,OAAO,CAACwB,IAAI,CAAC;IACjD,IAAIC,UAAU,EAAE;MACZ,IAAKF,IAAI,IAAI,CAACC,IAAI,IACV,CAACD,IAAI,IAAIC,IAAK,IACfD,IAAI,CAACG,MAAM,KAAKF,IAAI,CAACE,MAAM,EAAE;QAChC,OAAO,KAAK;MAChB;MACA,KAAI,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,IAAI,CAACG,MAAM,EAAEC,CAAC,EAAE,EAAE;QACjC,IAAIJ,IAAI,CAACI,CAAC,CAAC,KAAKH,IAAI,CAACG,CAAC,CAAC,EAAE;UACrB,OAAO,KAAK;QAChB;MACJ;MACA,OAAO,IAAI;IACf;IACA,OAAOJ,IAAI,KAAKC,IAAI;EACxB;EAEA,IAAII,KAAKA,CAAA,EAAG;IACR,OAAO,IAAI,CAAChB,IAAI;EACpB;EAEOiB,KAAKA,CAAA,EAAG;IACX,MAAMC,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IACxB,MAAMA,GAAG,GAAG,IAAI,CAACnB,OAAO,CAAC,CAAC;IAC1B,MAAMoB,OAAO,GAAG,CAAC,IAAI,CAACX,OAAO,CAAC,IAAI,CAACV,IAAI,EAAEoB,GAAG,CAAC;IAC7C,IAAI,CAACE,iBAAiB,GAAGH,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,KAAK;IAC3C,IAAIG,OAAO,EAAE;MACT5B,YAAY,CAAC8B,KAAK,CAAC,MAAM;QACrB,IAAI,IAAI,CAACrB,UAAU,CAAC,CAAC,KAAK,UAAU,EAAE;UAClC,
|
|
1
|
+
{"version":3,"names":["isArray","clone","useEffect","useState","WIDGET_LOGGER","WATCH_LOGGER","extend","WatchExpression","constructor","fn","onChange","_defineProperty","last","execute","getExpBody","expBody","expStr","toString","substring","indexOf","lastIndexOf","e","isEqual","$old","$new","isArrayObj","length","i","value","check","start","Date","now","changed","lastExecutionTime","debug","Watcher","isActive","expressions","forEach","expression","children","child","create","parent","push","remove","splice","destroy","clear","watch","count","_Watcher","useWatcher","change","watcher"],"sources":["watcher.ts"],"sourcesContent":["import { isEqual as _isEqual, isArray, isObject, clone, remove, reverse, sortBy } from 'lodash';\nimport { useEffect, useMemo, useState } from 'react';\nimport { WIDGET_LOGGER } from '@wavemaker/app-rn-runtime/core/base.component';\n\nconst WATCH_LOGGER = WIDGET_LOGGER.extend(\"watch\");\n\nclass WatchExpression {\n private last: any = null;\n private expBody: string = null as any;\n public lastExecutionTime = 0;\n\n constructor(private fn: Function, private onChange: (prev: any, now: any) => any) {\n this.last = this.execute();\n if (isArray(this.last)) {\n this.last = clone(this.last);\n }\n }\n\n private getExpBody() {\n if (!this.expBody) {\n const expStr = this.fn.toString();\n this.expBody = expStr.substring(\n expStr.indexOf('return ') + 7,\n expStr.lastIndexOf(';'));\n }\n return this.expBody;\n }\n \n private execute() {\n try {\n return this.fn();\n } catch(e) {\n //do nothing\n return null;\n }\n }\n\n private isEqual($old: any, $new: any) {\n const isArrayObj = isArray($old) || isArray($new);\n if (isArrayObj) {\n if (($old && !$new) \n || (!$old && $new)\n || $old.length !== $new.length) {\n return false;\n }\n for(let i = 0; i < $old.length; i++) {\n if ($old[i] !== $new[i]) {\n return false;\n }\n }\n return true;\n }\n return $old === $new;\n }\n\n get value() {\n return this.last;\n }\n\n public check() {\n const start = Date.now();\n const now = this.execute();\n const changed = !this.isEqual(this.last, now);\n this.lastExecutionTime = Date.now() - start;\n if (changed) {\n WATCH_LOGGER.debug(() => {\n if (this.getExpBody() !== 'fragment') {\n return `Watcher: <${this.getExpBody()}> Changed from ${this.last} to ${now} `;\n }\n return '';\n });\n this.onChange(this.last, now);\n this.last = now;\n if (isArray(this.last)) {\n this.last = clone(this.last);\n }\n return true;\n }\n return false;\n }\n}\n\nexport class Watcher {\n public static ROOT = new Watcher();\n public expressions = [] as WatchExpression[];\n public isActive = true;\n public parent: Watcher = null as any;\n public children = [] as Watcher[];\n private constructor() {}\n\n check() {\n if (this.isActive) {\n this.expressions.forEach(expression => expression.check());\n this.children.forEach(child => {\n child.check();\n });\n }\n }\n \n create() {\n const child = new Watcher();\n child.parent = this;\n this.children.push(child);\n return child;\n }\n\n remove(child: Watcher) {\n if (this.children.length > 0) {\n const i = this.children.indexOf(child);\n if (i >= 0) {\n this.children.splice(i, 1);\n }\n }\n }\n\n destroy() {\n this.clear();\n this.parent && this.parent.remove(this);\n }\n\n clear() {\n this.children = [];\n this.expressions = [];\n }\n\n watch(fn: Function, onChange: (prev: any, now: any) => any) {\n const expression = new WatchExpression(fn, onChange);\n this.expressions.push(expression);\n return expression;\n }\n\n count() {\n if (!this.isActive) {\n return 0;\n }\n let count = this.expressions.length;\n this.children.forEach(child => {\n count += child.count();\n });\n return count;\n }\n}\n\nexport function useWatcher(parent: Watcher) {\n const [change, onChange] = useState({});\n let [ watcher ] = useState(() => parent.create());\n watcher.clear();\n useEffect(() => { \n return () => {\n watcher.destroy();\n };\n }, []);\n return {\n watch: (fn: Function) => {\n return watcher.watch(fn, () => onChange({})).value;\n }\n };\n};"],"mappings":"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","ignoreList":[]}
|
|
@@ -94,6 +94,7 @@ export class LinearGradient extends React.Component {
|
|
|
94
94
|
alignItems: 'center'
|
|
95
95
|
} : null]
|
|
96
96
|
}, /*#__PURE__*/React.createElement(ExpoLinearGradient, {
|
|
97
|
+
testID: "wm-expo-linear-gradient",
|
|
97
98
|
colors: this.state.colors,
|
|
98
99
|
locations: this.state.locations,
|
|
99
100
|
start: this.state.start,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","LinearGradient","ExpoLinearGradient","Image","StyleSheet","View","isEmpty","isNil","isNumber","imageSizeEstimator","AssetConsumer","isFullPathUrl","IMAGE_URL_REGEX","LINEAT_GRADIENT_REGEX","DIMENSION_REGEX","BACKGROUND_POSITION_REGEX","BACKGROUND_SIZE_REGEX","ASSET_CACHE","Component","constructor","props","state","parse","val","value","splits","split","map","v","trim","angle","locations","endsWith","parseInt","shift","delta","Math","round","tan","PI","abs","end","x","y","start","colors","s","_s$matchAll$next","p","matchAll","next","push","replace","componentDidUpdate","prevProps","prevState","snapshot","setState","render","_this$props$size","_this$props$style","createElement","style","borderWidth","overflow","absoluteFill","middle","flexDirection","justifyContent","alignItems","size","width","position","borderRadius","children","BackgroundComponent","_defineProperty","imageSrc","image","undefined","caluculateSize","height","resolveAssetSource","naturalImageWidth","naturalImageHeight","getSize","uri","getDimension","dim","getPosition","result","top","bottom","left","right","getPositionAndSize","_this$props$size2","_this$getGradient","resizeMode","getGradient","length","repeat","renderLinearGradient","data","psresult","Fragment","setImage","componentDidMount","setTimeout","_this$props$image","_source","source","startsWith","_this$props$image2","loadAsset","_this$props$image3","renderImage","_psresult$position","_psresult$position2","loadImage","minWidth","minHeight","_gradientData$value","gradientData"],"sources":["background.component.tsx"],"sourcesContent":["import * as React from 'react';\nimport { LinearGradient as ExpoLinearGradient, LinearGradientPoint } from 'expo-linear-gradient';\nimport { Image, StyleSheet, View, ViewStyle } from 'react-native';\nimport { isEmpty, isNil, isNumber, isString } from 'lodash-es';\nimport imageSizeEstimator from '@wavemaker/app-rn-runtime/core/imageSizeEstimator';\nimport { AssetConsumer } from '@wavemaker/app-rn-runtime/core/asset.provider';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport interface LinearGradientProps {\n value: string;\n children: any;\n style?: ViewStyle;\n size?: ViewStyle;\n position?: ViewStyle;\n middle?: boolean;\n}\n\nexport interface LinearGradientState {\n colors: string[];\n locations: number[];\n start: LinearGradientPoint;\n end: LinearGradientPoint;\n}\n\nconst IMAGE_URL_REGEX = /url\\(['|\"]?(.+)['|\"]?\\)$/gi;\nconst LINEAT_GRADIENT_REGEX = /linear-gradient\\((.+)\\)$/gi;\nconst DIMENSION_REGEX = /([0-9%]+)[a-z]*/g;\nconst BACKGROUND_POSITION_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\nconst BACKGROUND_SIZE_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\n\nconst ASSET_CACHE = {} as any;\n\nexport class LinearGradient extends React.Component<LinearGradientProps, LinearGradientState> {\n\n constructor(props: LinearGradientProps) {\n super(props);\n this.state = this.parse();\n }\n\n parse(val = this.props.value) {\n let state = {} as LinearGradientState;\n const splits = val.split(',').map(v => v.trim());\n let angle = 0;\n const locations: LinearGradientPoint[] = [];\n if (splits[0].endsWith('deg')) {\n angle = (parseInt(splits[0].split('deg')[0]))%360;\n angle = angle < 0 ? (360 + angle) : angle;\n splits.shift();\n }\n angle += 90;\n const delta = Math.round(Math.tan((angle * Math.PI) / 180) * 100)/100;\n if (Math.abs(delta) > 1) {\n state = {\n end: {\n x: -0.5 / delta + 0.5,\n y: 0\n },\n start: {\n x: 0.5 / delta + 0.5,\n y: 1\n }\n } as LinearGradientState;\n } else {\n state = {\n start: {\n x: 0,\n y: -0.5 * delta + 0.5\n },\n end: {\n x: 1,\n y: 0.5 * delta + 0.5\n }\n } as LinearGradientState;\n }\n if (angle >= 270 && angle <= 450) {\n state = {\n start : state.end,\n end: state.start\n } as LinearGradientState;\n }\n state.colors = [];\n state.locations = [];\n splits.map(s => {\n const p = s.matchAll(/\\s*([0-9]+)%/g).next()?.value;\n if (p) {\n state.locations.push(parseInt(p[1]) / 100);\n state.colors.push(s.replace(p[0], ''));\n } else {\n state.locations.push(null as any);\n state.colors.push(s);\n }\n });\n return state;\n }\n\n componentDidUpdate(prevProps: Readonly<LinearGradientProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (prevProps.value !== this.props.value) {\n this.setState(this.parse());\n }\n }\n \n\n public render() {\n return (\n <View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, this.props.middle ? {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center'\n } : null]}>\n <ExpoLinearGradient\n colors={this.state.colors}\n locations={this.state.locations}\n start={this.state.start}\n end={this.state.end}\n style={[\n this.props.size?.width ? this.props.size : StyleSheet.absoluteFill,\n this.props.position,\n {position: 'absolute', borderRadius: this.props.style?.borderRadius}\n ]}\n />\n </View>\n {this.props.children}\n </View>\n );\n }\n}\n\nexport interface BackgroundProps {\n image?: string;\n position?: string;\n children?: any;\n resizeMode?: string;\n repeat?: string;\n style?: ViewStyle;\n size: string;\n}\n\nexport interface BackgroundState {\n imageSrc: any;\n naturalImageWidth: number,\n naturalImageHeight: number\n}\n\nexport class BackgroundComponent extends React.Component<BackgroundProps, BackgroundState> {\n\n private loadAsset: (path: string) => number | string = null as any;\n\n constructor(props: BackgroundProps) {\n super(props);\n this.state = {\n imageSrc : this.props.image ? ASSET_CACHE[this.props.image] : undefined\n } as BackgroundState;\n }\n\n public caluculateSize(imageSrc: any) {\n if (isNumber(imageSrc)) {\n const {width, height} = Image.resolveAssetSource(imageSrc);\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n } else if (!isNil(imageSrc)) {\n imageSizeEstimator.getSize(imageSrc.uri, (width: number, height: number) => {\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n });\n }\n }\n\n getDimension(dim: string) {\n if (dim) {\n const value = dim.matchAll(DIMENSION_REGEX).next().value;\n if (value[1]) {\n return value[1].endsWith('%') ? value[1] : parseInt(value[1]);\n }\n }\n return null;\n }\n\n public getPosition() {\n const result = {} as ViewStyle;\n if (!this.props.position) {\n return result;\n }\n const position = this.props.position.split(' ').map(s => s.trim());\n if (position[0] === 'center') {\n result.alignItems = 'center';\n } else if (position[0] === 'top') {\n result.top = 0;\n } else if (position[0] === 'bottom') {\n result.bottom = 0;\n } else {\n result.top = this.getDimension(position[0]);\n }\n if (position[1] === 'center') {\n result.justifyContent = 'center';\n } else if (position[1] === 'left') {\n result.left = 0;\n } else if (position[1] === 'bottom') {\n result.right = 0;\n } else {\n result.left = this.getDimension(position[1]);\n }\n return result;\n }\n\n public getPositionAndSize() {\n const result: {\n resizeMode? : string,\n position?: ViewStyle,\n size?: ViewStyle\n } = {} as any;\n if (this.props.resizeMode) {\n result.resizeMode = this.props.resizeMode;\n return result;\n } else if (this.props.position === 'center') {\n result.resizeMode = 'center';\n result.position = {\n justifyContent: 'center',\n alignItems: 'center'\n };\n } else if (this.props.size === 'contain' || this.props.size === 'cover') {\n result.resizeMode = this.props.size;\n return result;\n }\n const size = this.props.size?.matchAll(BACKGROUND_SIZE_REGEX).next().value;\n result.size = {};\n if (size) {\n result.size.width = size[1].endsWith('%') ? size[1] : parseInt(size[1]);\n result.size.height = size[2].endsWith('%') ? size[2] : parseInt(size[2]);\n }\n if (!result.resizeMode && this.props.position) {\n result.position = this.getPosition();\n }\n if (!this.getGradient()?.value?.length) {\n if (this.props.repeat === 'no-repeat') {\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-x') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || '100%'; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-y') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || '100%'; \n } else {\n result.resizeMode = 'repeat';\n }\n }\n return result;\n }\n\n public renderLinearGradient(data: string) {\n const psresult = this.getPositionAndSize();\n return (\n <LinearGradient\n value={data || ''}\n style={this.props.style}\n size={psresult.size}\n position={psresult.position}\n middle={psresult.resizeMode === 'center'}> \n <></> \n </LinearGradient>\n );\n }\n\n componentDidUpdate(prevProps: Readonly<BackgroundProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (this.props.image && prevProps.image !== this.props.image) {\n this.setImage();\n }\n }\n\n componentDidMount(): void {\n setTimeout(() => this.setImage(), 100);\n }\n\n setImage() {\n let source = this.props.image?.trim() as any;\n if (!source) {\n return;\n }\n if (source?.startsWith('url')) {\n source = this.props.image?.matchAll(IMAGE_URL_REGEX).next().value[1];\n }\n if (this.loadAsset) {\n source = this.loadAsset(source);\n }\n if (isFullPathUrl(source)) {\n source = {\n uri: source\n };\n }\n this.caluculateSize(source);\n this.setState({\n imageSrc: source\n } as BackgroundState);\n if (this.props.image) {\n ASSET_CACHE[this.props.image] = source;\n }\n }\n\n public getGradient() {\n return this.props.image?.trim().matchAll(LINEAT_GRADIENT_REGEX).next();\n }\n\n public renderImage() {\n const psresult = this.getPositionAndSize();\n return (\n <AssetConsumer>\n {(loadAsset) => {\n const loadImage = this.loadAsset !== loadAsset;\n this.loadAsset = loadAsset;\n if (loadImage) {\n setTimeout(() => this.setImage(), 10);\n }\n return (<View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, {\n flexDirection: 'row',\n justifyContent: psresult.position?.justifyContent,\n alignItems: psresult.position?.alignItems\n }]}>\n <View style={[\n { position: 'absolute', overflow: 'hidden' },\n psresult.position,\n isEmpty(psresult.size) ? StyleSheet.absoluteFill : psresult.size\n ]}>\n <Image\n source={this.state.imageSrc}\n resizeMode={psresult.resizeMode as any || 'cover'}\n style={[\n { \n width: '100%',\n height: '100%'\n }, \n !isEmpty(psresult.size)\n || (psresult.resizeMode === 'cover'\n || psresult.resizeMode === 'contain') ? null : {\n minWidth: this.state.naturalImageWidth,\n minHeight: this.state.naturalImageHeight\n }\n ]}/> \n </View>\n </View>\n </View>);\n }}\n </AssetConsumer>\n );\n }\n\n public render() {\n const gradientData = this.getGradient();\n if (gradientData?.value?.length) {\n return this.renderLinearGradient(gradientData.value[1]);\n } else if (this.props.image && this.state.imageSrc) {\n return this.renderImage();\n }\n return null;\n }\n}\n\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","LinearGradient","ExpoLinearGradient","Image","StyleSheet","View","isEmpty","isNil","isNumber","imageSizeEstimator","AssetConsumer","isFullPathUrl","IMAGE_URL_REGEX","LINEAT_GRADIENT_REGEX","DIMENSION_REGEX","BACKGROUND_POSITION_REGEX","BACKGROUND_SIZE_REGEX","ASSET_CACHE","Component","constructor","props","state","parse","val","value","splits","split","map","v","trim","angle","locations","endsWith","parseInt","shift","delta","Math","round","tan","PI","abs","end","x","y","start","colors","s","_s$matchAll$next","p","matchAll","next","push","replace","componentDidUpdate","prevProps","prevState","snapshot","setState","render","_this$props$size","_this$props$style","createElement","style","borderWidth","overflow","absoluteFill","middle","flexDirection","justifyContent","alignItems","testID","size","width","position","borderRadius","children","BackgroundComponent","_defineProperty","imageSrc","image","undefined","caluculateSize","height","resolveAssetSource","naturalImageWidth","naturalImageHeight","getSize","uri","getDimension","dim","getPosition","result","top","bottom","left","right","getPositionAndSize","_this$props$size2","_this$getGradient","resizeMode","getGradient","length","repeat","renderLinearGradient","data","psresult","Fragment","setImage","componentDidMount","setTimeout","_this$props$image","_source","source","startsWith","_this$props$image2","loadAsset","_this$props$image3","renderImage","_psresult$position","_psresult$position2","loadImage","minWidth","minHeight","_gradientData$value","gradientData"],"sources":["background.component.tsx"],"sourcesContent":["import * as React from 'react';\nimport { LinearGradient as ExpoLinearGradient, LinearGradientPoint } from 'expo-linear-gradient';\nimport { Image, StyleSheet, View, ViewStyle } from 'react-native';\nimport { isEmpty, isNil, isNumber, isString } from 'lodash-es';\nimport imageSizeEstimator from '@wavemaker/app-rn-runtime/core/imageSizeEstimator';\nimport { AssetConsumer } from '@wavemaker/app-rn-runtime/core/asset.provider';\nimport { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';\n\nexport interface LinearGradientProps {\n value: string;\n children: any;\n style?: ViewStyle;\n size?: ViewStyle;\n position?: ViewStyle;\n middle?: boolean;\n}\n\nexport interface LinearGradientState {\n colors: string[];\n locations: number[];\n start: LinearGradientPoint;\n end: LinearGradientPoint;\n}\n\nconst IMAGE_URL_REGEX = /url\\(['|\"]?(.+)['|\"]?\\)$/gi;\nconst LINEAT_GRADIENT_REGEX = /linear-gradient\\((.+)\\)$/gi;\nconst DIMENSION_REGEX = /([0-9%]+)[a-z]*/g;\nconst BACKGROUND_POSITION_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\nconst BACKGROUND_SIZE_REGEX = /([0-9%]+)[a-z]*\\s*([0-9%]+)[a-z]*/g;\n\nconst ASSET_CACHE = {} as any;\n\nexport class LinearGradient extends React.Component<LinearGradientProps, LinearGradientState> {\n\n constructor(props: LinearGradientProps) {\n super(props);\n this.state = this.parse();\n }\n\n parse(val = this.props.value) {\n let state = {} as LinearGradientState;\n const splits = val.split(',').map(v => v.trim());\n let angle = 0;\n const locations: LinearGradientPoint[] = [];\n if (splits[0].endsWith('deg')) {\n angle = (parseInt(splits[0].split('deg')[0]))%360;\n angle = angle < 0 ? (360 + angle) : angle;\n splits.shift();\n }\n angle += 90;\n const delta = Math.round(Math.tan((angle * Math.PI) / 180) * 100)/100;\n if (Math.abs(delta) > 1) {\n state = {\n end: {\n x: -0.5 / delta + 0.5,\n y: 0\n },\n start: {\n x: 0.5 / delta + 0.5,\n y: 1\n }\n } as LinearGradientState;\n } else {\n state = {\n start: {\n x: 0,\n y: -0.5 * delta + 0.5\n },\n end: {\n x: 1,\n y: 0.5 * delta + 0.5\n }\n } as LinearGradientState;\n }\n if (angle >= 270 && angle <= 450) {\n state = {\n start : state.end,\n end: state.start\n } as LinearGradientState;\n }\n state.colors = [];\n state.locations = [];\n splits.map(s => {\n const p = s.matchAll(/\\s*([0-9]+)%/g).next()?.value;\n if (p) {\n state.locations.push(parseInt(p[1]) / 100);\n state.colors.push(s.replace(p[0], ''));\n } else {\n state.locations.push(null as any);\n state.colors.push(s);\n }\n });\n return state;\n }\n\n componentDidUpdate(prevProps: Readonly<LinearGradientProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (prevProps.value !== this.props.value) {\n this.setState(this.parse());\n }\n }\n \n\n public render() {\n return (\n <View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, this.props.middle ? {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center'\n } : null]}>\n <ExpoLinearGradient testID=\"wm-expo-linear-gradient\"\n colors={this.state.colors}\n locations={this.state.locations}\n start={this.state.start}\n end={this.state.end}\n style={[\n this.props.size?.width ? this.props.size : StyleSheet.absoluteFill,\n this.props.position,\n {position: 'absolute', borderRadius: this.props.style?.borderRadius}\n ]}\n />\n </View>\n {this.props.children}\n </View>\n );\n }\n}\n\nexport interface BackgroundProps {\n image?: string;\n position?: string;\n children?: any;\n resizeMode?: string;\n repeat?: string;\n style?: ViewStyle;\n size: string;\n}\n\nexport interface BackgroundState {\n imageSrc: any;\n naturalImageWidth: number,\n naturalImageHeight: number\n}\n\nexport class BackgroundComponent extends React.Component<BackgroundProps, BackgroundState> {\n\n private loadAsset: (path: string) => number | string = null as any;\n\n constructor(props: BackgroundProps) {\n super(props);\n this.state = {\n imageSrc : this.props.image ? ASSET_CACHE[this.props.image] : undefined\n } as BackgroundState;\n }\n\n public caluculateSize(imageSrc: any) {\n if (isNumber(imageSrc)) {\n const {width, height} = Image.resolveAssetSource(imageSrc);\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n } else if (!isNil(imageSrc)) {\n imageSizeEstimator.getSize(imageSrc.uri, (width: number, height: number) => {\n this.setState({\n naturalImageWidth: width,\n naturalImageHeight: height\n } as BackgroundState);\n });\n }\n }\n\n getDimension(dim: string) {\n if (dim) {\n const value = dim.matchAll(DIMENSION_REGEX).next().value;\n if (value[1]) {\n return value[1].endsWith('%') ? value[1] : parseInt(value[1]);\n }\n }\n return null;\n }\n\n public getPosition() {\n const result = {} as ViewStyle;\n if (!this.props.position) {\n return result;\n }\n const position = this.props.position.split(' ').map(s => s.trim());\n if (position[0] === 'center') {\n result.alignItems = 'center';\n } else if (position[0] === 'top') {\n result.top = 0;\n } else if (position[0] === 'bottom') {\n result.bottom = 0;\n } else {\n result.top = this.getDimension(position[0]);\n }\n if (position[1] === 'center') {\n result.justifyContent = 'center';\n } else if (position[1] === 'left') {\n result.left = 0;\n } else if (position[1] === 'bottom') {\n result.right = 0;\n } else {\n result.left = this.getDimension(position[1]);\n }\n return result;\n }\n\n public getPositionAndSize() {\n const result: {\n resizeMode? : string,\n position?: ViewStyle,\n size?: ViewStyle\n } = {} as any;\n if (this.props.resizeMode) {\n result.resizeMode = this.props.resizeMode;\n return result;\n } else if (this.props.position === 'center') {\n result.resizeMode = 'center';\n result.position = {\n justifyContent: 'center',\n alignItems: 'center'\n };\n } else if (this.props.size === 'contain' || this.props.size === 'cover') {\n result.resizeMode = this.props.size;\n return result;\n }\n const size = this.props.size?.matchAll(BACKGROUND_SIZE_REGEX).next().value;\n result.size = {};\n if (size) {\n result.size.width = size[1].endsWith('%') ? size[1] : parseInt(size[1]);\n result.size.height = size[2].endsWith('%') ? size[2] : parseInt(size[2]);\n }\n if (!result.resizeMode && this.props.position) {\n result.position = this.getPosition();\n }\n if (!this.getGradient()?.value?.length) {\n if (this.props.repeat === 'no-repeat') {\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-x') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || '100%'; \n result.size.height = result.size.height || this.state.naturalImageHeight; \n } else if (this.props.repeat === 'repeat-y') {\n result.resizeMode = 'repeat';\n result.size.width = result.size.width || this.state.naturalImageWidth; \n result.size.height = result.size.height || '100%'; \n } else {\n result.resizeMode = 'repeat';\n }\n }\n return result;\n }\n\n public renderLinearGradient(data: string) {\n const psresult = this.getPositionAndSize();\n return (\n <LinearGradient\n value={data || ''}\n style={this.props.style}\n size={psresult.size}\n position={psresult.position}\n middle={psresult.resizeMode === 'center'}> \n <></> \n </LinearGradient>\n );\n }\n\n componentDidUpdate(prevProps: Readonly<BackgroundProps>, prevState: Readonly<{}>, snapshot?: any): void {\n if (this.props.image && prevProps.image !== this.props.image) {\n this.setImage();\n }\n }\n\n componentDidMount(): void {\n setTimeout(() => this.setImage(), 100);\n }\n\n setImage() {\n let source = this.props.image?.trim() as any;\n if (!source) {\n return;\n }\n if (source?.startsWith('url')) {\n source = this.props.image?.matchAll(IMAGE_URL_REGEX).next().value[1];\n }\n if (this.loadAsset) {\n source = this.loadAsset(source);\n }\n if (isFullPathUrl(source)) {\n source = {\n uri: source\n };\n }\n this.caluculateSize(source);\n this.setState({\n imageSrc: source\n } as BackgroundState);\n if (this.props.image) {\n ASSET_CACHE[this.props.image] = source;\n }\n }\n\n public getGradient() {\n return this.props.image?.trim().matchAll(LINEAT_GRADIENT_REGEX).next();\n }\n\n public renderImage() {\n const psresult = this.getPositionAndSize();\n return (\n <AssetConsumer>\n {(loadAsset) => {\n const loadImage = this.loadAsset !== loadAsset;\n this.loadAsset = loadAsset;\n if (loadImage) {\n setTimeout(() => this.setImage(), 10);\n }\n return (<View style={[{borderWidth: 0, overflow: 'hidden'}, StyleSheet.absoluteFill, this.props.style]}>\n <View style={[\n StyleSheet.absoluteFill, {\n flexDirection: 'row',\n justifyContent: psresult.position?.justifyContent,\n alignItems: psresult.position?.alignItems\n }]}>\n <View style={[\n { position: 'absolute', overflow: 'hidden' },\n psresult.position,\n isEmpty(psresult.size) ? StyleSheet.absoluteFill : psresult.size\n ]}>\n <Image\n source={this.state.imageSrc}\n resizeMode={psresult.resizeMode as any || 'cover'}\n style={[\n { \n width: '100%',\n height: '100%'\n }, \n !isEmpty(psresult.size)\n || (psresult.resizeMode === 'cover'\n || psresult.resizeMode === 'contain') ? null : {\n minWidth: this.state.naturalImageWidth,\n minHeight: this.state.naturalImageHeight\n }\n ]}/> \n </View>\n </View>\n </View>);\n }}\n </AssetConsumer>\n );\n }\n\n public render() {\n const gradientData = this.getGradient();\n if (gradientData?.value?.length) {\n return this.renderLinearGradient(gradientData.value[1]);\n } else if (this.props.image && this.state.imageSrc) {\n return this.renderImage();\n }\n return null;\n }\n}\n\n"],"mappings":";;;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,cAAc,IAAIC,kBAAkB,QAA6B,sBAAsB;AAChG,SAASC,KAAK,EAAEC,UAAU,EAAEC,IAAI,QAAmB,cAAc;AACjE,SAASC,OAAO,EAAEC,KAAK,EAAEC,QAAQ,QAAkB,WAAW;AAC9D,OAAOC,kBAAkB,MAAM,mDAAmD;AAClF,SAASC,aAAa,QAAQ,+CAA+C;AAC7E,SAASC,aAAa,QAAQ,sCAAsC;AAkBpE,MAAMC,eAAe,GAAG,4BAA4B;AACpD,MAAMC,qBAAqB,GAAG,4BAA4B;AAC1D,MAAMC,eAAe,GAAG,kBAAkB;AAC1C,MAAMC,yBAAyB,GAAG,oCAAoC;AACtE,MAAMC,qBAAqB,GAAG,oCAAoC;AAElE,MAAMC,WAAW,GAAG,CAAC,CAAQ;AAE7B,OAAO,MAAMhB,cAAc,SAASD,KAAK,CAACkB,SAAS,CAA2C;EAE1FC,WAAWA,CAACC,KAA0B,EAAE;IACpC,KAAK,CAACA,KAAK,CAAC;IACZ,IAAI,CAACC,KAAK,GAAG,IAAI,CAACC,KAAK,CAAC,CAAC;EAC7B;EAEAA,KAAKA,CAACC,GAAG,GAAG,IAAI,CAACH,KAAK,CAACI,KAAK,EAAE;IAC1B,IAAIH,KAAK,GAAG,CAAC,CAAwB;IACrC,MAAMI,MAAM,GAAGF,GAAG,CAACG,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;IAChD,IAAIC,KAAK,GAAG,CAAC;IACb,MAAMC,SAAgC,GAAG,EAAE;IAC3C,IAAIN,MAAM,CAAC,CAAC,CAAC,CAACO,QAAQ,CAAC,KAAK,CAAC,EAAE;MAC3BF,KAAK,GAAIG,QAAQ,CAACR,MAAM,CAAC,CAAC,CAAC,CAACC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,GAAG;MACjDI,KAAK,GAAGA,KAAK,GAAG,CAAC,GAAI,GAAG,GAAGA,KAAK,GAAIA,KAAK;MACzCL,MAAM,CAACS,KAAK,CAAC,CAAC;IAClB;IACAJ,KAAK,IAAI,EAAE;IACX,MAAMK,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAAER,KAAK,GAAGM,IAAI,CAACG,EAAE,GAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAC,GAAG;IACrE,IAAIH,IAAI,CAACI,GAAG,CAACL,KAAK,CAAC,GAAG,CAAC,EAAE;MACrBd,KAAK,GAAG;QACJoB,GAAG,EAAE;UACDC,CAAC,EAAE,CAAC,GAAG,GAAGP,KAAK,GAAG,GAAG;UACrBQ,CAAC,EAAE;QACP,CAAC;QACDC,KAAK,EAAE;UACHF,CAAC,EAAE,GAAG,GAAGP,KAAK,GAAG,GAAG;UACpBQ,CAAC,EAAE;QACP;MACJ,CAAyB;IAC7B,CAAC,MAAM;MACHtB,KAAK,GAAG;QACJuB,KAAK,EAAE;UACHF,CAAC,EAAE,CAAC;UACJC,CAAC,EAAE,CAAC,GAAG,GAAGR,KAAK,GAAG;QACtB,CAAC;QACDM,GAAG,EAAE;UACDC,CAAC,EAAE,CAAC;UACJC,CAAC,EAAE,GAAG,GAAGR,KAAK,GAAG;QACrB;MACJ,CAAyB;IAC7B;IACA,IAAIL,KAAK,IAAI,GAAG,IAAIA,KAAK,IAAI,GAAG,EAAE;MAC9BT,KAAK,GAAG;QACJuB,KAAK,EAAGvB,KAAK,CAACoB,GAAG;QACjBA,GAAG,EAAEpB,KAAK,CAACuB;MACf,CAAwB;IAC5B;IACAvB,KAAK,CAACwB,MAAM,GAAG,EAAE;IACjBxB,KAAK,CAACU,SAAS,GAAG,EAAE;IACpBN,MAAM,CAACE,GAAG,CAACmB,CAAC,IAAI;MAAA,IAAAC,gBAAA;MACZ,MAAMC,CAAC,IAAAD,gBAAA,GAAGD,CAAC,CAACG,QAAQ,CAAC,eAAe,CAAC,CAACC,IAAI,CAAC,CAAC,cAAAH,gBAAA,uBAAlCA,gBAAA,CAAoCvB,KAAK;MACnD,IAAIwB,CAAC,EAAE;QACH3B,KAAK,CAACU,SAAS,CAACoB,IAAI,CAAClB,QAAQ,CAACe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC1C3B,KAAK,CAACwB,MAAM,CAACM,IAAI,CAACL,CAAC,CAACM,OAAO,CAACJ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;MAC1C,CAAC,MAAM;QACH3B,KAAK,CAACU,SAAS,CAACoB,IAAI,CAAC,IAAW,CAAC;QACjC9B,KAAK,CAACwB,MAAM,CAACM,IAAI,CAACL,CAAC,CAAC;MACxB;IACJ,CAAC,CAAC;IACF,OAAOzB,KAAK;EAChB;EAEAgC,kBAAkBA,CAACC,SAAwC,EAAEC,SAAuB,EAAEC,QAAc,EAAQ;IACxG,IAAIF,SAAS,CAAC9B,KAAK,KAAK,IAAI,CAACJ,KAAK,CAACI,KAAK,EAAE;MACtC,IAAI,CAACiC,QAAQ,CAAC,IAAI,CAACnC,KAAK,CAAC,CAAC,CAAC;IAC/B;EACJ;EAGOoC,MAAMA,CAAA,EAAG;IAAA,IAAAC,gBAAA,EAAAC,iBAAA;IACZ,oBACI5D,KAAA,CAAA6D,aAAA,CAACxD,IAAI;MAACyD,KAAK,EAAE,CAAC;QAACC,WAAW,EAAE,CAAC;QAAEC,QAAQ,EAAE;MAAQ,CAAC,EAAE5D,UAAU,CAAC6D,YAAY,EAAE,IAAI,CAAC7C,KAAK,CAAC0C,KAAK;IAAE,gBAC3F9D,KAAA,CAAA6D,aAAA,CAACxD,IAAI;MAACyD,KAAK,EAAE,CACT1D,UAAU,CAAC6D,YAAY,EAAE,IAAI,CAAC7C,KAAK,CAAC8C,MAAM,GAAG;QACzCC,aAAa,EAAE,KAAK;QACpBC,cAAc,EAAE,QAAQ;QACxBC,UAAU,EAAE;MAChB,CAAC,GAAG,IAAI;IAAE,gBACVrE,KAAA,CAAA6D,aAAA,CAAC3D,kBAAkB;MAACoE,MAAM,EAAC,yBAAyB;MAChDzB,MAAM,EAAE,IAAI,CAACxB,KAAK,CAACwB,MAAO;MAC1Bd,SAAS,EAAE,IAAI,CAACV,KAAK,CAACU,SAAU;MAChCa,KAAK,EAAE,IAAI,CAACvB,KAAK,CAACuB,KAAM;MACxBH,GAAG,EAAE,IAAI,CAACpB,KAAK,CAACoB,GAAI;MACpBqB,KAAK,EAAE,CACH,CAAAH,gBAAA,OAAI,CAACvC,KAAK,CAACmD,IAAI,cAAAZ,gBAAA,eAAfA,gBAAA,CAAiBa,KAAK,GAAG,IAAI,CAACpD,KAAK,CAACmD,IAAI,GAAGnE,UAAU,CAAC6D,YAAY,EAClE,IAAI,CAAC7C,KAAK,CAACqD,QAAQ,EACnB;QAACA,QAAQ,EAAE,UAAU;QAAEC,YAAY,GAAAd,iBAAA,GAAE,IAAI,CAACxC,KAAK,CAAC0C,KAAK,cAAAF,iBAAA,uBAAhBA,iBAAA,CAAkBc;MAAY,CAAC;IACtE,CACL,CACC,CAAC,EACN,IAAI,CAACtD,KAAK,CAACuD,QACV,CAAC;EAEf;AACJ;AAkBA,OAAO,MAAMC,mBAAmB,SAAS5E,KAAK,CAACkB,SAAS,CAAmC;EAIvFC,WAAWA,CAACC,KAAsB,EAAE;IAChC,KAAK,CAACA,KAAK,CAAC;IAACyD,eAAA,oBAHsC,IAAI;IAIvD,IAAI,CAACxD,KAAK,GAAG;MACTyD,QAAQ,EAAG,IAAI,CAAC1D,KAAK,CAAC2D,KAAK,GAAG9D,WAAW,CAAC,IAAI,CAACG,KAAK,CAAC2D,KAAK,CAAC,GAAGC;IAClE,CAAoB;EACxB;EAEOC,cAAcA,CAACH,QAAa,EAAE;IACjC,IAAItE,QAAQ,CAACsE,QAAQ,CAAC,EAAE;MACpB,MAAM;QAACN,KAAK;QAAEU;MAAM,CAAC,GAAG/E,KAAK,CAACgF,kBAAkB,CAACL,QAAQ,CAAC;MAC1D,IAAI,CAACrB,QAAQ,CAAC;QACZ2B,iBAAiB,EAAEZ,KAAK;QACxBa,kBAAkB,EAAEH;MACtB,CAAoB,CAAC;IACvB,CAAC,MAAM,IAAI,CAAC3E,KAAK,CAACuE,QAAQ,CAAC,EAAE;MAC3BrE,kBAAkB,CAAC6E,OAAO,CAACR,QAAQ,CAACS,GAAG,EAAE,CAACf,KAAa,EAAEU,MAAc,KAAK;QAC1E,IAAI,CAACzB,QAAQ,CAAC;UACZ2B,iBAAiB,EAAEZ,KAAK;UACxBa,kBAAkB,EAAEH;QACtB,CAAoB,CAAC;MACvB,CAAC,CAAC;IACJ;EACN;EAEAM,YAAYA,CAACC,GAAW,EAAE;IACtB,IAAIA,GAAG,EAAE;MACL,MAAMjE,KAAK,GAAGiE,GAAG,CAACxC,QAAQ,CAACnC,eAAe,CAAC,CAACoC,IAAI,CAAC,CAAC,CAAC1B,KAAK;MACxD,IAAIA,KAAK,CAAC,CAAC,CAAC,EAAE;QACV,OAAOA,KAAK,CAAC,CAAC,CAAC,CAACQ,QAAQ,CAAC,GAAG,CAAC,GAAGR,KAAK,CAAC,CAAC,CAAC,GAAGS,QAAQ,CAACT,KAAK,CAAC,CAAC,CAAC,CAAC;MACjE;IACJ;IACA,OAAO,IAAI;EACf;EAEOkE,WAAWA,CAAA,EAAG;IACjB,MAAMC,MAAM,GAAG,CAAC,CAAc;IAC9B,IAAI,CAAC,IAAI,CAACvE,KAAK,CAACqD,QAAQ,EAAE;MACtB,OAAOkB,MAAM;IACjB;IACA,MAAMlB,QAAQ,GAAG,IAAI,CAACrD,KAAK,CAACqD,QAAQ,CAAC/C,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACmB,CAAC,IAAIA,CAAC,CAACjB,IAAI,CAAC,CAAC,CAAC;IAClE,IAAI4C,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;MAC1BkB,MAAM,CAACtB,UAAU,GAAG,QAAQ;IAChC,CAAC,MAAM,IAAII,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;MAC9BkB,MAAM,CAACC,GAAG,GAAG,CAAC;IAClB,CAAC,MAAM,IAAInB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;MACjCkB,MAAM,CAACE,MAAM,GAAG,CAAC;IACrB,CAAC,MAAM;MACHF,MAAM,CAACC,GAAG,GAAG,IAAI,CAACJ,YAAY,CAACf,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/C;IACA,IAAIA,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;MAC1BkB,MAAM,CAACvB,cAAc,GAAG,QAAQ;IACpC,CAAC,MAAM,IAAIK,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE;MAC/BkB,MAAM,CAACG,IAAI,GAAG,CAAC;IACnB,CAAC,MAAM,IAAIrB,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;MACjCkB,MAAM,CAACI,KAAK,GAAG,CAAC;IACpB,CAAC,MAAM;MACHJ,MAAM,CAACG,IAAI,GAAG,IAAI,CAACN,YAAY,CAACf,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD;IACA,OAAOkB,MAAM;EACjB;EAEOK,kBAAkBA,CAAA,EAAG;IAAA,IAAAC,iBAAA,EAAAC,iBAAA;IACxB,MAAMP,MAIL,GAAG,CAAC,CAAQ;IACb,IAAI,IAAI,CAACvE,KAAK,CAAC+E,UAAU,EAAE;MACvBR,MAAM,CAACQ,UAAU,GAAG,IAAI,CAAC/E,KAAK,CAAC+E,UAAU;MACzC,OAAOR,MAAM;IACjB,CAAC,MAAM,IAAI,IAAI,CAACvE,KAAK,CAACqD,QAAQ,KAAK,QAAQ,EAAE;MACzCkB,MAAM,CAACQ,UAAU,GAAG,QAAQ;MAC5BR,MAAM,CAAClB,QAAQ,GAAG;QACdL,cAAc,EAAE,QAAQ;QACxBC,UAAU,EAAE;MAChB,CAAC;IACL,CAAC,MAAM,IAAI,IAAI,CAACjD,KAAK,CAACmD,IAAI,KAAK,SAAS,IAAI,IAAI,CAACnD,KAAK,CAACmD,IAAI,KAAK,OAAO,EAAE;MACrEoB,MAAM,CAACQ,UAAU,GAAG,IAAI,CAAC/E,KAAK,CAACmD,IAAI;MACnC,OAAOoB,MAAM;IACjB;IACA,MAAMpB,IAAI,IAAA0B,iBAAA,GAAG,IAAI,CAAC7E,KAAK,CAACmD,IAAI,cAAA0B,iBAAA,uBAAfA,iBAAA,CAAiBhD,QAAQ,CAACjC,qBAAqB,CAAC,CAACkC,IAAI,CAAC,CAAC,CAAC1B,KAAK;IAC1EmE,MAAM,CAACpB,IAAI,GAAG,CAAC,CAAC;IAChB,IAAIA,IAAI,EAAE;MACNoB,MAAM,CAACpB,IAAI,CAACC,KAAK,GAAGD,IAAI,CAAC,CAAC,CAAC,CAACvC,QAAQ,CAAC,GAAG,CAAC,GAAGuC,IAAI,CAAC,CAAC,CAAC,GAAGtC,QAAQ,CAACsC,IAAI,CAAC,CAAC,CAAC,CAAC;MACvEoB,MAAM,CAACpB,IAAI,CAACW,MAAM,GAAGX,IAAI,CAAC,CAAC,CAAC,CAACvC,QAAQ,CAAC,GAAG,CAAC,GAAGuC,IAAI,CAAC,CAAC,CAAC,GAAGtC,QAAQ,CAACsC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E;IACA,IAAI,CAACoB,MAAM,CAACQ,UAAU,IAAI,IAAI,CAAC/E,KAAK,CAACqD,QAAQ,EAAE;MAC3CkB,MAAM,CAAClB,QAAQ,GAAG,IAAI,CAACiB,WAAW,CAAC,CAAC;IACxC;IACA,IAAI,GAAAQ,iBAAA,GAAC,IAAI,CAACE,WAAW,CAAC,CAAC,cAAAF,iBAAA,gBAAAA,iBAAA,GAAlBA,iBAAA,CAAoB1E,KAAK,cAAA0E,iBAAA,eAAzBA,iBAAA,CAA2BG,MAAM,GAAE;MACpC,IAAI,IAAI,CAACjF,KAAK,CAACkF,MAAM,KAAK,WAAW,EAAE;QACnCX,MAAM,CAACpB,IAAI,CAACC,KAAK,GAAGmB,MAAM,CAACpB,IAAI,CAACC,KAAK,IAAI,IAAI,CAACnD,KAAK,CAAC+D,iBAAiB;QACrEO,MAAM,CAACpB,IAAI,CAACW,MAAM,GAAGS,MAAM,CAACpB,IAAI,CAACW,MAAM,IAAI,IAAI,CAAC7D,KAAK,CAACgE,kBAAkB;MAC5E,CAAC,MAAM,IAAI,IAAI,CAACjE,KAAK,CAACkF,MAAM,KAAK,UAAU,EAAE;QACzCX,MAAM,CAACQ,UAAU,GAAG,QAAQ;QAC5BR,MAAM,CAACpB,IAAI,CAACC,KAAK,GAAGmB,MAAM,CAACpB,IAAI,CAACC,KAAK,IAAI,MAAM;QAC/CmB,MAAM,CAACpB,IAAI,CAACW,MAAM,GAAGS,MAAM,CAACpB,IAAI,CAACW,MAAM,IAAI,IAAI,CAAC7D,KAAK,CAACgE,kBAAkB;MAC5E,CAAC,MAAM,IAAI,IAAI,CAACjE,KAAK,CAACkF,MAAM,KAAK,UAAU,EAAE;QACzCX,MAAM,CAACQ,UAAU,GAAG,QAAQ;QAC5BR,MAAM,CAACpB,IAAI,CAACC,KAAK,GAAGmB,MAAM,CAACpB,IAAI,CAACC,KAAK,IAAI,IAAI,CAACnD,KAAK,CAAC+D,iBAAiB;QACrEO,MAAM,CAACpB,IAAI,CAACW,MAAM,GAAGS,MAAM,CAACpB,IAAI,CAACW,MAAM,IAAI,MAAM;MACrD,CAAC,MAAM;QACHS,MAAM,CAACQ,UAAU,GAAG,QAAQ;MAChC;IACJ;IACA,OAAOR,MAAM;EACjB;EAEOY,oBAAoBA,CAACC,IAAY,EAAE;IACtC,MAAMC,QAAQ,GAAG,IAAI,CAACT,kBAAkB,CAAC,CAAC;IAC1C,oBACIhG,KAAA,CAAA6D,aAAA,CAAC5D,cAAc;MACXuB,KAAK,EAAEgF,IAAI,IAAI,EAAG;MAClB1C,KAAK,EAAE,IAAI,CAAC1C,KAAK,CAAC0C,KAAM;MACxBS,IAAI,EAAEkC,QAAQ,CAAClC,IAAK;MACpBE,QAAQ,EAAEgC,QAAQ,CAAChC,QAAS;MAC5BP,MAAM,EAAEuC,QAAQ,CAACN,UAAU,KAAK;IAAS,gBACzCnG,KAAA,CAAA6D,aAAA,CAAA7D,KAAA,CAAA0G,QAAA,MAAI,CACQ,CAAC;EAEzB;EAEArD,kBAAkBA,CAACC,SAAoC,EAAEC,SAAuB,EAAEC,QAAc,EAAQ;IACpG,IAAI,IAAI,CAACpC,KAAK,CAAC2D,KAAK,IAAIzB,SAAS,CAACyB,KAAK,KAAK,IAAI,CAAC3D,KAAK,CAAC2D,KAAK,EAAE;MAC1D,IAAI,CAAC4B,QAAQ,CAAC,CAAC;IACnB;EACJ;EAEAC,iBAAiBA,CAAA,EAAS;IACtBC,UAAU,CAAC,MAAM,IAAI,CAACF,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;EAC1C;EAEAA,QAAQA,CAAA,EAAG;IAAA,IAAAG,iBAAA,EAAAC,OAAA;IACP,IAAIC,MAAM,IAAAF,iBAAA,GAAG,IAAI,CAAC1F,KAAK,CAAC2D,KAAK,cAAA+B,iBAAA,uBAAhBA,iBAAA,CAAkBjF,IAAI,CAAC,CAAQ;IAC5C,IAAI,CAACmF,MAAM,EAAE;MACT;IACJ;IACA,KAAAD,OAAA,GAAIC,MAAM,cAAAD,OAAA,eAANA,OAAA,CAAQE,UAAU,CAAC,KAAK,CAAC,EAAE;MAAA,IAAAC,kBAAA;MAC3BF,MAAM,IAAAE,kBAAA,GAAG,IAAI,CAAC9F,KAAK,CAAC2D,KAAK,cAAAmC,kBAAA,uBAAhBA,kBAAA,CAAkBjE,QAAQ,CAACrC,eAAe,CAAC,CAACsC,IAAI,CAAC,CAAC,CAAC1B,KAAK,CAAC,CAAC,CAAC;IACxE;IACA,IAAI,IAAI,CAAC2F,SAAS,EAAE;MAChBH,MAAM,GAAG,IAAI,CAACG,SAAS,CAACH,MAAM,CAAC;IACnC;IACA,IAAIrG,aAAa,CAACqG,MAAM,CAAC,EAAE;MACvBA,MAAM,GAAG;QACLzB,GAAG,EAAEyB;MACT,CAAC;IACL;IACA,IAAI,CAAC/B,cAAc,CAAC+B,MAAM,CAAC;IAC3B,IAAI,CAACvD,QAAQ,CAAC;MACVqB,QAAQ,EAAEkC;IACd,CAAoB,CAAC;IACrB,IAAI,IAAI,CAAC5F,KAAK,CAAC2D,KAAK,EAAE;MAClB9D,WAAW,CAAC,IAAI,CAACG,KAAK,CAAC2D,KAAK,CAAC,GAAGiC,MAAM;IAC1C;EACJ;EAEOZ,WAAWA,CAAA,EAAG;IAAA,IAAAgB,kBAAA;IACjB,QAAAA,kBAAA,GAAO,IAAI,CAAChG,KAAK,CAAC2D,KAAK,cAAAqC,kBAAA,uBAAhBA,kBAAA,CAAkBvF,IAAI,CAAC,CAAC,CAACoB,QAAQ,CAACpC,qBAAqB,CAAC,CAACqC,IAAI,CAAC,CAAC;EAC1E;EAEOmE,WAAWA,CAAA,EAAG;IACjB,MAAMZ,QAAQ,GAAG,IAAI,CAACT,kBAAkB,CAAC,CAAC;IAC1C,oBACAhG,KAAA,CAAA6D,aAAA,CAACnD,aAAa,QACRyG,SAAS,IAAK;MAAA,IAAAG,kBAAA,EAAAC,mBAAA;MAChB,MAAMC,SAAS,GAAG,IAAI,CAACL,SAAS,KAAKA,SAAS;MAC9C,IAAI,CAACA,SAAS,GAAGA,SAAS;MAC1B,IAAIK,SAAS,EAAE;QACXX,UAAU,CAAC,MAAM,IAAI,CAACF,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;MACzC;MACA,oBAAQ3G,KAAA,CAAA6D,aAAA,CAACxD,IAAI;QAACyD,KAAK,EAAE,CAAC;UAACC,WAAW,EAAE,CAAC;UAAEC,QAAQ,EAAE;QAAQ,CAAC,EAAE5D,UAAU,CAAC6D,YAAY,EAAE,IAAI,CAAC7C,KAAK,CAAC0C,KAAK;MAAE,gBACnG9D,KAAA,CAAA6D,aAAA,CAACxD,IAAI;QAACyD,KAAK,EAAE,CACT1D,UAAU,CAAC6D,YAAY,EAAE;UACrBE,aAAa,EAAE,KAAK;UACpBC,cAAc,GAAAkD,kBAAA,GAAEb,QAAQ,CAAChC,QAAQ,cAAA6C,kBAAA,uBAAjBA,kBAAA,CAAmBlD,cAAc;UACjDC,UAAU,GAAAkD,mBAAA,GAAEd,QAAQ,CAAChC,QAAQ,cAAA8C,mBAAA,uBAAjBA,mBAAA,CAAmBlD;QACnC,CAAC;MAAE,gBACHrE,KAAA,CAAA6D,aAAA,CAACxD,IAAI;QAACyD,KAAK,EAAE,CACT;UAAEW,QAAQ,EAAE,UAAU;UAAET,QAAQ,EAAE;QAAS,CAAC,EAC5CyC,QAAQ,CAAChC,QAAQ,EACjBnE,OAAO,CAACmG,QAAQ,CAAClC,IAAI,CAAC,GAAInE,UAAU,CAAC6D,YAAY,GAAGwC,QAAQ,CAAClC,IAAI;MACnE,gBACEvE,KAAA,CAAA6D,aAAA,CAAC1D,KAAK;QACF6G,MAAM,EAAE,IAAI,CAAC3F,KAAK,CAACyD,QAAS;QAC5BqB,UAAU,EAAEM,QAAQ,CAACN,UAAU,IAAW,OAAQ;QAClDrC,KAAK,EAAE,CACH;UACIU,KAAK,EAAE,MAAM;UACbU,MAAM,EAAE;QACZ,CAAC,EACD,CAAC5E,OAAO,CAACmG,QAAQ,CAAClC,IAAI,CAAC,IACfkC,QAAQ,CAACN,UAAU,KAAK,OAAO,IAC5BM,QAAQ,CAACN,UAAU,KAAM,SAAU,GAAG,IAAI,GAAG;UACpDsB,QAAQ,EAAE,IAAI,CAACpG,KAAK,CAAC+D,iBAAiB;UACtCsC,SAAS,EAAE,IAAI,CAACrG,KAAK,CAACgE;QAC1B,CAAC;MACH,CAAC,CACL,CACJ,CACJ,CAAC;IACP,CACW,CAAC;EAEpB;EAEO3B,MAAMA,CAAA,EAAG;IAAA,IAAAiE,mBAAA;IACZ,MAAMC,YAAY,GAAG,IAAI,CAACxB,WAAW,CAAC,CAAC;IACvC,IAAIwB,YAAY,aAAZA,YAAY,gBAAAD,mBAAA,GAAZC,YAAY,CAAEpG,KAAK,cAAAmG,mBAAA,eAAnBA,mBAAA,CAAqBtB,MAAM,EAAE;MAC7B,OAAO,IAAI,CAACE,oBAAoB,CAACqB,YAAY,CAACpG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC,MAAM,IAAI,IAAI,CAACJ,KAAK,CAAC2D,KAAK,IAAI,IAAI,CAAC1D,KAAK,CAACyD,QAAQ,EAAE;MAChD,OAAO,IAAI,CAACuC,WAAW,CAAC,CAAC;IAC7B;IACA,OAAO,IAAI;EACf;AACJ","ignoreList":[]}
|