{"version":3,"file":"webViewBridge.js","mappings":"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","sources":["webpack://pizza-hut/./src/typings/web-bridge.types.ts","webpack://pizza-hut/./src/web-view-bridge/web-bridge-implementations/web-bridge-android.ts","webpack://pizza-hut/./src/web-view-bridge/web-bridge-implementations/web-bridge-ios.ts","webpack://pizza-hut/./src/web-view-bridge/index.ts"],"sourcesContent":["export enum LocalizationRequestErrorType {\r\n ERROR = 'Error',\r\n LOCALIZATION_DISABLED = 'LocalizationDisabled',\r\n}\r\n\r\nexport type LocationRequestSuccessCallback = (latitude: number, longitude: number) => void;\r\nexport type LocationRequestErrorCallback = (errorType: LocalizationRequestErrorType) => void;\r\n\r\nexport enum PushNotificationsProvider {\r\n FIREBASE = 0,\r\n HMS = 1,\r\n}\r\n","/* eslint-disable class-methods-use-this */\r\nimport { WebViewBridge } from 'WebBridgeModule';\r\nimport { LocalizationRequestErrorType, \r\n LocationRequestSuccessCallback, \r\n LocationRequestErrorCallback, \r\n PushNotificationsProvider } from 'typings/web-bridge.types';\r\n\r\nenum LoginProvider {\r\n // eslint-disable-next-line no-unused-vars\r\n EMAIL = 1,\r\n}\r\n\r\nexport default class WebBridgeAndroid implements WebViewBridge {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private android: any;\r\n private loginProvider: LoginProvider = LoginProvider.EMAIL;\r\n private static locationRequestSuccessCallback?: LocationRequestSuccessCallback;\r\n private static locationRequestErrorCallback?: LocationRequestErrorCallback;\r\n\r\n constructor() {\r\n if (!window.S4DMessageHandler) {\r\n throw Error('Android not found!');\r\n }\r\n this.android = window.S4DMessageHandler;\r\n this.userLoggedIn = this.userLoggedIn.bind(this);\r\n this.userLoggedOut = this.userLoggedOut.bind(this);\r\n this.storeDeviceTokens = this.storeDeviceTokens.bind(this);\r\n this.paymentRedirectScheme = this.paymentRedirectScheme.bind(this);\r\n this.requestLocation = this.requestLocation.bind(this);\r\n this.userLocation = this.userLocation.bind(this);\r\n this.userLocationFailed = this.userLocationFailed.bind(this);\r\n this.setBackgroundColor = this.setBackgroundColor.bind(this);\r\n this.showLoader = this.showLoader.bind(this);\r\n this.hideLoader = this.hideLoader.bind(this);\r\n this.openExternalUrl = this.openExternalUrl.bind(this);\r\n }\r\n\r\n showLoader(): void {\r\n this.android.showLoader();\r\n }\r\n\r\n hideLoader(): void {\r\n this.android.hideLoader();\r\n }\r\n\r\n userLoggedIn(): void {\r\n this.android.userLoggedIn();\r\n }\r\n\r\n userLoggedOut(): void {\r\n this.android.userLoggedOut(this.loginProvider);\r\n }\r\n\r\n storeDeviceTokens(installationId: string, deviceId: string): void {\r\n const provider = PushNotificationsProvider.FIREBASE;\r\n const deviceTokens = JSON.stringify({ installationId, deviceId, provider });\r\n localStorage.setItem('deviceTokens', deviceTokens);\r\n }\r\n\r\n storeHMSDeviceTokens(installationId: string, deviceId: string): void {\r\n const provider = PushNotificationsProvider.HMS;\r\n const deviceTokens = JSON.stringify({ installationId, deviceId, provider });\r\n localStorage.setItem('deviceTokens', deviceTokens);\r\n }\r\n\r\n // TODO implement proper handling for external payment providers\r\n paymentRedirectScheme(name: string) {}\r\n\r\n requestLocation(successCallback: LocationRequestSuccessCallback, errCallback: LocationRequestErrorCallback): void {\r\n WebBridgeAndroid.locationRequestSuccessCallback = successCallback;\r\n WebBridgeAndroid.locationRequestErrorCallback = errCallback;\r\n\r\n this.android.requestLocation();\r\n }\r\n\r\n userLocation(latitude: number, longitude: number): void {\r\n if (WebBridgeAndroid.locationRequestSuccessCallback) {\r\n WebBridgeAndroid.locationRequestSuccessCallback(latitude, longitude);\r\n }\r\n\r\n WebBridgeAndroid.locationRequestSuccessCallback = undefined;\r\n WebBridgeAndroid.locationRequestErrorCallback = undefined;\r\n }\r\n\r\n userLocationFailed(localizationDisabled?: boolean): void {\r\n if (WebBridgeAndroid.locationRequestErrorCallback) {\r\n const error = localizationDisabled\r\n ? LocalizationRequestErrorType.LOCALIZATION_DISABLED\r\n : LocalizationRequestErrorType.ERROR;\r\n\r\n WebBridgeAndroid.locationRequestErrorCallback(error);\r\n }\r\n\r\n WebBridgeAndroid.locationRequestSuccessCallback = undefined;\r\n WebBridgeAndroid.locationRequestErrorCallback = undefined;\r\n }\r\n\r\n setBackgroundColor(backgroundColor: string, mode: number): void {\r\n this.android.setBackgroundColor(backgroundColor, mode);\r\n }\r\n\r\n openExternalUrl(url: string): void {\r\n this.android.openExternalUrl(url);\r\n }\r\n\r\n openAppReview(): void {\r\n this.android.openAppReview();\r\n }\r\n}\r\n","/* eslint-disable no-unused-vars */\r\n/* eslint-disable class-methods-use-this */\r\nimport { WebViewBridge, Webkit } from 'WebBridgeModule';\r\nimport { LocalizationRequestErrorType, \r\n LocationRequestSuccessCallback, \r\n LocationRequestErrorCallback, \r\n PushNotificationsProvider } from 'typings/web-bridge.types';\r\n\r\n// eslint-disable-next-line no-shadow\r\nenum LoginProvider {\r\n EMAIL = 1,\r\n}\r\n\r\nexport default class WebBridgeiOS implements WebViewBridge {\r\n private webkit: Webkit;\r\n private loginProvider: LoginProvider = LoginProvider.EMAIL;\r\n private static locationRequestSuccessCallback?: LocationRequestSuccessCallback;\r\n private static locationRequestErrorCallback?: LocationRequestErrorCallback;\r\n\r\n constructor() {\r\n if (!window.webkit) {\r\n throw Error('Webkit not found!');\r\n }\r\n this.webkit = window.webkit;\r\n this.userLoggedIn = this.userLoggedIn.bind(this);\r\n this.userLoggedOut = this.userLoggedOut.bind(this);\r\n this.storeDeviceTokens = this.storeDeviceTokens.bind(this);\r\n this.paymentRedirectScheme = this.paymentRedirectScheme.bind(this);\r\n this.requestLocation = this.requestLocation.bind(this);\r\n this.userLocation = this.userLocation.bind(this);\r\n this.userLocationFailed = this.userLocationFailed.bind(this);\r\n this.setBackgroundColor = this.setBackgroundColor.bind(this);\r\n this.showLoader = this.showLoader.bind(this);\r\n this.hideLoader = this.hideLoader.bind(this);\r\n this.openExternalUrl = this.openExternalUrl.bind(this);\r\n }\r\n\r\n showLoader(): void {\r\n this.webkit.messageHandlers.S4DMessageHandler.postMessage({\r\n function: 'showLoader',\r\n });\r\n }\r\n\r\n hideLoader(): void {\r\n this.webkit.messageHandlers.S4DMessageHandler.postMessage({\r\n function: 'hideLoader',\r\n });\r\n }\r\n\r\n userLoggedIn(): void {\r\n this.webkit.messageHandlers.S4DMessageHandler.postMessage({\r\n function: 'userLoggedIn',\r\n });\r\n }\r\n\r\n userLoggedOut(): void {\r\n this.webkit.messageHandlers.S4DMessageHandler.postMessage({\r\n function: 'userLoggedOut',\r\n params: { provider: this.loginProvider },\r\n });\r\n }\r\n\r\n storeDeviceTokens(installationId: string, deviceId: string): void {\r\n const provider = PushNotificationsProvider.FIREBASE;\r\n const deviceTokens = JSON.stringify({ installationId, deviceId, provider });\r\n localStorage.setItem('deviceTokens', deviceTokens);\r\n }\r\n\r\n storeHMSDeviceTokens(installationId: string, deviceId: string): void {\r\n const provider = PushNotificationsProvider.HMS;\r\n const deviceTokens = JSON.stringify({ installationId, deviceId, provider });\r\n localStorage.setItem('deviceTokens', deviceTokens);\r\n }\r\n\r\n // TODO implement proper handling for external payment providers\r\n paymentRedirectScheme(name: string) {}\r\n\r\n requestLocation(succesCallback: LocationRequestSuccessCallback, errCallback: LocationRequestErrorCallback): void {\r\n WebBridgeiOS.locationRequestSuccessCallback = succesCallback;\r\n WebBridgeiOS.locationRequestErrorCallback = errCallback;\r\n\r\n this.webkit.messageHandlers.S4DMessageHandler.postMessage({\r\n function: 'requestLocation',\r\n });\r\n }\r\n\r\n userLocation(latitude: number, longitude: number): void {\r\n if (WebBridgeiOS.locationRequestSuccessCallback) {\r\n WebBridgeiOS.locationRequestSuccessCallback(latitude, longitude);\r\n }\r\n\r\n WebBridgeiOS.locationRequestSuccessCallback = undefined;\r\n WebBridgeiOS.locationRequestErrorCallback = undefined;\r\n }\r\n\r\n userLocationFailed(localizationDisabled?: boolean): void {\r\n if (WebBridgeiOS.locationRequestErrorCallback) {\r\n const error = localizationDisabled\r\n ? LocalizationRequestErrorType.LOCALIZATION_DISABLED\r\n : LocalizationRequestErrorType.ERROR;\r\n\r\n WebBridgeiOS.locationRequestErrorCallback(error);\r\n }\r\n\r\n WebBridgeiOS.locationRequestSuccessCallback = undefined;\r\n WebBridgeiOS.locationRequestErrorCallback = undefined;\r\n }\r\n\r\n setBackgroundColor(backgroundColor: string, mode: number): void {\r\n this.webkit.messageHandlers.S4DMessageHandler.postMessage({\r\n function: 'setBackgroundColor',\r\n params: { backgroundColor, mode },\r\n });\r\n }\r\n\r\n openExternalUrl(url: string): void {\r\n this.webkit.messageHandlers.S4DMessageHandler.postMessage({\r\n function: 'openExternalUrl',\r\n params: { url },\r\n });\r\n }\r\n\r\n openAppReview(): void {\r\n this.webkit.messageHandlers.S4DMessageHandler.postMessage({\r\n function: 'openAppReview',\r\n });\r\n }\r\n}\r\n","/* eslint-disable class-methods-use-this */\r\nimport { WebViewBridge } from 'WebBridgeModule';\r\nimport Android from './web-bridge-implementations/web-bridge-android';\r\nimport IOS from './web-bridge-implementations/web-bridge-ios';\r\n\r\nlet instance: WebViewBridge | null = null;\r\n\r\n// eslint-disable-next-line react/function-component-definition\r\nwindow.S4DWebBridge = (): WebViewBridge | null => {\r\n if (instance) return instance;\r\n\r\n if (window.webkit?.messageHandlers?.S4DMessageHandler) {\r\n instance = new IOS();\r\n }\r\n if (window.S4DMessageHandler && 'storeUserData' in window.S4DMessageHandler) {\r\n instance = new Android();\r\n }\r\n\r\n return instance;\r\n};\r\n"],"names":["LocalizationRequestErrorType","PushNotificationsProvider","LoginProvider","loginProvider","EMAIL","window","S4DMessageHandler","Error","this","android","userLoggedIn","bind","userLoggedOut","storeDeviceTokens","paymentRedirectScheme","requestLocation","userLocation","userLocationFailed","setBackgroundColor","showLoader","hideLoader","openExternalUrl","installationId","deviceId","provider","FIREBASE","deviceTokens","JSON","stringify","localStorage","setItem","storeHMSDeviceTokens","HMS","name","successCallback","errCallback","WebBridgeAndroid","locationRequestSuccessCallback","locationRequestErrorCallback","latitude","longitude","undefined","localizationDisabled","error","LOCALIZATION_DISABLED","ERROR","backgroundColor","mode","url","openAppReview","webkit","messageHandlers","postMessage","function","params","succesCallback","WebBridgeiOS","instance","S4DWebBridge"],"sourceRoot":""}