@wavemaker/app-rn-runtime 11.14.1-32.647748 → 11.14.1-33.647787
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 +1 -1
- package/components/advanced/carousel/carousel.component.js.map +1 -1
- package/components/advanced/webview/webview.component.js +1 -1
- package/components/advanced/webview/webview.component.js.map +1 -1
- package/components/basic/bottomsheet/bottomsheet.component.js +240 -33
- package/components/basic/bottomsheet/bottomsheet.component.js.map +1 -1
- package/components/basic/bottomsheet/bottomsheet.styles.js +0 -3
- package/components/basic/bottomsheet/bottomsheet.styles.js.map +1 -1
- package/components/basic/label/label.component.js +13 -24
- package/components/basic/label/label.component.js.map +1 -1
- package/components/basic/label/label.props.js +1 -0
- package/components/basic/label/label.props.js.map +1 -1
- package/components/basic/progress-circle/progress-circle.component.js +3 -3
- package/components/basic/progress-circle/progress-circle.component.js.map +1 -1
- package/components/chart/area-chart/area-chart.component.js +27 -10
- package/components/chart/area-chart/area-chart.component.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.component.js +39 -7
- package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.props.js +1 -0
- package/components/chart/bar-chart/bar-chart.props.js.map +1 -1
- package/components/chart/basechart.component.js +8 -15
- package/components/chart/basechart.component.js.map +1 -1
- package/components/chart/basechart.props.js +1 -0
- package/components/chart/basechart.props.js.map +1 -1
- package/components/chart/bubble-chart/bubble-chart.component.js +23 -6
- package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
- package/components/chart/line-chart/line-chart.component.js +22 -5
- package/components/chart/line-chart/line-chart.component.js.map +1 -1
- package/components/chart/pie-chart/pie-chart.component.js +15 -4
- package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
- package/components/chart/stack-chart/stack-chart.component.js +1 -1
- package/components/chart/stack-chart/stack-chart.component.js.map +1 -1
- package/components/container/accordion/accordionpane/accordionpane.component.js +6 -4
- package/components/container/accordion/accordionpane/accordionpane.component.js.map +1 -1
- package/components/container/container.component.js +207 -14
- package/components/container/container.component.js.map +1 -1
- package/components/container/container.props.js +6 -0
- package/components/container/container.props.js.map +1 -1
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js +32 -4
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.component.js.map +1 -1
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js +1 -0
- package/components/container/linearlayout/linearlayoutitem/linearlayoutitem.props.js.map +1 -1
- package/components/container/panel/panel.component.js +1 -1
- package/components/container/panel/panel.component.js.map +1 -1
- package/components/container/tabs/tabpane/tabpane.component.js +1 -1
- package/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
- package/components/container/tabs/tabs.component.js +62 -29
- package/components/container/tabs/tabs.component.js.map +1 -1
- package/components/container/tabs/tabs.props.js +1 -0
- package/components/container/tabs/tabs.props.js.map +1 -1
- package/components/container/wizard/wizard.component.js +3 -5
- package/components/container/wizard/wizard.component.js.map +1 -1
- package/components/container/wizard/wizard.props.js +0 -1
- package/components/container/wizard/wizard.props.js.map +1 -1
- package/components/container/wizard/wizard.styles.js +3 -1
- package/components/container/wizard/wizard.styles.js.map +1 -1
- package/components/container/wizard/wizardstep/wizardstep.component.js +4 -23
- package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
- package/components/container/wizard/wizardstep/wizardstep.props.js +0 -2
- package/components/container/wizard/wizardstep/wizardstep.props.js.map +1 -1
- package/components/data/form/form-field/form-field.component.js +26 -1
- package/components/data/form/form-field/form-field.component.js.map +1 -1
- package/components/data/form/form-field/form-field.props.js +3 -0
- package/components/data/form/form-field/form-field.props.js.map +1 -1
- package/components/data/form/form.component.js +11 -3
- 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.component.js +6 -3
- package/components/data/list/list.component.js.map +1 -1
- package/components/dialogs/dialog/dialog.component.js +1 -1
- package/components/dialogs/dialog/dialog.component.js.map +1 -1
- package/components/dialogs/dialogcontent/dialogcontent.component.js +1 -2
- package/components/dialogs/dialogcontent/dialogcontent.component.js.map +1 -1
- package/components/input/baseinput/baseinput.component.js +30 -3
- 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 +18 -3
- 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/calendar/calendar.component.js +5 -1
- package/components/input/calendar/calendar.component.js.map +1 -1
- package/components/input/calendar/views/month-view.js +8 -1
- package/components/input/calendar/views/month-view.js.map +1 -1
- package/components/input/checkboxset/checkboxset.component.js +2 -2
- package/components/input/checkboxset/checkboxset.component.js.map +1 -1
- package/components/input/currency/currency.component.js +2 -0
- package/components/input/currency/currency.component.js.map +1 -1
- package/components/input/currency/currency.styles.js +10 -1
- package/components/input/currency/currency.styles.js.map +1 -1
- package/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js +6 -1
- package/components/input/epoch/wheelpickermodal/date/date-picker-modal.component.js.map +1 -1
- package/components/input/epoch/wheelpickermodal/time/time-picker-modal.component.js +6 -1
- package/components/input/epoch/wheelpickermodal/time/time-picker-modal.component.js.map +1 -1
- package/components/input/number/number.component.js +2 -0
- package/components/input/number/number.component.js.map +1 -1
- package/components/input/number/number.styles.js +4 -0
- package/components/input/number/number.styles.js.map +1 -1
- package/components/input/radioset/radioset.component.js +4 -6
- package/components/input/radioset/radioset.component.js.map +1 -1
- package/components/input/text/text.component.js +13 -2
- package/components/input/text/text.component.js.map +1 -1
- package/components/input/text/text.props.js +1 -1
- package/components/input/text/text.props.js.map +1 -1
- package/components/input/text/text.styles.js +17 -0
- package/components/input/text/text.styles.js.map +1 -1
- package/components/input/textarea/textarea.component.js +3 -2
- package/components/input/textarea/textarea.component.js.map +1 -1
- package/components/input/textarea/textarea.styles.js +4 -0
- package/components/input/textarea/textarea.styles.js.map +1 -1
- package/components/page/left-panel/left-panel.component.js +1 -1
- package/components/page/left-panel/left-panel.component.js.map +1 -1
- package/components/page/page-content/page-content.component.js +157 -17
- package/components/page/page-content/page-content.component.js.map +1 -1
- package/components/page/page-content/page-content.props.js +4 -0
- package/components/page/page-content/page-content.props.js.map +1 -1
- package/components/page/page-content/pull-to-refresh.component.js +288 -0
- package/components/page/page-content/pull-to-refresh.component.js.map +1 -0
- package/core/AppConfig.js.map +1 -1
- package/core/base.component.js +37 -5
- package/core/base.component.js.map +1 -1
- package/core/components/error-fallback/error-fallback.component.js +18 -50
- package/core/components/error-fallback/error-fallback.component.js.map +1 -1
- package/core/components/error-fallback/error-fallback.styles.js +1 -4
- package/core/components/error-fallback/error-fallback.styles.js.map +1 -1
- package/core/components/textinput.component.js +27 -8
- package/core/components/textinput.component.js.map +1 -1
- package/core/environment.js +25 -0
- package/core/environment.js.map +1 -0
- package/core/error-boundary.component.js +2 -46
- package/core/error-boundary.component.js.map +1 -1
- package/core/fixed-view.component.js +19 -2
- package/core/fixed-view.component.js.map +1 -1
- package/core/sticky-wrapper.js +37 -34
- package/core/sticky-wrapper.js.map +1 -1
- package/core/tappable.component.js +110 -16
- package/core/tappable.component.js.map +1 -1
- package/core/viewport.js +13 -8
- package/core/viewport.js.map +1 -1
- package/gestures/carousel-swipe.animation.js +1 -1
- package/gestures/carousel-swipe.animation.js.map +1 -1
- package/npm-shrinkwrap.json +383 -219
- package/package-lock.json +383 -219
- package/package.json +5 -6
- package/runtime/App.js +31 -181
- package/runtime/App.js.map +1 -1
- package/runtime/App.navigator.js +1 -4
- package/runtime/App.navigator.js.map +1 -1
- package/runtime/base-fragment.component.js +29 -5
- package/runtime/base-fragment.component.js.map +1 -1
- package/runtime/base-page.component.js +4 -12
- package/runtime/base-page.component.js.map +1 -1
- package/runtime/navigator/drawer.navigator.js +2 -0
- package/runtime/navigator/drawer.navigator.js.map +1 -1
- package/runtime/navigator/stack.navigator.js +17 -2
- package/runtime/navigator/stack.navigator.js.map +1 -1
- package/runtime/services/app-security.service.js +19 -40
- package/runtime/services/app-security.service.js.map +1 -1
- package/runtime/services/device/scan-service.js +12 -34
- package/runtime/services/device/scan-service.js.map +1 -1
- package/runtime/services/webprocess.service.js +3 -8
- package/runtime/services/webprocess.service.js.map +1 -1
- package/styles/background.component.js +61 -2
- package/styles/background.component.js.map +1 -1
- package/styles/style-prop.validator.js +4 -0
- package/styles/style-prop.validator.js.map +1 -1
- package/styles/style-props.js +2 -0
- package/styles/style-props.js.map +1 -1
- package/styles/theme.js +27 -2
- package/styles/theme.js.map +1 -1
- package/styles/theme.variables.js +2 -0
- package/styles/theme.variables.js.map +1 -1
- package/core/advanced-promise-rejection-tracker.js +0 -207
- package/core/advanced-promise-rejection-tracker.js.map +0 -1
- package/core/global-error-handler.service.js +0 -177
- package/core/global-error-handler.service.js.map +0 -1
- package/runtime/services/browser.constants.js +0 -3
- package/runtime/services/browser.constants.js.map +0 -1
- package/runtime/services/browser.service.js +0 -321
- package/runtime/services/browser.service.js.map +0 -1
- package/runtime/services/external-auth-callback.service.js +0 -44
- package/runtime/services/external-auth-callback.service.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","axios","each","includes","networkService","injector","StorageService","WebProcessService","getBrowserConfig","getSsoBrowserFlags","isWebPreviewMode","USER_ROLE","authCookieStr","XSRF_COOKIE_NAME","xsrf_header_name","shouldRedirectToLoginOn401","url","status","appUrl","pageName","startsWith","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","getXsrfToken","then","token","_config$url","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","ssoLoginPromise","useSystemBrowser","incognito","execute","output","formateData","reject","refresh","catch","error","_this$appConfig$app","_this$appConfig$app$o","console","message","onServiceError","call","undefined","_this$securityConfig$","_this$appConfig$curre3","loginPage","appLogout","_response$data","result","r","_response$data2","e","canUserAccessPage","_this$securityConfig2","res","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 { getBrowserConfig, getSsoBrowserFlags } from './browser.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\n/** True when a 401 on an app page (not /services/) should run redirectToLogin. */\nexport function shouldRedirectToLoginOn401(\n url: string | undefined,\n status: number | undefined,\n appUrl: string | undefined,\n pageName: string | undefined\n): boolean {\n return !!url\n && !!appUrl\n && status === 401\n && url.startsWith(appUrl)\n && !url.includes('/services/')\n && pageName !== 'Login';\n}\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 // Prevents overlapping redirectToLogin() calls, which would race each other's WM_WEB_PROCESS cookie/key.\n private ssoLoginPromise: Promise<any> | null = null;\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 if (!this.ssoLoginPromise) {\n this.ssoLoginPromise = new Promise((resolve) => {\n setTimeout(() => {\n const { useSystemBrowser, incognito } = getSsoBrowserFlags(getBrowserConfig(this.appConfig));\n WebProcessService.execute('LOGIN', '/services/security/ssologin', useSystemBrowser, incognito)\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 }).catch((error: any) => {\n console.error('[AppSecurityService] SSO login failed:', error?.message || error);\n this.appConfig.app?.onServiceError?.(error?.message || 'SSO login failed', error);\n }).then(() => {\n this.ssoLoginPromise = null;\n resolve(undefined);\n });\n }, 1000);\n });\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":[]}
|
|
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":[]}
|
|
@@ -56,33 +56,7 @@ const styles = StyleSheet.create({
|
|
|
56
56
|
backgroundColor: opacity
|
|
57
57
|
}
|
|
58
58
|
});
|
|
59
|
-
const
|
|
60
|
-
0: 'aztec'
|
|
61
|
-
}, {
|
|
62
|
-
1: 'ean13'
|
|
63
|
-
}, {
|
|
64
|
-
2: 'ean8'
|
|
65
|
-
}, {
|
|
66
|
-
3: 'qr'
|
|
67
|
-
}, {
|
|
68
|
-
4: 'pdf417'
|
|
69
|
-
}, {
|
|
70
|
-
5: 'upc_e'
|
|
71
|
-
}, {
|
|
72
|
-
6: 'datamatrix'
|
|
73
|
-
}, {
|
|
74
|
-
7: 'code39'
|
|
75
|
-
}, {
|
|
76
|
-
8: 'code93'
|
|
77
|
-
}, {
|
|
78
|
-
9: 'itf14'
|
|
79
|
-
}, {
|
|
80
|
-
10: 'codabar'
|
|
81
|
-
}, {
|
|
82
|
-
11: 'code128'
|
|
83
|
-
}, {
|
|
84
|
-
12: 'upc_a'
|
|
85
|
-
}];
|
|
59
|
+
const BARCODE_TYPES = ['aztec', 'ean13', 'ean8', 'qr', 'pdf417', 'upc_e', 'datamatrix', 'code39', 'code93', 'itf14', 'codabar', 'code128', 'upc_a'];
|
|
86
60
|
export class ScanService {
|
|
87
61
|
constructor(displayManager) {
|
|
88
62
|
this.displayManager = displayManager;
|
|
@@ -105,14 +79,19 @@ export class ScanService {
|
|
|
105
79
|
const format = (params === null || params === void 0 ? void 0 : params.barcodeFormat) || 'ALL';
|
|
106
80
|
const barcodeFormat = Platform.OS === 'ios' ? undefined : barcodeFormatOptions[format];
|
|
107
81
|
const CameraView = params === null || params === void 0 || (_params$scanPluginSer = params.scanPluginService) === null || _params$scanPluginSer === void 0 ? void 0 : _params$scanPluginSer.CameraView;
|
|
82
|
+
/**
|
|
83
|
+
* 'ALL' means any barcode in WaveMaker; the camera SDK does not accept the string 'ALL' as a barcode type.
|
|
84
|
+
* Omit scanner settings so the SDK scans every supported format.
|
|
85
|
+
*/
|
|
86
|
+
const scannerBarcodeSettings = barcodeFormat && barcodeFormat !== 'ALL' ? {
|
|
87
|
+
barcodeTypes: [barcodeFormat]
|
|
88
|
+
} : undefined;
|
|
108
89
|
return new Promise((resolve, reject) => {
|
|
109
90
|
var _params$permissionSer;
|
|
110
91
|
(params === null || params === void 0 || (_params$permissionSer = params.permissionService) === null || _params$permissionSer === void 0 ? void 0 : _params$permissionSer.requestPermissions) && params.permissionService.requestPermissions('camera').then(() => {
|
|
111
92
|
const destroy = this.displayManager.show({
|
|
112
93
|
content: /*#__PURE__*/React.createElement(CameraView, {
|
|
113
|
-
barcodeScannerSettings:
|
|
114
|
-
barcodeTypes: [BarCodeType[barcodeFormat]]
|
|
115
|
-
} : undefined,
|
|
94
|
+
barcodeScannerSettings: scannerBarcodeSettings,
|
|
116
95
|
onBarcodeScanned: result => {
|
|
117
96
|
destroy.call(this.displayManager);
|
|
118
97
|
resolve(result);
|
|
@@ -144,11 +123,10 @@ export class ScanService {
|
|
|
144
123
|
});
|
|
145
124
|
}, reject);
|
|
146
125
|
}).then(response => {
|
|
147
|
-
let format;
|
|
126
|
+
let format = '';
|
|
148
127
|
if (response.type) {
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
format = index > -1 ? Object.keys(BarCodeType)[index] : '';
|
|
128
|
+
const index = BARCODE_TYPES.indexOf(response.type);
|
|
129
|
+
format = index > -1 ? String(index) : '';
|
|
152
130
|
}
|
|
153
131
|
return Promise.resolve({
|
|
154
132
|
text: response.data,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Ionicons","Platform","StyleSheet","TouchableOpacity","View","React","appDisplayManagerService","barcodeFormatOptions","opacity","styles","create","container","flex","flexDirection","closeWrapper","justifyContent","alignItems","paddingBottom","topWrapper","backgroundColor","centerWrapper","leftWrapper","focused","rightWrapper","bottomWrapper","
|
|
1
|
+
{"version":3,"names":["Ionicons","Platform","StyleSheet","TouchableOpacity","View","React","appDisplayManagerService","barcodeFormatOptions","opacity","styles","create","container","flex","flexDirection","closeWrapper","justifyContent","alignItems","paddingBottom","topWrapper","backgroundColor","centerWrapper","leftWrapper","focused","rightWrapper","bottomWrapper","BARCODE_TYPES","ScanService","constructor","displayManager","getTestProps","suffix","id","OS","accessibilityLabel","testID","accessible","scanBarcode","params","_params$scanPluginSer","format","barcodeFormat","undefined","CameraView","scanPluginService","scannerBarcodeSettings","barcodeTypes","Promise","resolve","reject","_params$permissionSer","permissionService","requestPermissions","then","destroy","show","content","createElement","barcodeScannerSettings","onBarcodeScanned","result","call","style","absoluteFillObject","_extends","onPress","name","size","color","response","type","index","indexOf","String","text","data","cancelled","scanService"],"sources":["scan-service.tsx"],"sourcesContent":["import { Ionicons } from '@expo/vector-icons';\nimport { Platform, StyleSheet, TouchableOpacity, View } from 'react-native';\nimport React from 'react';\nimport { ScanInput, ScanOutput } from '@wavemaker/app-rn-runtime/variables/device/scan/scan.operation';\nimport { DisplayManager } from '@wavemaker/app-rn-runtime/core/display.manager';\nimport appDisplayManagerService from '@wavemaker/app-rn-runtime/runtime/services/app-display-manager.service';\n\ninterface objectMap {\n [key: string]: string\n}\n\nconst barcodeFormatOptions: objectMap = {\n 'ALL': 'ALL',\n 'CODABAR': 'codabar',\n 'CODE_39': 'code39',\n 'CODE_93': 'code93',\n 'CODE_128': 'code128',\n 'DATA_MATRIX': 'datamatrix',\n 'EAN_8': 'ean8',\n 'EAN_13': 'ean13',\n 'ITF': 'itf14',\n 'PDF_417': 'pdf417',\n 'QR_CODE': 'qr',\n 'RSS14': 'rss14',\n 'RSS_EXPANDED': 'rssexpanded',\n 'UPC_E': 'upc_e',\n 'UPC_A': 'upc_a'\n};\nconst opacity = 'rgba(0, 0, 0, 0.6)';\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n flexDirection: 'column'\n },\n closeWrapper: {\n flex: 1,\n justifyContent: 'flex-end',\n alignItems: 'center',\n paddingBottom: 32\n },\n topWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n centerWrapper: {\n flex: 2,\n flexDirection: 'row'\n },\n leftWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n focused: {\n flex: 10\n },\n rightWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n bottomWrapper: {\n flex: 2,\n backgroundColor: opacity\n },\n});\n\nconst BARCODE_TYPES = [\n 'aztec',\n 'ean13',\n 'ean8',\n 'qr',\n 'pdf417',\n 'upc_e',\n 'datamatrix',\n 'code39',\n 'code93',\n 'itf14',\n 'codabar',\n 'code128',\n 'upc_a',\n] as const;\n\n\nexport class ScanService {\n\n constructor(private displayManager: DisplayManager) {}\n\n getTestProps(suffix: string) {\n const id = \"scan\" + (suffix ? '_' + suffix : '');\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\n };\n }\n\n public scanBarcode(params: ScanInput): Promise<ScanOutput> {\n const format = params?.barcodeFormat || 'ALL';\n const barcodeFormat: string | undefined = Platform.OS === 'ios' ? undefined : barcodeFormatOptions[format];\n const CameraView = params?.scanPluginService?.CameraView;\n /**\n * 'ALL' means any barcode in WaveMaker; the camera SDK does not accept the string 'ALL' as a barcode type.\n * Omit scanner settings so the SDK scans every supported format.\n */\n const scannerBarcodeSettings =\n barcodeFormat && barcodeFormat !== 'ALL'\n ? { barcodeTypes: [barcodeFormat] as string[] }\n : undefined;\n return new Promise((resolve, reject) => {\n params?.permissionService?.requestPermissions && params.permissionService.requestPermissions('camera').then(() => {\n const destroy = this.displayManager.show({\n content: (<CameraView\n barcodeScannerSettings={scannerBarcodeSettings}\n onBarcodeScanned={(result: any) => {\n destroy.call(this.displayManager);\n resolve(result);\n }}\n style={StyleSheet.absoluteFillObject}\n >\n <View style={styles.topWrapper}>\n </View>\n <View style={styles.centerWrapper}>\n <View style={styles.leftWrapper}/>\n <View style={styles.focused}/>\n <View style={styles.rightWrapper}/>\n </View>\n <View style={styles.bottomWrapper}>\n \n <View style={styles.closeWrapper}>\n <TouchableOpacity\n {... this.getTestProps('close_button')}\n onPress={() => {\n destroy.call(this.displayManager);\n }}>\n <Ionicons name='close-circle' size={48} color='white' />\n </TouchableOpacity>\n </View>\n </View>\n </CameraView>)\n });\n }, reject)\n }).then((response: any) => {\n let format = '';\n if (response.type) {\n const index = BARCODE_TYPES.indexOf(response.type as (typeof BARCODE_TYPES)[number]);\n format = index > -1 ? String(index) : '';\n }\n return Promise.resolve({\n text: response.data,\n format : format || response.type,\n cancelled : false\n });\n });\n }\n}\nconst scanService = new ScanService(appDisplayManagerService);\nexport default scanService;"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,7 +7,6 @@ import { Dimensions, View } from "react-native";
|
|
|
7
7
|
import WmWebview from "@wavemaker/app-rn-runtime/components/advanced/webview/webview.component";
|
|
8
8
|
import injector from "@wavemaker/app-rn-runtime/core/injector";
|
|
9
9
|
import AppDisplayManagerService from "./app-display-manager.service";
|
|
10
|
-
import BrowserService from "./browser.service";
|
|
11
10
|
const windowWidth = Dimensions.get('window').width;
|
|
12
11
|
const windowHeight = Dimensions.get('window').height;
|
|
13
12
|
class WebProcessWebViewProps {
|
|
@@ -74,7 +73,7 @@ export class WebProcessService {
|
|
|
74
73
|
withCredentials: true
|
|
75
74
|
}).then(response => {
|
|
76
75
|
if (useSystemBrowser) {
|
|
77
|
-
return this.executeWithSystemBrowser(response.data
|
|
76
|
+
return this.executeWithSystemBrowser(response.data);
|
|
78
77
|
} else {
|
|
79
78
|
return this.executeWithInAppBrowser(response.data, process, incognito);
|
|
80
79
|
}
|
|
@@ -84,12 +83,8 @@ export class WebProcessService {
|
|
|
84
83
|
});
|
|
85
84
|
});
|
|
86
85
|
}
|
|
87
|
-
executeWithSystemBrowser(processInfo
|
|
88
|
-
|
|
89
|
-
const startUrl = this.baseUrl + '/services/webprocess/start?process=' + encodeURIComponent(processInfo);
|
|
90
|
-
// openAuthSession resolves with extractProcessOutput's decoded value, so it must be
|
|
91
|
-
// re-encoded here before being sent as encodedProcessdata.
|
|
92
|
-
return BrowserService.openAuthSession(startUrl, undefined, process).then(output => encodeURIComponent(output));
|
|
86
|
+
executeWithSystemBrowser(processInfo) {
|
|
87
|
+
return Promise.reject('Web Process in System browser is nor ready yet');
|
|
93
88
|
}
|
|
94
89
|
executeWithInAppBrowser(processInfo, process, incognito) {
|
|
95
90
|
return new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["axios","React","Component","Dimensions","View","WmWebview","injector","AppDisplayManagerService","
|
|
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":"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","ignoreList":[]}
|
|
@@ -4,10 +4,63 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { LinearGradient as ExpoLinearGradient } from 'expo-linear-gradient';
|
|
6
6
|
import { Image, StyleSheet, View } from 'react-native';
|
|
7
|
-
import { isEmpty, isNil, isNumber } from 'lodash-es';
|
|
7
|
+
import { isEmpty, isNil, isNumber, isString } from 'lodash-es';
|
|
8
8
|
import imageSizeEstimator from '@wavemaker/app-rn-runtime/core/imageSizeEstimator';
|
|
9
9
|
import { AssetConsumer } from '@wavemaker/app-rn-runtime/core/asset.provider';
|
|
10
10
|
import { isFullPathUrl } from '@wavemaker/app-rn-runtime/core/utils';
|
|
11
|
+
import { Blur, Canvas, Image as SkiaImage, useImage } from '@shopify/react-native-skia';
|
|
12
|
+
const RESIZE_MODE_TO_FIT = {
|
|
13
|
+
stretch: 'fill',
|
|
14
|
+
center: 'none',
|
|
15
|
+
contain: 'contain',
|
|
16
|
+
cover: 'cover',
|
|
17
|
+
repeat: 'cover'
|
|
18
|
+
};
|
|
19
|
+
const SkiaBackgroundImage = props => {
|
|
20
|
+
var _props$imageSrc;
|
|
21
|
+
const source = isString(props.imageSrc) || isNumber(props.imageSrc) ? props.imageSrc : (_props$imageSrc = props.imageSrc) === null || _props$imageSrc === void 0 ? void 0 : _props$imageSrc.uri;
|
|
22
|
+
const image = useImage(source);
|
|
23
|
+
const [layout, setLayout] = React.useState({
|
|
24
|
+
width: 0,
|
|
25
|
+
height: 0
|
|
26
|
+
});
|
|
27
|
+
if (!image) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const boxWidth = layout.width || props.minWidth || image.width();
|
|
31
|
+
const boxHeight = layout.height || props.minHeight || image.height();
|
|
32
|
+
const fit = RESIZE_MODE_TO_FIT[props.resizeMode || 'cover'] || 'cover';
|
|
33
|
+
const width = fit === 'none' ? image.width() : boxWidth;
|
|
34
|
+
const height = fit === 'none' ? image.height() : boxHeight;
|
|
35
|
+
const x = fit === 'none' ? (boxWidth - width) / 2 : 0;
|
|
36
|
+
const y = fit === 'none' ? (boxHeight - height) / 2 : 0;
|
|
37
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
38
|
+
style: {
|
|
39
|
+
width: '100%',
|
|
40
|
+
height: '100%'
|
|
41
|
+
},
|
|
42
|
+
onLayout: e => setLayout({
|
|
43
|
+
width: e.nativeEvent.layout.width,
|
|
44
|
+
height: e.nativeEvent.layout.height
|
|
45
|
+
})
|
|
46
|
+
}, /*#__PURE__*/React.createElement(Canvas, {
|
|
47
|
+
testID: "wm-skia-canvas",
|
|
48
|
+
style: {
|
|
49
|
+
width: '100%',
|
|
50
|
+
height: '100%'
|
|
51
|
+
}
|
|
52
|
+
}, /*#__PURE__*/React.createElement(SkiaImage, {
|
|
53
|
+
image: image,
|
|
54
|
+
x: x,
|
|
55
|
+
y: y,
|
|
56
|
+
width: width,
|
|
57
|
+
height: height,
|
|
58
|
+
fit: fit
|
|
59
|
+
}, /*#__PURE__*/React.createElement(Blur, {
|
|
60
|
+
blur: props.blur,
|
|
61
|
+
mode: "clamp"
|
|
62
|
+
}))));
|
|
63
|
+
};
|
|
11
64
|
const IMAGE_URL_REGEX = /url\(['|"]?(.+)['|"]?\)$/gi;
|
|
12
65
|
const LINEAT_GRADIENT_REGEX = /linear-gradient\((.+)\)$/gi;
|
|
13
66
|
const DIMENSION_REGEX = /([0-9%]+)[a-z]*/g;
|
|
@@ -284,7 +337,13 @@ export class BackgroundComponent extends React.Component {
|
|
|
284
337
|
position: 'absolute',
|
|
285
338
|
overflow: 'hidden'
|
|
286
339
|
}, psresult.position, isEmpty(psresult.size) ? StyleSheet.absoluteFill : psresult.size]
|
|
287
|
-
}, /*#__PURE__*/React.createElement(
|
|
340
|
+
}, this.state.imageSrc && this.props.blur ? /*#__PURE__*/React.createElement(SkiaBackgroundImage, {
|
|
341
|
+
imageSrc: this.state.imageSrc,
|
|
342
|
+
resizeMode: psresult.resizeMode || 'cover',
|
|
343
|
+
minWidth: this.state.naturalImageWidth,
|
|
344
|
+
minHeight: this.state.naturalImageHeight,
|
|
345
|
+
blur: this.props.blur
|
|
346
|
+
}) : /*#__PURE__*/React.createElement(Image, {
|
|
288
347
|
source: this.state.imageSrc,
|
|
289
348
|
resizeMode: psresult.resizeMode || 'cover',
|
|
290
349
|
style: [{
|
|
@@ -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","parseFloat","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 { DimensionValue, 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(parseFloat(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 as any}\n locations={this.state.locations as any}\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]) as DimensionValue;\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]) as DimensionValue;\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])) as DimensionValue;\n result.size.height = (size[2].endsWith('%') ? size[2] : parseInt(size[2])) as DimensionValue\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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","LinearGradient","ExpoLinearGradient","Image","StyleSheet","View","isEmpty","isNil","isNumber","isString","imageSizeEstimator","AssetConsumer","isFullPathUrl","Blur","Canvas","SkiaImage","useImage","RESIZE_MODE_TO_FIT","stretch","center","contain","cover","repeat","SkiaBackgroundImage","props","_props$imageSrc","source","imageSrc","uri","image","layout","setLayout","useState","width","height","boxWidth","minWidth","boxHeight","minHeight","fit","resizeMode","x","y","createElement","style","onLayout","e","nativeEvent","testID","blur","mode","IMAGE_URL_REGEX","LINEAT_GRADIENT_REGEX","DIMENSION_REGEX","BACKGROUND_POSITION_REGEX","BACKGROUND_SIZE_REGEX","ASSET_CACHE","Component","constructor","state","parse","val","value","splits","split","map","v","trim","angle","locations","endsWith","parseInt","shift","delta","Math","round","tan","PI","abs","end","start","colors","s","_s$matchAll$next","p","matchAll","next","push","parseFloat","replace","componentDidUpdate","prevProps","prevState","snapshot","setState","render","_this$props$size","_this$props$style","borderWidth","overflow","absoluteFill","middle","flexDirection","justifyContent","alignItems","size","position","borderRadius","children","BackgroundComponent","_defineProperty","undefined","caluculateSize","resolveAssetSource","naturalImageWidth","naturalImageHeight","getSize","getDimension","dim","getPosition","result","top","bottom","left","right","getPositionAndSize","_this$props$size2","_this$getGradient","getGradient","length","renderLinearGradient","data","psresult","Fragment","setImage","componentDidMount","setTimeout","_this$props$image","_source","startsWith","_this$props$image2","loadAsset","_this$props$image3","renderImage","_psresult$position","_psresult$position2","loadImage","_gradientData$value","gradientData"],"sources":["background.component.tsx"],"sourcesContent":["import * as React from 'react';\nimport { LinearGradient as ExpoLinearGradient, LinearGradientPoint } from 'expo-linear-gradient';\nimport { DimensionValue, 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';\nimport { Blur, Canvas, Image as SkiaImage, useImage } from '@shopify/react-native-skia';\n\ntype SkiaFit = 'cover' | 'contain' | 'fill' | 'none' | 'scaleDown';\nconst RESIZE_MODE_TO_FIT: { [key: string]: SkiaFit } = {\n stretch: 'fill',\n center: 'none',\n contain: 'contain',\n cover: 'cover',\n repeat: 'cover'\n};\n\nconst SkiaBackgroundImage = (props: {\n imageSrc: any;\n resizeMode?: string;\n minWidth?: number;\n minHeight?: number;\n blur: number;\n}) => {\n const source = isString(props.imageSrc) || isNumber(props.imageSrc)\n ? props.imageSrc : props.imageSrc?.uri;\n const image = useImage(source);\n const [layout, setLayout] = React.useState({ width: 0, height: 0 });\n if (!image) {\n return null;\n }\n const boxWidth = layout.width || props.minWidth || image.width();\n const boxHeight = layout.height || props.minHeight || image.height();\n const fit = RESIZE_MODE_TO_FIT[props.resizeMode || 'cover'] || 'cover';\n\n const width = fit === 'none' ? image.width() : boxWidth;\n const height = fit === 'none' ? image.height() : boxHeight;\n const x = fit === 'none' ? (boxWidth - width) / 2 : 0;\n const y = fit === 'none' ? (boxHeight - height) / 2 : 0;\n\n return (\n <View\n style={{ width: '100%', height: '100%' }}\n onLayout={(e) => setLayout({\n width: e.nativeEvent.layout.width,\n height: e.nativeEvent.layout.height\n })}>\n <Canvas testID=\"wm-skia-canvas\" style={{ width: '100%', height: '100%' }}>\n <SkiaImage image={image} x={x} y={y} width={width} height={height} fit={fit}>\n <Blur blur={props.blur} mode=\"clamp\" />\n </SkiaImage>\n </Canvas>\n </View>\n );\n};\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(parseFloat(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 as any}\n locations={this.state.locations as any}\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 blur?: number;\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]) as DimensionValue;\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]) as DimensionValue;\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])) as DimensionValue;\n result.size.height = (size[2].endsWith('%') ? size[2] : parseInt(size[2])) as DimensionValue\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 {this.state.imageSrc && this.props.blur ? (\n <SkiaBackgroundImage\n imageSrc={this.state.imageSrc}\n resizeMode={psresult.resizeMode as any || 'cover'}\n minWidth={this.state.naturalImageWidth}\n minHeight={this.state.naturalImageHeight}\n blur={this.props.blur}\n />\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 )}\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,6 +38,10 @@ const STYLE_PROP_TYPE_INFO = {
|
|
|
38
38
|
isValid: isString,
|
|
39
39
|
ref: 'http://www.wavemakeronline.com/app-runtime/latest/rn/style-docs/widgets/view'
|
|
40
40
|
},
|
|
41
|
+
backdropFilter: {
|
|
42
|
+
isValid: isString,
|
|
43
|
+
ref: 'http://www.wavemakeronline.com/app-runtime/latest/rn/style-docs/widgets/view'
|
|
44
|
+
},
|
|
41
45
|
borderBottomColor: {
|
|
42
46
|
isValid: isColor,
|
|
43
47
|
ref: 'https://reactnative.dev/docs/view-style-props#borderbottomcolor'
|