react-native-unit-components 1.7.1 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +2 -1
  2. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  3. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +2 -1
  4. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
  5. package/lib/commonjs/helpers/pushProvisioningService/hooks/useCardWallet.js.map +1 -1
  6. package/lib/commonjs/scripts/html/fontFaces.js +56 -0
  7. package/lib/commonjs/scripts/html/fontFaces.js.map +1 -0
  8. package/lib/commonjs/styles/fonts.js +71 -0
  9. package/lib/commonjs/styles/fonts.js.map +1 -0
  10. package/lib/commonjs/types/shared/fonts.types.js +20 -0
  11. package/lib/commonjs/types/shared/fonts.types.js.map +1 -0
  12. package/lib/commonjs/types/shared/index.js +22 -0
  13. package/lib/commonjs/types/shared/index.js.map +1 -1
  14. package/lib/commonjs/unitSdkManager/UnitSdkManager.js +6 -1
  15. package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -1
  16. package/lib/commonjs/webComponent/WebComponent.js +4 -1
  17. package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
  18. package/lib/commonjs/webComponent/html.js +11 -2
  19. package/lib/commonjs/webComponent/html.js.map +1 -1
  20. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +2 -1
  21. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  22. package/lib/module/components/UNCardComponent/UNCardComponent.js +2 -1
  23. package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
  24. package/lib/module/helpers/pushProvisioningService/hooks/useCardWallet.js.map +1 -1
  25. package/lib/module/scripts/html/fontFaces.js +49 -0
  26. package/lib/module/scripts/html/fontFaces.js.map +1 -0
  27. package/lib/module/styles/fonts.js +64 -0
  28. package/lib/module/styles/fonts.js.map +1 -0
  29. package/lib/module/types/shared/fonts.types.js +13 -0
  30. package/lib/module/types/shared/fonts.types.js.map +1 -0
  31. package/lib/module/types/shared/index.js +2 -0
  32. package/lib/module/types/shared/index.js.map +1 -1
  33. package/lib/module/unitSdkManager/UnitSdkManager.js +6 -1
  34. package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -1
  35. package/lib/module/webComponent/WebComponent.js +4 -1
  36. package/lib/module/webComponent/WebComponent.js.map +1 -1
  37. package/lib/module/webComponent/html.js +11 -2
  38. package/lib/module/webComponent/html.js.map +1 -1
  39. package/lib/typescript/scripts/html/fontFaces.d.ts +2 -0
  40. package/lib/typescript/styles/fonts.d.ts +1 -0
  41. package/lib/typescript/types/shared/fonts.types.d.ts +23 -0
  42. package/lib/typescript/types/shared/index.d.ts +2 -0
  43. package/lib/typescript/unitSdkManager/UnitSdkManager.d.ts +4 -1
  44. package/lib/typescript/webComponent/html.d.ts +1 -0
  45. package/package.json +1 -20
  46. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +2 -1
  47. package/src/components/UNCardComponent/UNCardComponent.tsx +1 -1
  48. package/src/helpers/pushProvisioningService/hooks/useCardWallet.ts +2 -2
  49. package/src/scripts/html/fontFaces.ts +56 -0
  50. package/src/styles/fonts.ts +70 -0
  51. package/src/types/shared/fonts.types.ts +28 -0
  52. package/src/types/shared/index.ts +2 -0
  53. package/src/unitSdkManager/UnitSdkManager.ts +9 -1
  54. package/src/webComponent/WebComponent.tsx +6 -1
  55. package/src/webComponent/html.ts +11 -2
  56. package/android/src/main/res/drawable/ic_launcher_background.xml +0 -170
  57. package/android/src/main/res/drawable/un_ic_launcher_foreground.xml +0 -30
  58. package/android/src/main/res/drawable-v24/ic_launcher_background.xml +0 -170
  59. package/android/src/main/res/drawable-v24/un_ic_launcher_foreground.xml +0 -30
  60. package/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -5
  61. package/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
  62. package/android/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
  63. package/android/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
  64. package/android/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
  65. package/android/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
  66. package/android/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
  67. package/android/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
  68. package/android/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
  69. package/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
  70. package/android/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
  71. package/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_EventBus","_interopRequireDefault","_html","_unitMessages","_listenerToBus","_bodyHtml","_UnitSdk","_UnitSdkManager","_sdkMessage","_WebComponent","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UNAppInfo","NativeModules","WebComponent","React","forwardRef","props","webRef","unitScript","setUnitScript","useState","globalUnitScript","sourceHtml","setSourceHtml","componentCurrentTheme","setComponentCurrentTheme","theme","UnitSDK","getTheme","componentCurrentLanguage","setComponentCurrentLanguage","language","getLanguage","baseName","setBaseName","updateUnitScript","data","updateInitializedParams","useListenerToBus","busEventKey","SDKMessage","IS_SCRIPT_FETCHED","action","IS_SDK_INITIALIZED","useEffect","getAppName","Platform","OS","name","getBundleName","replace","error","console","fetchUnitScript","themeParam","languageParam","componentParams","params","newHtml","html","HTML_PLACEHOLDER","BODY","getHtmlBody","type","valueOf","presentationMode","SCRIPT_FROM_NATIVE","script","WINDOW_PARAMS","windowParams","onMessage","e","message","JSON","parse","nativeEvent","UnitMessage","UNIT_REQUEST_REFRESH","details","EventBus","Instance","event","UNIT_REQUEST_DOWNLOAD","handleRequestDownload","UNIT_REQUEST_CLOSE_FLOW","_onScroll","handleScroll","createElement","WebView","ref","originWhitelist","mediaPlaybackRequiresUserAction","allowsInlineMediaPlayback","cacheEnabled","scrollEnabled","isScrollable","nestedScrollEnabled","onScroll","overScrollMode","injectedJavaScript","style","width","flex","opacity","backgroundColor","source","baseUrl","androidHardwareAccelerationDisabled","exports"],"sources":["WebComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useState } from 'react';\nimport { NativeModules, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport EventBus from '../helpers/EventBus';\nimport html, { HTML_PLACEHOLDER } from './html';\nimport { RequestRefreshEvent, UnitMessage, RequestDownloadEvent } from '../messages/webMessages/unitMessages';\nimport { useListenerToBus } from '../hooks/listenerToBus';\nimport { getHtmlBody } from '../scripts/html/bodyHtml';\nimport { fetchUnitScript, globalUnitScript } from '../unitSdkManager/UnitSdk.api';\nimport { UnitSDK } from '../unitSdkManager/UnitSdkManager';\nimport type { WebViewMessage } from '../messages/webMessages';\nimport { SDKMessage, SdkScriptFetched } from '../messages/nativeMessages/sdkMessage';\nimport { handleRequestDownload } from './WebComponent.utils';\nimport type { PresentationMode, WebComponentType } from '../types/internal/webComponent.types';\n\nconst { UNAppInfo } = NativeModules;\n\nexport interface WebComponentProps {\n type: WebComponentType;\n presentationMode?: PresentationMode,\n params?: string;\n theme?: string;\n language?: string;\n onMessage?: (message: WebViewMessage) => void;\n script?: string;\n isScrollable?: boolean,\n nestedScrollEnabled?: boolean,\n handleScroll?: (event: any) => void,\n windowParams?: string;\n}\n\nexport const WebComponent = React.forwardRef<WebView, WebComponentProps>(function WebComponent(props, webRef) {\n const [unitScript, setUnitScript] = useState<string | undefined>(globalUnitScript);\n const [sourceHtml, setSourceHtml] = useState<string | null>(null);\n const [componentCurrentTheme, setComponentCurrentTheme] = useState<string | undefined>(props.theme ?? UnitSDK.getTheme());\n const [componentCurrentLanguage, setComponentCurrentLanguage] = useState<string | undefined>(props.language ?? UnitSDK.getLanguage());\n const [baseName, setBaseName] = useState<string>();\n\n const updateUnitScript = (data: SdkScriptFetched) => {\n setUnitScript(data.unitScript);\n };\n\n const updateInitializedParams = () => {\n setComponentCurrentTheme(props.theme ?? UnitSDK.getTheme());\n setComponentCurrentLanguage(props.language ?? UnitSDK.getLanguage());\n };\n\n useListenerToBus({ busEventKey: SDKMessage.IS_SCRIPT_FETCHED, action: updateUnitScript });\n useListenerToBus({ busEventKey: SDKMessage.IS_SDK_INITIALIZED, action: updateInitializedParams });\n\n useEffect(() => {\n\n const getAppName = async () => {\n // For iOS, we extend the app name from the HTML to display a prettier access request message.\n // On Android, there is no request message sent from HTML.\n try {\n if (Platform.OS == 'ios') {\n const name = await UNAppInfo.getBundleName();\n setBaseName(name.replace(/ /g, '-'));\n } else { // android\n setBaseName('unit');\n }\n } catch (error: any) {\n console.error(error);\n }\n };\n\n getAppName();\n }, []);\n\n useEffect(() => {\n if (!unitScript) {\n fetchUnitScript();\n return;\n }\n\n const themeParam = componentCurrentTheme ? ` theme=\"${componentCurrentTheme}\"` : '';\n const languageParam = componentCurrentLanguage ? ` language=\"${componentCurrentLanguage}\"` : '';\n\n const componentParams = (props.params || '') + themeParam + languageParam;\n let newHtml = html.replace(HTML_PLACEHOLDER.BODY, getHtmlBody(props.type.valueOf(), componentParams, props.presentationMode));\n newHtml = newHtml.replace(HTML_PLACEHOLDER.SCRIPT_FROM_NATIVE, props.script || '');\n newHtml = newHtml.replace(HTML_PLACEHOLDER.WINDOW_PARAMS, props.windowParams || '');\n setSourceHtml(newHtml);\n }, [props.params, unitScript, props.presentationMode, componentCurrentTheme, componentCurrentLanguage, props.script, props.windowParams]);\n\n const onMessage = (e: WebViewMessageEvent) => {\n const message = JSON.parse(e.nativeEvent.data) as WebViewMessage;\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_REFRESH:\n message.details &&\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_REFRESH, message.details as RequestRefreshEvent);\n break;\n case UnitMessage.UNIT_REQUEST_DOWNLOAD:\n message.details &&\n handleRequestDownload(message.details as RequestDownloadEvent, () => {\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_CLOSE_FLOW, {});\n });\n break;\n default:\n props.onMessage && props.onMessage(message);\n }\n };\n\n if (!sourceHtml) return null;\n\n const _onScroll = (event: any) => {\n if (props.handleScroll) {\n props.handleScroll(event);\n }\n\n return null;\n };\n\n if (!baseName) {\n return null;\n }\n\n return (\n <WebView\n ref={webRef}\n originWhitelist={['*']}\n mediaPlaybackRequiresUserAction={false}\n allowsInlineMediaPlayback={true}\n cacheEnabled={false}\n scrollEnabled={props.isScrollable}\n nestedScrollEnabled={props.nestedScrollEnabled}\n onScroll={_onScroll}\n overScrollMode=\"never\"\n injectedJavaScript={unitScript}\n style={{ width: '100%', flex: 1, opacity: 0.99, backgroundColor: 'transparent' }}\n source={{ html: sourceHtml, baseUrl: `https://${baseName}` }}\n onMessage={onMessage}\n androidHardwareAccelerationDisabled\n />\n );\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeWebview","_EventBus","_interopRequireDefault","_html","_unitMessages","_listenerToBus","_bodyHtml","_UnitSdk","_UnitSdkManager","_sdkMessage","_WebComponent","_fontFaces","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","UNAppInfo","NativeModules","WebComponent","React","forwardRef","props","webRef","unitScript","setUnitScript","useState","globalUnitScript","sourceHtml","setSourceHtml","componentCurrentTheme","setComponentCurrentTheme","theme","UnitSDK","getTheme","componentCurrentLanguage","setComponentCurrentLanguage","language","getLanguage","baseName","setBaseName","updateUnitScript","data","updateInitializedParams","useListenerToBus","busEventKey","SDKMessage","IS_SCRIPT_FETCHED","action","IS_SDK_INITIALIZED","useEffect","getAppName","Platform","OS","name","getBundleName","replace","error","console","fetchUnitScript","themeParam","languageParam","componentParams","params","fontFaces","getFontFacesString","getFonts","newHtml","html","HTML_PLACEHOLDER","BODY","getHtmlBody","type","valueOf","presentationMode","FONT_FACES","SCRIPT_FROM_NATIVE","script","WINDOW_PARAMS","windowParams","onMessage","e","message","JSON","parse","nativeEvent","UnitMessage","UNIT_REQUEST_REFRESH","details","EventBus","Instance","event","UNIT_REQUEST_DOWNLOAD","handleRequestDownload","UNIT_REQUEST_CLOSE_FLOW","_onScroll","handleScroll","createElement","WebView","ref","originWhitelist","mediaPlaybackRequiresUserAction","allowsInlineMediaPlayback","cacheEnabled","scrollEnabled","isScrollable","nestedScrollEnabled","onScroll","overScrollMode","injectedJavaScript","style","width","flex","opacity","backgroundColor","source","baseUrl","androidHardwareAccelerationDisabled","exports"],"sources":["WebComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useState } from 'react';\nimport { NativeModules, Platform } from 'react-native';\nimport { WebView, WebViewMessageEvent } from 'react-native-webview';\nimport EventBus from '../helpers/EventBus';\nimport html, { HTML_PLACEHOLDER } from './html';\nimport { RequestRefreshEvent, UnitMessage, RequestDownloadEvent } from '../messages/webMessages/unitMessages';\nimport { useListenerToBus } from '../hooks/listenerToBus';\nimport { getHtmlBody } from '../scripts/html/bodyHtml';\nimport { fetchUnitScript, globalUnitScript } from '../unitSdkManager/UnitSdk.api';\nimport { UnitSDK } from '../unitSdkManager/UnitSdkManager';\nimport type { WebViewMessage } from '../messages/webMessages';\nimport { SDKMessage, SdkScriptFetched } from '../messages/nativeMessages/sdkMessage';\nimport { handleRequestDownload } from './WebComponent.utils';\nimport type { PresentationMode, WebComponentType } from '../types/internal/webComponent.types';\nimport { getFontFacesString } from '../scripts/html/fontFaces';\n\nconst { UNAppInfo } = NativeModules;\n\nexport interface WebComponentProps {\n type: WebComponentType;\n presentationMode?: PresentationMode,\n params?: string;\n theme?: string;\n language?: string;\n onMessage?: (message: WebViewMessage) => void;\n script?: string;\n isScrollable?: boolean,\n nestedScrollEnabled?: boolean,\n handleScroll?: (event: any) => void,\n windowParams?: string;\n}\n\nexport const WebComponent = React.forwardRef<WebView, WebComponentProps>(function WebComponent(props, webRef) {\n const [unitScript, setUnitScript] = useState<string | undefined>(globalUnitScript);\n const [sourceHtml, setSourceHtml] = useState<string | null>(null);\n const [componentCurrentTheme, setComponentCurrentTheme] = useState<string | undefined>(props.theme ?? UnitSDK.getTheme());\n const [componentCurrentLanguage, setComponentCurrentLanguage] = useState<string | undefined>(props.language ?? UnitSDK.getLanguage());\n const [baseName, setBaseName] = useState<string>();\n\n const updateUnitScript = (data: SdkScriptFetched) => {\n setUnitScript(data.unitScript);\n };\n\n const updateInitializedParams = () => {\n setComponentCurrentTheme(props.theme ?? UnitSDK.getTheme());\n setComponentCurrentLanguage(props.language ?? UnitSDK.getLanguage());\n };\n\n useListenerToBus({ busEventKey: SDKMessage.IS_SCRIPT_FETCHED, action: updateUnitScript });\n useListenerToBus({ busEventKey: SDKMessage.IS_SDK_INITIALIZED, action: updateInitializedParams });\n\n useEffect(() => {\n\n const getAppName = async () => {\n // For iOS, we extend the app name from the HTML to display a prettier access request message.\n // On Android, there is no request message sent from HTML.\n try {\n if (Platform.OS == 'ios') {\n const name = await UNAppInfo.getBundleName();\n setBaseName(name.replace(/ /g, '-'));\n } else { // android\n setBaseName('unit');\n }\n } catch (error: any) {\n console.error(error);\n }\n };\n\n getAppName();\n }, []);\n\n useEffect(() => {\n if (!unitScript) {\n fetchUnitScript();\n return;\n }\n\n const themeParam = componentCurrentTheme ? ` theme=\"${componentCurrentTheme}\"` : '';\n const languageParam = componentCurrentLanguage ? ` language=\"${componentCurrentLanguage}\"` : '';\n\n const componentParams = (props.params || '') + themeParam + languageParam;\n\n const fontFaces = getFontFacesString(UnitSDK.getFonts());\n\n let newHtml = html.replace(HTML_PLACEHOLDER.BODY, getHtmlBody(props.type.valueOf(), componentParams, props.presentationMode));\n newHtml = newHtml.replace(HTML_PLACEHOLDER.FONT_FACES, fontFaces);\n newHtml = newHtml.replace(HTML_PLACEHOLDER.SCRIPT_FROM_NATIVE, props.script || '');\n newHtml = newHtml.replace(HTML_PLACEHOLDER.WINDOW_PARAMS, props.windowParams || '');\n setSourceHtml(newHtml);\n }, [props.params, unitScript, props.presentationMode, componentCurrentTheme, componentCurrentLanguage, props.script, props.windowParams]);\n\n const onMessage = (e: WebViewMessageEvent) => {\n const message = JSON.parse(e.nativeEvent.data) as WebViewMessage;\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_REFRESH:\n message.details &&\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_REFRESH, message.details as RequestRefreshEvent);\n break;\n case UnitMessage.UNIT_REQUEST_DOWNLOAD:\n message.details &&\n handleRequestDownload(message.details as RequestDownloadEvent, () => {\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_CLOSE_FLOW, {});\n });\n break;\n default:\n props.onMessage && props.onMessage(message);\n }\n };\n\n if (!sourceHtml) return null;\n\n const _onScroll = (event: any) => {\n if (props.handleScroll) {\n props.handleScroll(event);\n }\n\n return null;\n };\n\n if (!baseName) {\n return null;\n }\n\n return (\n <WebView\n ref={webRef}\n originWhitelist={['*']}\n mediaPlaybackRequiresUserAction={false}\n allowsInlineMediaPlayback={true}\n cacheEnabled={false}\n scrollEnabled={props.isScrollable}\n nestedScrollEnabled={props.nestedScrollEnabled}\n onScroll={_onScroll}\n overScrollMode=\"never\"\n injectedJavaScript={unitScript}\n style={{ width: '100%', flex: 1, opacity: 0.99, backgroundColor: 'transparent' }}\n source={{ html: sourceHtml, baseUrl: Platform.OS === 'android' ? `https://${baseName}` : ''}}\n onMessage={onMessage}\n androidHardwareAccelerationDisabled\n />\n );\n});\n"],"mappings":"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"}
@@ -10,7 +10,8 @@ const HTML_PLACEHOLDER = {
10
10
  SCRIPT_UNIT: '<SCRIPT_UNIT>',
11
11
  BODY: '<BODY_HTML_CODE>',
12
12
  SCRIPT_FROM_NATIVE: '<SCRIPT_FROM_NATIVE>',
13
- WINDOW_PARAMS: '<WINDOW_PARAMS>'
13
+ WINDOW_PARAMS: '<WINDOW_PARAMS>',
14
+ FONT_FACES: '<FONT_FACES>'
14
15
  };
15
16
  exports.HTML_PLACEHOLDER = HTML_PLACEHOLDER;
16
17
  const htmlText = `
@@ -28,9 +29,17 @@ const htmlText = `
28
29
  ${HTML_PLACEHOLDER.WINDOW_PARAMS}
29
30
  </script>
30
31
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
32
+
33
+ <style type="text/css">
34
+ ${HTML_PLACEHOLDER.FONT_FACES}
35
+
36
+ body {
37
+ margin: 0;
38
+ }
39
+ </style>
31
40
  </head>
32
41
 
33
- <body style="margin: 0;">
42
+ <body>
34
43
  ${HTML_PLACEHOLDER.BODY}
35
44
 
36
45
  <script>
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_bodyScript","HTML_PLACEHOLDER","SCRIPT_UNIT","BODY","SCRIPT_FROM_NATIVE","WINDOW_PARAMS","exports","htmlText","Platform","OS","POST_MESSAGE_TO_SDK","POST_PAGE_HEIGHT","LISTENERS","isPageLoaded","onLoad","unitRequestDownload","requestRendering","requestOpenLink","requestCloseFlow","cardActivated","cardStatusChange","unitRequestExternalSdk","unitAccountChanged","unitActivityFiltersChanged","DISPATCH_RENDERING_EVENT","DISPATCH_OPEN_ACTIONS_MENU","DISPATCH_REQUEST_CARD_ACTION","DISPATCH_ACTIVITY_FILTER_CHANGED_EVENT","DISPATCH_REQUEST_ACCOUNT_ACTION","_default","default"],"sources":["html.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport { DISPATCH_RENDERING_EVENT, LISTENERS, POST_MESSAGE_TO_SDK, POST_PAGE_HEIGHT, DISPATCH_REQUEST_CARD_ACTION, DISPATCH_OPEN_ACTIONS_MENU, DISPATCH_REQUEST_ACCOUNT_ACTION, DISPATCH_ACTIVITY_FILTER_CHANGED_EVENT } from '../scripts/html/bodyScript';\n\nexport const HTML_PLACEHOLDER = {\n SCRIPT_UNIT: '<SCRIPT_UNIT>',\n BODY: '<BODY_HTML_CODE>',\n SCRIPT_FROM_NATIVE: '<SCRIPT_FROM_NATIVE>',\n WINDOW_PARAMS: '<WINDOW_PARAMS>'\n};\n\nconst htmlText = `\n <!DOCTYPE html>\n <html lang=\"en\">\n\n <head lang=\"en\">\n <title>Unit Web SDK Demo</title>\n <script>\n window.UnitMobileSDK = true\n window.UnitMobileSDKConfig = {\n os: \"${Platform.OS}\",\n walletName: \"${Platform.OS === 'ios' ? 'Apple' : 'Google'}\",\n }\n ${HTML_PLACEHOLDER.WINDOW_PARAMS}\n </script>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=0\">\n </head>\n\n <body style=\"margin: 0;\">\n ${HTML_PLACEHOLDER.BODY}\n\n <script>\n ${POST_MESSAGE_TO_SDK}\n\n ${POST_PAGE_HEIGHT}\n\n ${LISTENERS.isPageLoaded}\n\n ${LISTENERS.onLoad}\n\n ${LISTENERS.unitRequestDownload}\n\n ${LISTENERS.requestRendering}\n\n ${LISTENERS.requestOpenLink}\n\n ${LISTENERS.requestCloseFlow}\n\n ${LISTENERS.cardActivated}\n\n ${LISTENERS.cardStatusChange}\n\n ${LISTENERS.unitRequestExternalSdk}\n\n ${LISTENERS.unitAccountChanged}\n\n ${LISTENERS.unitActivityFiltersChanged}\n\n ${DISPATCH_RENDERING_EVENT}\n\n ${DISPATCH_OPEN_ACTIONS_MENU}\n\n ${DISPATCH_REQUEST_CARD_ACTION}\n\n ${DISPATCH_ACTIVITY_FILTER_CHANGED_EVENT}\n\n ${DISPATCH_REQUEST_ACCOUNT_ACTION}\n\n ${HTML_PLACEHOLDER.SCRIPT_FROM_NATIVE}\n </script>\n </body>\n </html>\n`;\n\nexport default htmlText;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEO,MAAME,gBAAgB,GAAG;EAC9BC,WAAW,EAAE,eAAe;EAC5BC,IAAI,EAAE,kBAAkB;EACxBC,kBAAkB,EAAE,sBAAsB;EAC1CC,aAAa,EAAE;AACjB,CAAC;AAACC,OAAA,CAAAL,gBAAA,GAAAA,gBAAA;AAEF,MAAMM,QAAQ,GAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAaC,qBAAQ,CAACC,EAAG;AACzB,qBAAqBD,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,OAAO,GAAG,QAAS;AAChE;AACA,MAAMR,gBAAgB,CAACI,aAAc;AACrC;AACA;AACA;AACA;AACA;AACA,MAAMJ,gBAAgB,CAACE,IAAK;AAC5B;AACA;AACA,QAAQO,+BAAoB;AAC5B;AACA,QAAQC,4BAAiB;AACzB;AACA,QAAQC,qBAAS,CAACC,YAAa;AAC/B;AACA,QAAQD,qBAAS,CAACE,MAAO;AACzB;AACA,QAAQF,qBAAS,CAACG,mBAAoB;AACtC;AACA,QAAQH,qBAAS,CAACI,gBAAiB;AACnC;AACA,QAAQJ,qBAAS,CAACK,eAAgB;AAClC;AACA,QAAQL,qBAAS,CAACM,gBAAiB;AACnC;AACA,QAAQN,qBAAS,CAACO,aAAc;AAChC;AACA,QAAQP,qBAAS,CAACQ,gBAAiB;AACnC;AACA,QAAQR,qBAAS,CAACS,sBAAuB;AACzC;AACA,QAAQT,qBAAS,CAACU,kBAAmB;AACrC;AACA,QAAQV,qBAAS,CAACW,0BAA2B;AAC7C;AACA,QAAQC,oCAAyB;AACjC;AACA,QAAQC,sCAA2B;AACnC;AACA,QAAQC,wCAA6B;AACrC;AACA,QAAQC,kDAAuC;AAC/C;AACA,QAAQC,2CAAgC;AACxC;AACA,QAAQ3B,gBAAgB,CAACG,kBAAmB;AAC5C;AACA;AACA;AACA,CAAC;AAAC,IAAAyB,QAAA,GAEatB,QAAQ;AAAAD,OAAA,CAAAwB,OAAA,GAAAD,QAAA"}
1
+ {"version":3,"names":["_reactNative","require","_bodyScript","HTML_PLACEHOLDER","SCRIPT_UNIT","BODY","SCRIPT_FROM_NATIVE","WINDOW_PARAMS","FONT_FACES","exports","htmlText","Platform","OS","POST_MESSAGE_TO_SDK","POST_PAGE_HEIGHT","LISTENERS","isPageLoaded","onLoad","unitRequestDownload","requestRendering","requestOpenLink","requestCloseFlow","cardActivated","cardStatusChange","unitRequestExternalSdk","unitAccountChanged","unitActivityFiltersChanged","DISPATCH_RENDERING_EVENT","DISPATCH_OPEN_ACTIONS_MENU","DISPATCH_REQUEST_CARD_ACTION","DISPATCH_ACTIVITY_FILTER_CHANGED_EVENT","DISPATCH_REQUEST_ACCOUNT_ACTION","_default","default"],"sources":["html.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport { DISPATCH_RENDERING_EVENT, LISTENERS, POST_MESSAGE_TO_SDK, POST_PAGE_HEIGHT, DISPATCH_REQUEST_CARD_ACTION, DISPATCH_OPEN_ACTIONS_MENU, DISPATCH_REQUEST_ACCOUNT_ACTION, DISPATCH_ACTIVITY_FILTER_CHANGED_EVENT } from '../scripts/html/bodyScript';\n\nexport const HTML_PLACEHOLDER = {\n SCRIPT_UNIT: '<SCRIPT_UNIT>',\n BODY: '<BODY_HTML_CODE>',\n SCRIPT_FROM_NATIVE: '<SCRIPT_FROM_NATIVE>',\n WINDOW_PARAMS: '<WINDOW_PARAMS>',\n FONT_FACES: '<FONT_FACES>'\n};\n\nconst htmlText = `\n <!DOCTYPE html>\n <html lang=\"en\">\n\n <head lang=\"en\">\n <title>Unit Web SDK Demo</title>\n <script>\n window.UnitMobileSDK = true\n window.UnitMobileSDKConfig = {\n os: \"${Platform.OS}\",\n walletName: \"${Platform.OS === 'ios' ? 'Apple' : 'Google'}\",\n }\n ${HTML_PLACEHOLDER.WINDOW_PARAMS}\n </script>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=0\">\n\n <style type=\"text/css\">\n ${HTML_PLACEHOLDER.FONT_FACES}\n\n body {\n margin: 0;\n }\n </style>\n </head>\n\n <body>\n ${HTML_PLACEHOLDER.BODY}\n\n <script>\n ${POST_MESSAGE_TO_SDK}\n\n ${POST_PAGE_HEIGHT}\n\n ${LISTENERS.isPageLoaded}\n\n ${LISTENERS.onLoad}\n\n ${LISTENERS.unitRequestDownload}\n\n ${LISTENERS.requestRendering}\n\n ${LISTENERS.requestOpenLink}\n\n ${LISTENERS.requestCloseFlow}\n\n ${LISTENERS.cardActivated}\n\n ${LISTENERS.cardStatusChange}\n\n ${LISTENERS.unitRequestExternalSdk}\n\n ${LISTENERS.unitAccountChanged}\n\n ${LISTENERS.unitActivityFiltersChanged}\n\n ${DISPATCH_RENDERING_EVENT}\n\n ${DISPATCH_OPEN_ACTIONS_MENU}\n\n ${DISPATCH_REQUEST_CARD_ACTION}\n\n ${DISPATCH_ACTIVITY_FILTER_CHANGED_EVENT}\n\n ${DISPATCH_REQUEST_ACCOUNT_ACTION}\n\n ${HTML_PLACEHOLDER.SCRIPT_FROM_NATIVE}\n </script>\n </body>\n </html>\n`;\n\nexport default htmlText;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEO,MAAME,gBAAgB,GAAG;EAC9BC,WAAW,EAAE,eAAe;EAC5BC,IAAI,EAAE,kBAAkB;EACxBC,kBAAkB,EAAE,sBAAsB;EAC1CC,aAAa,EAAE,iBAAiB;EAChCC,UAAU,EAAE;AACd,CAAC;AAACC,OAAA,CAAAN,gBAAA,GAAAA,gBAAA;AAEF,MAAMO,QAAQ,GAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAaC,qBAAQ,CAACC,EAAG;AACzB,qBAAqBD,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,OAAO,GAAG,QAAS;AAChE;AACA,MAAMT,gBAAgB,CAACI,aAAc;AACrC;AACA;AACA;AACA;AACA,QAAQJ,gBAAgB,CAACK,UAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAML,gBAAgB,CAACE,IAAK;AAC5B;AACA;AACA,QAAQQ,+BAAoB;AAC5B;AACA,QAAQC,4BAAiB;AACzB;AACA,QAAQC,qBAAS,CAACC,YAAa;AAC/B;AACA,QAAQD,qBAAS,CAACE,MAAO;AACzB;AACA,QAAQF,qBAAS,CAACG,mBAAoB;AACtC;AACA,QAAQH,qBAAS,CAACI,gBAAiB;AACnC;AACA,QAAQJ,qBAAS,CAACK,eAAgB;AAClC;AACA,QAAQL,qBAAS,CAACM,gBAAiB;AACnC;AACA,QAAQN,qBAAS,CAACO,aAAc;AAChC;AACA,QAAQP,qBAAS,CAACQ,gBAAiB;AACnC;AACA,QAAQR,qBAAS,CAACS,sBAAuB;AACzC;AACA,QAAQT,qBAAS,CAACU,kBAAmB;AACrC;AACA,QAAQV,qBAAS,CAACW,0BAA2B;AAC7C;AACA,QAAQC,oCAAyB;AACjC;AACA,QAAQC,sCAA2B;AACnC;AACA,QAAQC,wCAA6B;AACrC;AACA,QAAQC,kDAAuC;AAC/C;AACA,QAAQC,2CAAgC;AACxC;AACA,QAAQ5B,gBAAgB,CAACG,kBAAmB;AAC5C;AACA;AACA;AACA,CAAC;AAAC,IAAA0B,QAAA,GAEatB,QAAQ;AAAAD,OAAA,CAAAwB,OAAA,GAAAD,QAAA"}
@@ -168,7 +168,8 @@ export const UNBottomSheetComponent = () => {
168
168
  injectHtmlFullScreenHeight(webRef.current, fullScreenHeight);
169
169
  setHeight(fullScreenHeight);
170
170
  } else {
171
- setHeight(message.details.height);
171
+ const height = message.details.height;
172
+ setHeight(height < fullScreenHeight ? height : fullScreenHeight);
172
173
  }
173
174
  }
174
175
  };
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","WebComponent","Dimensions","Linking","View","BottomSheet","EventBus","PageMessage","UnitMessage","CardMessage","useListenerToBus","extractCardIdFromComponentParams","getBottomSheetScript","injectHtmlFullScreenHeight","isAddToWalletByComponentParams","isAddToWalletFromRequestRendering","renderingBottomSheetRequest","resetHtml","getStylesObject","useAppStateListener","UNAddToWalletBottomSheetItem","getAccountActionType","AccountAction","AccountMessage","ActivityMessage","BOTTOM_SHEET_MAX_PERCENTAGE_SIZE","BottomSheetRenderingType","PresentationMode","WebComponentType","BottomSheetNativeMessage","ScrollState","UNBottomSheetComponent","isBottomSheetActive","setIsBottomSheetActive","height","setHeight","fullScreenHeight","get","renderingType","setRenderingType","Slot","bottomSheetSlotData","setBottomSheetSlotData","webComponentData","setWebComponentData","nativeComponentData","setNativeComponentData","isAddToWallet","setIsAddToWallet","scrollState","setScrollState","onTop","shouldShowComponent","setShouldShowComponent","newHeightMessage","setNewHeightMessage","isAppActive","styles","webRef","startFlow","rendering","type","data","undefined","NativeComponent","handleCloseFlow","current","requestRenderingEvent","_webRef$current","injectJavaScript","defineScrollState","setNewHeight","busEventKey","START_FLOW","action","UNIT_REQUEST_CLOSE_FLOW","scrollStateForSlot","componentName","account","accountActionType","List","unScrollable","card","nativePlace","scrollStateForWebComponent","message","details","onWebMessage","PAGE_HEIGHT","UNIT_REQUEST_RENDERING","_bottomSheetSlotData$","_bottomSheetSlotData$2","requestRendering","nativeComponent","includes","componentResourceId","setTimeout","CARD_ACTIVATED","Instance","event","CARD_STATUS_CHANGED","UNIT_ACCOUNT_CHANGED","UNIT_ACTIVITY_FILTERS_CHANGED","UNIT_REQUEST_OPEN_LINK","href","openURL","onScrollWebView","currY","nativeEvent","contentOffset","y","onlyBottomSheet","onlyWebView","handleWebViewScroll","renderBottomSheetItem","_bottomSheetSlotData$3","_webComponentData$par","createElement","renderingRequest","cardId","ref","slot","presentationMode","CoverInjectedHeight","script","onMessage","isScrollable","handleScroll","params","Fragment","pointerEvents","style","container","isOpen","onClose","onOpen","shouldEnableBottomSheetScroll"],"sources":["UNBottomSheetComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { WebComponent } from '../../webComponent/WebComponent';\nimport { Dimensions, Linking, View } from 'react-native';\nimport BottomSheet from '../../helpers/BottomSheet/BottomSheet';\nimport EventBus from '../../helpers/EventBus';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestOpenLinkEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { CardMessage, CardActivatedEvent, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport {\n extractCardIdFromComponentParams,\n getBottomSheetScript,\n injectHtmlFullScreenHeight,\n isAddToWalletByComponentParams,\n isAddToWalletFromRequestRendering,\n renderingBottomSheetRequest,\n resetHtml,\n} from './UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNBottomSheetComponent.styles';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\nimport { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSheetItem';\nimport { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';\nimport { AccountAction } from '../UNAccountComponent/UNAccountComponent';\nimport type { AccountChangedEvent } from '../../messages/webMessages/accountMessage';\nimport { AccountMessage } from '../../messages/webMessages/accountMessage';\nimport { ActivityFiltersChangedEvent, ActivityMessage } from '../../messages/webMessages/activityMessage';\nimport { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from './UNBottomSheetComponent.constants';\nimport { BottomSheetRenderingType, BottomSheetSlotData, NativeComponentData, WebComponentData } from '../../types/internal/bottomSheet.types';\nimport { PresentationMode, WebComponentType } from '../../types/internal/webComponent.types';\nimport { BottomSheetNativeMessage, type StartBottomSheetFlowMessage } from '../../messages/nativeMessages/bottomSheetMessage';\n\nexport enum ScrollState {\n /*\n Web View ScrollState -\n - Initialization:\n 'onTop': for a scrollable webView.\n (onTop means that the webview is onTop of the BottomSheet and we need to recognize the scroll direction).\n Then, it recognize the scroll direction and update the scroll state as needed.\n\n -'unScrollable': for an unscrollable webView\n */\n onTop = 'onTop',\n unScrollable = 'unScrollable',\n\n /*\n These are only for maintain the bottom sheet scrollState (not an initialize scroll state).\n It relates to the current scroll state.\n onlyWebView means that now the scroll is on webview (only).\n onlyBottomSheet means that now the scroll is on bottomSheet (only).\n */\n onlyWebView = 'webViewScroll',\n onlyBottomSheet = 'onlyBottomSheet',\n}\n\nexport const UNBottomSheetComponent = () => {\n const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);\n const [height, setHeight] = useState(0);\n\n const fullScreenHeight = Dimensions.get('window').height * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE;\n\n const [renderingType, setRenderingType] = useState<BottomSheetRenderingType>(BottomSheetRenderingType.Slot);\n const [bottomSheetSlotData, setBottomSheetSlotData] = useState<BottomSheetSlotData>();\n const [webComponentData, setWebComponentData] = useState<WebComponentData>();\n const [nativeComponentData, setNativeComponentData] = useState<NativeComponentData>();\n\n const [isAddToWallet, setIsAddToWallet] = useState(false);\n const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);\n\n const [shouldShowComponent, setShouldShowComponent] = useState(false);\n const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);\n\n const isAppActive = useAppStateListener();\n\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const startFlow = (rendering: StartBottomSheetFlowMessage) => {\n setRenderingType(rendering.type);\n setIsBottomSheetActive(true);\n setShouldShowComponent(true);\n switch (rendering.type) {\n case BottomSheetRenderingType.Slot:\n setBottomSheetSlotData(rendering.data);\n setIsAddToWallet(isAddToWalletFromRequestRendering(rendering.data));\n setWebComponentData(undefined);\n break;\n case BottomSheetRenderingType.WebComponent:\n setIsAddToWallet(isAddToWalletByComponentParams(rendering.data));\n isAddToWallet && setHeight(fullScreenHeight);\n setBottomSheetSlotData(undefined);\n setWebComponentData(rendering.data);\n break;\n case BottomSheetRenderingType.NativeComponent:\n setNativeComponentData(rendering.data);\n break;\n }\n };\n\n const handleCloseFlow = () => {\n setIsBottomSheetActive(false);\n };\n\n useEffect(() => {\n switch (renderingType) {\n case BottomSheetRenderingType.Slot:\n if (webRef.current && bottomSheetSlotData?.requestRenderingEvent) {\n renderingBottomSheetRequest(webRef.current, bottomSheetSlotData.requestRenderingEvent);\n }\n break;\n case BottomSheetRenderingType.WebComponent:\n if (isAddToWallet) {\n webRef.current?.injectJavaScript('document.activeElement && document.activeElement.blur();');\n setHeight(fullScreenHeight);\n }\n break;\n case BottomSheetRenderingType.NativeComponent:\n break;\n }\n }, [webRef, webComponentData, bottomSheetSlotData, nativeComponentData]);\n\n useEffect(() => {\n if (!isBottomSheetActive) {\n webRef.current && resetHtml(webRef.current);\n setHeight(0);\n setShouldShowComponent(false);\n setWebComponentData(undefined);\n setBottomSheetSlotData(undefined);\n setRenderingType(BottomSheetRenderingType.Slot);\n setScrollState(ScrollState.onTop);\n setIsAddToWallet(false);\n }\n }, [isBottomSheetActive]);\n\n useEffect(() => {\n if (shouldShowComponent) {\n defineScrollState();\n setNewHeight(newHeightMessage);\n }\n }, [shouldShowComponent, newHeightMessage, isAddToWallet]);\n\n useListenerToBus({ busEventKey: BottomSheetNativeMessage.START_FLOW, action: startFlow });\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_CLOSE_FLOW, action: handleCloseFlow });\n\n const defineScrollState = () => {\n const scrollStateForSlot = () => {\n if (!bottomSheetSlotData?.requestRenderingEvent) return;\n switch (bottomSheetSlotData?.componentName) {\n case WebComponentType.account: {\n const accountActionType = getAccountActionType(bottomSheetSlotData.requestRenderingEvent);\n setScrollState(\n accountActionType === AccountAction.List ? ScrollState.onTop : ScrollState.unScrollable\n );\n break;\n }\n case WebComponentType.card: {\n if (isAddToWallet) {\n setScrollState(ScrollState.unScrollable);\n } else {\n setScrollState(ScrollState.onTop);\n }\n break;\n }\n default: {\n // default web component case\n const nativePlace = bottomSheetSlotData.requestRenderingEvent.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n setScrollState(ScrollState.onTop);\n } else {\n setScrollState(ScrollState.unScrollable);\n }\n }\n }\n };\n\n const scrollStateForWebComponent = () => {\n if (isAddToWallet) {\n setScrollState(ScrollState.unScrollable);\n } else {\n setScrollState(ScrollState.onTop);\n }\n };\n\n switch (renderingType) {\n case BottomSheetRenderingType.Slot:\n scrollStateForSlot();\n break;\n case BottomSheetRenderingType.WebComponent:\n scrollStateForWebComponent();\n break;\n default:\n setScrollState(ScrollState.onTop);\n }\n };\n\n const setNewHeight = (message: WebViewMessage | null) => {\n if (isAddToWallet) {\n setHeight(fullScreenHeight);\n } else if (message) {\n const nativePlace = bottomSheetSlotData?.requestRenderingEvent.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n injectHtmlFullScreenHeight(webRef.current, fullScreenHeight);\n setHeight(fullScreenHeight);\n } else {\n setHeight((message.details as HeightEvent).height);\n }\n }\n };\n\n const onWebMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case PageMessage.PAGE_HEIGHT:\n bottomSheetSlotData?.requestRenderingEvent && setNewHeightMessage(message);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n setRenderingType(BottomSheetRenderingType.Slot);\n const requestRendering = (message.details as RequestRenderingEvent);\n setWebComponentData(undefined);\n if (requestRendering.data.nativeComponent != bottomSheetSlotData?.requestRenderingEvent?.data?.nativeComponent) {\n setIsAddToWallet(requestRendering.data.nativeComponent.includes('action=AddToWallet'));\n\n // Animation between bottom sheet screens\n // Close the bottom sheet\n setHeight(0);\n setShouldShowComponent(false);\n\n // Update the bottom sheet data\n setBottomSheetSlotData({\n componentResourceId: bottomSheetSlotData?.componentResourceId,\n componentName: bottomSheetSlotData?.componentName,\n requestRenderingEvent: requestRendering\n });\n\n // Open the bottom sheet\n setTimeout(() => setShouldShowComponent(true), 400);\n }\n break;\n }\n case CardMessage.CARD_ACTIVATED:\n EventBus.Instance.event(CardMessage.CARD_ACTIVATED, (message.details as CardActivatedEvent).card);\n break;\n case CardMessage.CARD_STATUS_CHANGED:\n EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);\n break;\n case AccountMessage.UNIT_ACCOUNT_CHANGED:\n EventBus.Instance.event(AccountMessage.UNIT_ACCOUNT_CHANGED, (message.details as AccountChangedEvent).account);\n break;\n case ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED:\n EventBus.Instance.event(ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED, (message.details as ActivityFiltersChangedEvent));\n break;\n case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:\n handleCloseFlow();\n break;\n case UnitMessage.UNIT_REQUEST_OPEN_LINK:\n // eslint-disable-next-line no-case-declarations\n const { href } = (message.details as RequestOpenLinkEvent);\n Linking.openURL(href);\n break;\n }\n };\n\n const onScrollWebView = (event: any) => {\n if (scrollState === ScrollState.unScrollable) return;\n\n const currY = event.nativeEvent.contentOffset.y;\n\n if (ScrollState.onTop && currY < 5) {\n setScrollState(ScrollState.onlyBottomSheet);\n }\n\n if (scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {\n setScrollState(ScrollState.onlyWebView);\n }\n };\n\n const handleWebViewScroll = () => {\n if (scrollState === ScrollState.unScrollable) return;\n setScrollState(ScrollState.onlyWebView);\n };\n\n const renderBottomSheetItem = () => {\n switch (renderingType) {\n case BottomSheetRenderingType.Slot:\n if (bottomSheetSlotData?.requestRenderingEvent.data.nativeComponent?.includes('action=AddToWallet') && bottomSheetSlotData?.componentResourceId) {\n return <UNAddToWalletBottomSheetItem renderingType={renderingType} renderingRequest={bottomSheetSlotData.requestRenderingEvent} cardId={bottomSheetSlotData?.componentResourceId} fullScreenHeight={fullScreenHeight}/>;\n }\n\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n script={getBottomSheetScript()}\n onMessage={onWebMessage}\n isScrollable={scrollState === ScrollState.onlyWebView || scrollState === ScrollState.onTop}\n handleScroll={onScrollWebView}\n />\n );\n case BottomSheetRenderingType.WebComponent:\n if (webComponentData?.params?.includes('action=AddToWallet')) {\n const cardId = extractCardIdFromComponentParams(webComponentData);\n if (!cardId) return null;\n return <UNAddToWalletBottomSheetItem renderingType={renderingType} webComponentData={webComponentData} cardId={cardId} fullScreenHeight={fullScreenHeight}/>;\n }\n return null;\n case BottomSheetRenderingType.NativeComponent:\n return null;\n }\n };\n\n return (\n <>\n <View\n pointerEvents={isBottomSheetActive ? undefined : 'none'}\n style={styles.container}\n >\n <BottomSheet\n isOpen={isBottomSheetActive}\n height={height}\n onClose={() => setIsBottomSheetActive(false)}\n onOpen={() => setIsBottomSheetActive(true)}\n handleWebViewScroll={() => handleWebViewScroll()}\n shouldEnableBottomSheetScroll={scrollState !== ScrollState.onlyWebView}\n >\n {isAppActive && renderBottomSheetItem()}\n </BottomSheet >\n </View >\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useRef","useState","WebComponent","Dimensions","Linking","View","BottomSheet","EventBus","PageMessage","UnitMessage","CardMessage","useListenerToBus","extractCardIdFromComponentParams","getBottomSheetScript","injectHtmlFullScreenHeight","isAddToWalletByComponentParams","isAddToWalletFromRequestRendering","renderingBottomSheetRequest","resetHtml","getStylesObject","useAppStateListener","UNAddToWalletBottomSheetItem","getAccountActionType","AccountAction","AccountMessage","ActivityMessage","BOTTOM_SHEET_MAX_PERCENTAGE_SIZE","BottomSheetRenderingType","PresentationMode","WebComponentType","BottomSheetNativeMessage","ScrollState","UNBottomSheetComponent","isBottomSheetActive","setIsBottomSheetActive","height","setHeight","fullScreenHeight","get","renderingType","setRenderingType","Slot","bottomSheetSlotData","setBottomSheetSlotData","webComponentData","setWebComponentData","nativeComponentData","setNativeComponentData","isAddToWallet","setIsAddToWallet","scrollState","setScrollState","onTop","shouldShowComponent","setShouldShowComponent","newHeightMessage","setNewHeightMessage","isAppActive","styles","webRef","startFlow","rendering","type","data","undefined","NativeComponent","handleCloseFlow","current","requestRenderingEvent","_webRef$current","injectJavaScript","defineScrollState","setNewHeight","busEventKey","START_FLOW","action","UNIT_REQUEST_CLOSE_FLOW","scrollStateForSlot","componentName","account","accountActionType","List","unScrollable","card","nativePlace","scrollStateForWebComponent","message","details","onWebMessage","PAGE_HEIGHT","UNIT_REQUEST_RENDERING","_bottomSheetSlotData$","_bottomSheetSlotData$2","requestRendering","nativeComponent","includes","componentResourceId","setTimeout","CARD_ACTIVATED","Instance","event","CARD_STATUS_CHANGED","UNIT_ACCOUNT_CHANGED","UNIT_ACTIVITY_FILTERS_CHANGED","UNIT_REQUEST_OPEN_LINK","href","openURL","onScrollWebView","currY","nativeEvent","contentOffset","y","onlyBottomSheet","onlyWebView","handleWebViewScroll","renderBottomSheetItem","_bottomSheetSlotData$3","_webComponentData$par","createElement","renderingRequest","cardId","ref","slot","presentationMode","CoverInjectedHeight","script","onMessage","isScrollable","handleScroll","params","Fragment","pointerEvents","style","container","isOpen","onClose","onOpen","shouldEnableBottomSheetScroll"],"sources":["UNBottomSheetComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { WebComponent } from '../../webComponent/WebComponent';\nimport { Dimensions, Linking, View } from 'react-native';\nimport BottomSheet from '../../helpers/BottomSheet/BottomSheet';\nimport EventBus from '../../helpers/EventBus';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestOpenLinkEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { CardMessage, CardActivatedEvent, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport {\n extractCardIdFromComponentParams,\n getBottomSheetScript,\n injectHtmlFullScreenHeight,\n isAddToWalletByComponentParams,\n isAddToWalletFromRequestRendering,\n renderingBottomSheetRequest,\n resetHtml,\n} from './UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNBottomSheetComponent.styles';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\nimport { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSheetItem';\nimport { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';\nimport { AccountAction } from '../UNAccountComponent/UNAccountComponent';\nimport type { AccountChangedEvent } from '../../messages/webMessages/accountMessage';\nimport { AccountMessage } from '../../messages/webMessages/accountMessage';\nimport { ActivityFiltersChangedEvent, ActivityMessage } from '../../messages/webMessages/activityMessage';\nimport { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from './UNBottomSheetComponent.constants';\nimport { BottomSheetRenderingType, BottomSheetSlotData, NativeComponentData, WebComponentData } from '../../types/internal/bottomSheet.types';\nimport { PresentationMode, WebComponentType } from '../../types/internal/webComponent.types';\nimport { BottomSheetNativeMessage, type StartBottomSheetFlowMessage } from '../../messages/nativeMessages/bottomSheetMessage';\n\nexport enum ScrollState {\n /*\n Web View ScrollState -\n - Initialization:\n 'onTop': for a scrollable webView.\n (onTop means that the webview is onTop of the BottomSheet and we need to recognize the scroll direction).\n Then, it recognize the scroll direction and update the scroll state as needed.\n\n -'unScrollable': for an unscrollable webView\n */\n onTop = 'onTop',\n unScrollable = 'unScrollable',\n\n /*\n These are only for maintain the bottom sheet scrollState (not an initialize scroll state).\n It relates to the current scroll state.\n onlyWebView means that now the scroll is on webview (only).\n onlyBottomSheet means that now the scroll is on bottomSheet (only).\n */\n onlyWebView = 'webViewScroll',\n onlyBottomSheet = 'onlyBottomSheet',\n}\n\nexport const UNBottomSheetComponent = () => {\n const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);\n const [height, setHeight] = useState(0);\n\n const fullScreenHeight = Dimensions.get('window').height * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE;\n\n const [renderingType, setRenderingType] = useState<BottomSheetRenderingType>(BottomSheetRenderingType.Slot);\n const [bottomSheetSlotData, setBottomSheetSlotData] = useState<BottomSheetSlotData>();\n const [webComponentData, setWebComponentData] = useState<WebComponentData>();\n const [nativeComponentData, setNativeComponentData] = useState<NativeComponentData>();\n\n const [isAddToWallet, setIsAddToWallet] = useState(false);\n const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);\n\n const [shouldShowComponent, setShouldShowComponent] = useState(false);\n const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);\n\n const isAppActive = useAppStateListener();\n\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const startFlow = (rendering: StartBottomSheetFlowMessage) => {\n setRenderingType(rendering.type);\n setIsBottomSheetActive(true);\n setShouldShowComponent(true);\n switch (rendering.type) {\n case BottomSheetRenderingType.Slot:\n setBottomSheetSlotData(rendering.data);\n setIsAddToWallet(isAddToWalletFromRequestRendering(rendering.data));\n setWebComponentData(undefined);\n break;\n case BottomSheetRenderingType.WebComponent:\n setIsAddToWallet(isAddToWalletByComponentParams(rendering.data));\n isAddToWallet && setHeight(fullScreenHeight);\n setBottomSheetSlotData(undefined);\n setWebComponentData(rendering.data);\n break;\n case BottomSheetRenderingType.NativeComponent:\n setNativeComponentData(rendering.data);\n break;\n }\n };\n\n const handleCloseFlow = () => {\n setIsBottomSheetActive(false);\n };\n\n useEffect(() => {\n switch (renderingType) {\n case BottomSheetRenderingType.Slot:\n if (webRef.current && bottomSheetSlotData?.requestRenderingEvent) {\n renderingBottomSheetRequest(webRef.current, bottomSheetSlotData.requestRenderingEvent);\n }\n break;\n case BottomSheetRenderingType.WebComponent:\n if (isAddToWallet) {\n webRef.current?.injectJavaScript('document.activeElement && document.activeElement.blur();');\n setHeight(fullScreenHeight);\n }\n break;\n case BottomSheetRenderingType.NativeComponent:\n break;\n }\n }, [webRef, webComponentData, bottomSheetSlotData, nativeComponentData]);\n\n useEffect(() => {\n if (!isBottomSheetActive) {\n webRef.current && resetHtml(webRef.current);\n setHeight(0);\n setShouldShowComponent(false);\n setWebComponentData(undefined);\n setBottomSheetSlotData(undefined);\n setRenderingType(BottomSheetRenderingType.Slot);\n setScrollState(ScrollState.onTop);\n setIsAddToWallet(false);\n }\n }, [isBottomSheetActive]);\n\n useEffect(() => {\n if (shouldShowComponent) {\n defineScrollState();\n setNewHeight(newHeightMessage);\n }\n }, [shouldShowComponent, newHeightMessage, isAddToWallet]);\n\n useListenerToBus({ busEventKey: BottomSheetNativeMessage.START_FLOW, action: startFlow });\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_CLOSE_FLOW, action: handleCloseFlow });\n\n const defineScrollState = () => {\n const scrollStateForSlot = () => {\n if (!bottomSheetSlotData?.requestRenderingEvent) return;\n switch (bottomSheetSlotData?.componentName) {\n case WebComponentType.account: {\n const accountActionType = getAccountActionType(bottomSheetSlotData.requestRenderingEvent);\n setScrollState(\n accountActionType === AccountAction.List ? ScrollState.onTop : ScrollState.unScrollable\n );\n break;\n }\n case WebComponentType.card: {\n if (isAddToWallet) {\n setScrollState(ScrollState.unScrollable);\n } else {\n setScrollState(ScrollState.onTop);\n }\n break;\n }\n default: {\n // default web component case\n const nativePlace = bottomSheetSlotData.requestRenderingEvent.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n setScrollState(ScrollState.onTop);\n } else {\n setScrollState(ScrollState.unScrollable);\n }\n }\n }\n };\n\n const scrollStateForWebComponent = () => {\n if (isAddToWallet) {\n setScrollState(ScrollState.unScrollable);\n } else {\n setScrollState(ScrollState.onTop);\n }\n };\n\n switch (renderingType) {\n case BottomSheetRenderingType.Slot:\n scrollStateForSlot();\n break;\n case BottomSheetRenderingType.WebComponent:\n scrollStateForWebComponent();\n break;\n default:\n setScrollState(ScrollState.onTop);\n }\n };\n\n const setNewHeight = (message: WebViewMessage | null) => {\n if (isAddToWallet) {\n setHeight(fullScreenHeight);\n } else if (message) {\n const nativePlace = bottomSheetSlotData?.requestRenderingEvent.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n injectHtmlFullScreenHeight(webRef.current, fullScreenHeight);\n setHeight(fullScreenHeight);\n } else {\n const height = (message.details as HeightEvent).height;\n setHeight(height < fullScreenHeight ? height : fullScreenHeight);\n }\n }\n };\n\n const onWebMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case PageMessage.PAGE_HEIGHT:\n bottomSheetSlotData?.requestRenderingEvent && setNewHeightMessage(message);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n setRenderingType(BottomSheetRenderingType.Slot);\n const requestRendering = (message.details as RequestRenderingEvent);\n setWebComponentData(undefined);\n if (requestRendering.data.nativeComponent != bottomSheetSlotData?.requestRenderingEvent?.data?.nativeComponent) {\n setIsAddToWallet(requestRendering.data.nativeComponent.includes('action=AddToWallet'));\n\n // Animation between bottom sheet screens\n // Close the bottom sheet\n setHeight(0);\n setShouldShowComponent(false);\n\n // Update the bottom sheet data\n setBottomSheetSlotData({\n componentResourceId: bottomSheetSlotData?.componentResourceId,\n componentName: bottomSheetSlotData?.componentName,\n requestRenderingEvent: requestRendering\n });\n\n // Open the bottom sheet\n setTimeout(() => setShouldShowComponent(true), 400);\n }\n break;\n }\n case CardMessage.CARD_ACTIVATED:\n EventBus.Instance.event(CardMessage.CARD_ACTIVATED, (message.details as CardActivatedEvent).card);\n break;\n case CardMessage.CARD_STATUS_CHANGED:\n EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);\n break;\n case AccountMessage.UNIT_ACCOUNT_CHANGED:\n EventBus.Instance.event(AccountMessage.UNIT_ACCOUNT_CHANGED, (message.details as AccountChangedEvent).account);\n break;\n case ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED:\n EventBus.Instance.event(ActivityMessage.UNIT_ACTIVITY_FILTERS_CHANGED, (message.details as ActivityFiltersChangedEvent));\n break;\n case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:\n handleCloseFlow();\n break;\n case UnitMessage.UNIT_REQUEST_OPEN_LINK:\n // eslint-disable-next-line no-case-declarations\n const { href } = (message.details as RequestOpenLinkEvent);\n Linking.openURL(href);\n break;\n }\n };\n\n const onScrollWebView = (event: any) => {\n if (scrollState === ScrollState.unScrollable) return;\n\n const currY = event.nativeEvent.contentOffset.y;\n\n if (ScrollState.onTop && currY < 5) {\n setScrollState(ScrollState.onlyBottomSheet);\n }\n\n if (scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {\n setScrollState(ScrollState.onlyWebView);\n }\n };\n\n const handleWebViewScroll = () => {\n if (scrollState === ScrollState.unScrollable) return;\n setScrollState(ScrollState.onlyWebView);\n };\n\n const renderBottomSheetItem = () => {\n switch (renderingType) {\n case BottomSheetRenderingType.Slot:\n if (bottomSheetSlotData?.requestRenderingEvent.data.nativeComponent?.includes('action=AddToWallet') && bottomSheetSlotData?.componentResourceId) {\n return <UNAddToWalletBottomSheetItem renderingType={renderingType} renderingRequest={bottomSheetSlotData.requestRenderingEvent} cardId={bottomSheetSlotData?.componentResourceId} fullScreenHeight={fullScreenHeight}/>;\n }\n\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n script={getBottomSheetScript()}\n onMessage={onWebMessage}\n isScrollable={scrollState === ScrollState.onlyWebView || scrollState === ScrollState.onTop}\n handleScroll={onScrollWebView}\n />\n );\n case BottomSheetRenderingType.WebComponent:\n if (webComponentData?.params?.includes('action=AddToWallet')) {\n const cardId = extractCardIdFromComponentParams(webComponentData);\n if (!cardId) return null;\n return <UNAddToWalletBottomSheetItem renderingType={renderingType} webComponentData={webComponentData} cardId={cardId} fullScreenHeight={fullScreenHeight}/>;\n }\n return null;\n case BottomSheetRenderingType.NativeComponent:\n return null;\n }\n };\n\n return (\n <>\n <View\n pointerEvents={isBottomSheetActive ? undefined : 'none'}\n style={styles.container}\n >\n <BottomSheet\n isOpen={isBottomSheetActive}\n height={height}\n onClose={() => setIsBottomSheetActive(false)}\n onOpen={() => setIsBottomSheetActive(true)}\n handleWebViewScroll={() => handleWebViewScroll()}\n shouldEnableBottomSheetScroll={scrollState !== ScrollState.onlyWebView}\n >\n {isAppActive && renderBottomSheetItem()}\n </BottomSheet >\n </View >\n </>\n );\n};\n"],"mappings":"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"}
@@ -100,7 +100,8 @@ export const UNCardComponent = /*#__PURE__*/React.forwardRef(function UNCardComp
100
100
  return /*#__PURE__*/React.createElement(View, {
101
101
  style: {
102
102
  height,
103
- width: '100%'
103
+ width: '100%',
104
+ minWidth: 235
104
105
  }
105
106
  }, /*#__PURE__*/React.createElement(WebComponent, {
106
107
  ref: webRef,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useImperativeHandle","useRef","useState","useEffect","View","PageMessage","UnitMessage","EventBus","WebComponent","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","injectOpenActionsMenuScript","injectRequestCardActionScript","CardMessage","RESPONSE_KEYS","BottomSheetRenderingType","PresentationMode","WebComponentType","UnitSDK","BottomSheetNativeMessage","UNCardComponent","forwardRef","props","cardRef","height","setHeight","webRef","openActionsMenu","current","openAction","action","cardStatusChanged","card","onStatusChanged","cardActivated","onCardActivated","requestRefresh","data","cardId","handleUnitOnLoad","response","onLoad","errors","console","error","busEventKey","UNIT_REQUEST_REFRESH","CARD_STATUS_CHANGED","CARD_ACTIVATED","handleMessage","message","details","type","UNIT_REQUEST_RENDERING","slotData","componentName","componentResourceId","requestRenderingEvent","event","Slot","Instance","START_FLOW","PAGE_HEIGHT","UNIT_ON_LOAD","setCustomerToken","customerToken","pushProvisioningModule","setPushProvisioningModule","createElement","style","width","ref","presentationMode","Default","params","theme","language","script","onMessage","isScrollable"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useEffect } from 'react';\nimport { View } from 'react-native';\nimport type WebView from 'react-native-webview';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport EventBus from '../../helpers/EventBus';\nimport { WebComponent } from '../../webComponent/WebComponent';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getCardParams, getCardScript, injectRefreshEventIfNeeded, injectOpenActionsMenuScript, injectRequestCardActionScript } from './UNCardComponent.utils';\nimport type { UNOnLoadResponse, UNCardData, UNError, UNCardMenuAction } from '../../types/shared';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\nimport type { NativeModules } from 'react-native';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\nimport { BottomSheetRenderingType, SlotRendering, type BottomSheetSlotData } from '../../types/internal/bottomSheet.types';\nimport { PresentationMode, WebComponentType } from '../../types/internal/webComponent.types';\nimport { UnitSDK } from '../../unitSdkManager/UnitSdkManager';\nimport { BottomSheetNativeMessage } from '../../messages/nativeMessages/bottomSheetMessage';\nexport interface UNCardComponentProps {\n // inputs\n cardId: string;\n customerToken: string;\n learnMoreUrl?: string;\n\n // ui\n theme?: string;\n language?: string;\n hideActionsMenuButton?: boolean;\n hideCardTitle?: boolean;\n hideSensitiveDataButton?: boolean;\n\n // events\n onLoad?: (response: UNOnLoadResponse<UNCardData>) => void\n onStatusChanged?: (card: UNCardData) => void;\n onCardActivated?: (card: UNCardData) => void;\n pushProvisioningModule?: typeof NativeModules;\n}\nexport interface CardRef {\n openActionsMenu: () => void;\n openAction: (action: UNCardMenuAction) => void;\n}\n\nexport const UNCardComponent = React.forwardRef<CardRef, UNCardComponentProps>(function UNCardComponent(props, cardRef) {\n const [height, setHeight] = useState(0);\n\n const webRef = useRef<WebView>(null);\n\n useImperativeHandle(cardRef, () => ({\n openActionsMenu() {\n injectOpenActionsMenuScript(webRef.current);\n },\n openAction(action: UNCardMenuAction) {\n injectRequestCardActionScript(webRef.current, action);\n }\n }));\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const cardActivated = (card: UNCardData) => {\n if (props.onCardActivated) {\n props.onCardActivated(card);\n }\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n injectRefreshEventIfNeeded(webRef.current, data, props.cardId);\n };\n\n const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.card in response) {\n // CardOnLoadResponse\n props.onLoad(response[RESPONSE_KEYS.card] as UNOnLoadResponse<UNCardData>);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged });\n useListenerToBus({ busEventKey: CardMessage.CARD_ACTIVATED, action: cardActivated });\n\n const handleMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const slotData: BottomSheetSlotData = {\n componentName: WebComponentType.card,\n componentResourceId: props.cardId,\n requestRenderingEvent: message.details as RequestRenderingEvent\n };\n\n const event = {\n type: BottomSheetRenderingType.Slot,\n data: slotData\n } as SlotRendering;\n\n EventBus.Instance.event(BottomSheetNativeMessage.START_FLOW, event);\n break;\n }\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n case UnitMessage.UNIT_ON_LOAD:\n handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n }\n };\n\n useEffect(() => {\n UnitSDK.setCustomerToken(props.customerToken);\n }, [props.customerToken]);\n\n useEffect(() => {\n if (props.pushProvisioningModule) {\n UnitSDK.setPushProvisioningModule(props.pushProvisioningModule);\n }\n }, [props.pushProvisioningModule]);\n\n return (\n <View style={{ height, width: '100%' }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.card}\n presentationMode={PresentationMode.Default}\n params={getCardParams(props)}\n theme={props.theme}\n language={props.language}\n script={getCardScript()}\n onMessage={message => handleMessage(message)}\n isScrollable={false}\n />\n </View>\n );\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useImperativeHandle","useRef","useState","useEffect","View","PageMessage","UnitMessage","EventBus","WebComponent","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","injectOpenActionsMenuScript","injectRequestCardActionScript","CardMessage","RESPONSE_KEYS","BottomSheetRenderingType","PresentationMode","WebComponentType","UnitSDK","BottomSheetNativeMessage","UNCardComponent","forwardRef","props","cardRef","height","setHeight","webRef","openActionsMenu","current","openAction","action","cardStatusChanged","card","onStatusChanged","cardActivated","onCardActivated","requestRefresh","data","cardId","handleUnitOnLoad","response","onLoad","errors","console","error","busEventKey","UNIT_REQUEST_REFRESH","CARD_STATUS_CHANGED","CARD_ACTIVATED","handleMessage","message","details","type","UNIT_REQUEST_RENDERING","slotData","componentName","componentResourceId","requestRenderingEvent","event","Slot","Instance","START_FLOW","PAGE_HEIGHT","UNIT_ON_LOAD","setCustomerToken","customerToken","pushProvisioningModule","setPushProvisioningModule","createElement","style","width","minWidth","ref","presentationMode","Default","params","theme","language","script","onMessage","isScrollable"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useEffect } from 'react';\nimport { View } from 'react-native';\nimport type WebView from 'react-native-webview';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport EventBus from '../../helpers/EventBus';\nimport { WebComponent } from '../../webComponent/WebComponent';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getCardParams, getCardScript, injectRefreshEventIfNeeded, injectOpenActionsMenuScript, injectRequestCardActionScript } from './UNCardComponent.utils';\nimport type { UNOnLoadResponse, UNCardData, UNError, UNCardMenuAction } from '../../types/shared';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\nimport type { NativeModules } from 'react-native';\nimport { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';\nimport { BottomSheetRenderingType, SlotRendering, type BottomSheetSlotData } from '../../types/internal/bottomSheet.types';\nimport { PresentationMode, WebComponentType } from '../../types/internal/webComponent.types';\nimport { UnitSDK } from '../../unitSdkManager/UnitSdkManager';\nimport { BottomSheetNativeMessage } from '../../messages/nativeMessages/bottomSheetMessage';\nexport interface UNCardComponentProps {\n // inputs\n cardId: string;\n customerToken: string;\n learnMoreUrl?: string;\n\n // ui\n theme?: string;\n language?: string;\n hideActionsMenuButton?: boolean;\n hideCardTitle?: boolean;\n hideSensitiveDataButton?: boolean;\n\n // events\n onLoad?: (response: UNOnLoadResponse<UNCardData>) => void\n onStatusChanged?: (card: UNCardData) => void;\n onCardActivated?: (card: UNCardData) => void;\n pushProvisioningModule?: typeof NativeModules;\n}\nexport interface CardRef {\n openActionsMenu: () => void;\n openAction: (action: UNCardMenuAction) => void;\n}\n\nexport const UNCardComponent = React.forwardRef<CardRef, UNCardComponentProps>(function UNCardComponent(props, cardRef) {\n const [height, setHeight] = useState(0);\n\n const webRef = useRef<WebView>(null);\n\n useImperativeHandle(cardRef, () => ({\n openActionsMenu() {\n injectOpenActionsMenuScript(webRef.current);\n },\n openAction(action: UNCardMenuAction) {\n injectRequestCardActionScript(webRef.current, action);\n }\n }));\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const cardActivated = (card: UNCardData) => {\n if (props.onCardActivated) {\n props.onCardActivated(card);\n }\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n injectRefreshEventIfNeeded(webRef.current, data, props.cardId);\n };\n\n const handleUnitOnLoad = (response: UnitOnLoadResponseEvent) => {\n if (!props.onLoad) {\n return;\n }\n\n if (RESPONSE_KEYS.errors in response) {\n props.onLoad(response as UNError);\n return;\n }\n\n if (RESPONSE_KEYS.card in response) {\n // CardOnLoadResponse\n props.onLoad(response[RESPONSE_KEYS.card] as UNOnLoadResponse<UNCardData>);\n return;\n }\n\n console.error('On Load Error: unexpected response type');\n return;\n };\n\n useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh });\n useListenerToBus({ busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged });\n useListenerToBus({ busEventKey: CardMessage.CARD_ACTIVATED, action: cardActivated });\n\n const handleMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const slotData: BottomSheetSlotData = {\n componentName: WebComponentType.card,\n componentResourceId: props.cardId,\n requestRenderingEvent: message.details as RequestRenderingEvent\n };\n\n const event = {\n type: BottomSheetRenderingType.Slot,\n data: slotData\n } as SlotRendering;\n\n EventBus.Instance.event(BottomSheetNativeMessage.START_FLOW, event);\n break;\n }\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n case UnitMessage.UNIT_ON_LOAD:\n handleUnitOnLoad(message.details as UnitOnLoadResponseEvent);\n break;\n }\n };\n\n useEffect(() => {\n UnitSDK.setCustomerToken(props.customerToken);\n }, [props.customerToken]);\n\n useEffect(() => {\n if (props.pushProvisioningModule) {\n UnitSDK.setPushProvisioningModule(props.pushProvisioningModule);\n }\n }, [props.pushProvisioningModule]);\n\n return (\n <View style={{ height, width: '100%', minWidth: 235 }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.card}\n presentationMode={PresentationMode.Default}\n params={getCardParams(props)}\n theme={props.theme}\n language={props.language}\n script={getCardScript()}\n onMessage={message => handleMessage(message)}\n isScrollable={false}\n />\n </View>\n );\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","UNWalletCode","UNWalletName","UnitSDK","getMobileWalletPayload","useCardWallet","cardId","currentUNWallet","setCurrentUNWallet","getEncryptedPayload","env","getEnv","customerToken","getCustomerToken","encryptedPayload","getCardWalletData","currentProvisioningModule","getPushProvisionModule","walletsResponse","launchGetWallets","JSON","stringify","encPayload","unWallet","parseWalletsResponse","error","Promise","reject","parsedWalletsResponse","parse","wallets","code","Apple","name","status","googleWallet","filter","wallet","Google","Error"],"sources":["useCardWallet.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { UNWalletCode, type UNWallet, UNWalletName } from '../../../types/shared/wallet.types';\nimport { UnitSDK } from '../../../unitSdkManager/UnitSdkManager';\nimport { getMobileWalletPayload } from '../../../networking/requests/UNWalletPayloadRequest';\n\nexport type CardToEncryptedPayload = {\n [cardId: string]: string;\n};\n\nexport const useCardWallet = (cardId: string) => {\n const [currentUNWallet, setCurrentUNWallet] = useState<UNWallet>();\n\n useEffect(() => {\n const getEncryptedPayload = async () => {\n const env = UnitSDK.getEnv();\n const customerToken = UnitSDK.getCustomerToken();\n if (!env || !customerToken) return;\n\n const encryptedPayload = await getMobileWalletPayload(customerToken, cardId, env);\n return encryptedPayload;\n };\n\n const getCardWalletData = async () => {\n const currentProvisioningModule = UnitSDK.getPushProvisionModule();\n if (!currentProvisioningModule) return;\n try {\n const encryptedPayload = await getEncryptedPayload();\n const walletsResponse = await currentProvisioningModule.launchGetWallets(JSON.stringify({ encPayload: encryptedPayload }));\n\n const unWallet: UNWallet | null = parseWalletsResponse(walletsResponse);\n if (!unWallet) return;\n setCurrentUNWallet(unWallet);\n return;\n } catch (error) {\n return Promise.reject(error);\n }\n };\n\n getCardWalletData();\n\n }, [cardId]);\n\n return {\n currentUNWallet\n };\n\n};\n\nconst parseWalletsResponse = (walletsResponse: string): UNWallet | null => {\n try {\n const parsedWalletsResponse = JSON.parse(walletsResponse);\n const wallets = parsedWalletsResponse.wallets;\n\n if (!wallets) return null;\n if (wallets[0].code === UNWalletCode.Apple) {\n return ({ name: UNWalletName.Apple, code: UNWalletCode.Apple, status: wallets[0].status });\n } else {\n const googleWallet = wallets.filter((wallet: { name: UNWalletName }) => {\n return wallet.name === UNWalletName.Google;\n });\n if (!googleWallet) return null;\n return ({ name: UNWalletName.Google, code: UNWalletCode.Google, status: googleWallet[0].status });\n }\n } catch (error) {\n throw new Error('Error parsing wallet response');\n }\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,YAAY,EAAiBC,YAAY,QAAQ,oCAAoC;AAC9F,SAASC,OAAO,QAAQ,wCAAwC;AAChE,SAASC,sBAAsB,QAAQ,qDAAqD;AAM5F,OAAO,MAAMC,aAAa,GAAIC,MAAc,IAAK;EAC/C,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAGR,QAAQ,EAAY;EAElED,SAAS,CAAC,MAAM;IACd,MAAMU,mBAAmB,GAAG,MAAAA,CAAA,KAAY;MACtC,MAAMC,GAAG,GAAGP,OAAO,CAACQ,MAAM,EAAE;MAC5B,MAAMC,aAAa,GAAGT,OAAO,CAACU,gBAAgB,EAAE;MAChD,IAAI,CAACH,GAAG,IAAI,CAACE,aAAa,EAAE;MAE5B,MAAME,gBAAgB,GAAG,MAAMV,sBAAsB,CAACQ,aAAa,EAAEN,MAAM,EAAEI,GAAG,CAAC;MACjF,OAAOI,gBAAgB;IACzB,CAAC;IAED,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAAa;MACrC,MAAMC,yBAAyB,GAAGb,OAAO,CAACc,sBAAsB,EAAE;MAClE,IAAI,CAACD,yBAAyB,EAAE;MAChC,IAAI;QACF,MAAMF,gBAAgB,GAAG,MAAML,mBAAmB,EAAE;QACpD,MAAMS,eAAe,GAAG,MAAMF,yBAAyB,CAACG,gBAAgB,CAACC,IAAI,CAACC,SAAS,CAAC;UAAEC,UAAU,EAAER;QAAiB,CAAC,CAAC,CAAC;QAE1H,MAAMS,QAAyB,GAAGC,oBAAoB,CAACN,eAAe,CAAC;QACvE,IAAI,CAACK,QAAQ,EAAE;QACff,kBAAkB,CAACe,QAAQ,CAAC;QAC5B;MACF,CAAC,CAAC,OAAOE,KAAK,EAAE;QACd,OAAOC,OAAO,CAACC,MAAM,CAACF,KAAK,CAAC;MAC9B;IACF,CAAC;IAEDV,iBAAiB,EAAE;EAErB,CAAC,EAAE,CAACT,MAAM,CAAC,CAAC;EAEZ,OAAO;IACLC;EACF,CAAC;AAEH,CAAC;AAED,MAAMiB,oBAAoB,GAAIN,eAAuB,IAAuB;EAC1E,IAAI;IACF,MAAMU,qBAAqB,GAAGR,IAAI,CAACS,KAAK,CAACX,eAAe,CAAC;IACzD,MAAMY,OAAO,GAAGF,qBAAqB,CAACE,OAAO;IAE7C,IAAI,CAACA,OAAO,EAAE,OAAO,IAAI;IACzB,IAAIA,OAAO,CAAC,CAAC,CAAC,CAACC,IAAI,KAAK9B,YAAY,CAAC+B,KAAK,EAAE;MAC1C,OAAQ;QAAEC,IAAI,EAAE/B,YAAY,CAAC8B,KAAK;QAAED,IAAI,EAAE9B,YAAY,CAAC+B,KAAK;QAAEE,MAAM,EAAEJ,OAAO,CAAC,CAAC,CAAC,CAACI;MAAO,CAAC;IAC3F,CAAC,MAAM;MACL,MAAMC,YAAY,GAAGL,OAAO,CAACM,MAAM,CAAEC,MAA8B,IAAK;QACtE,OAAOA,MAAM,CAACJ,IAAI,KAAK/B,YAAY,CAACoC,MAAM;MAC5C,CAAC,CAAC;MACF,IAAI,CAACH,YAAY,EAAE,OAAO,IAAI;MAC9B,OAAQ;QAAEF,IAAI,EAAE/B,YAAY,CAACoC,MAAM;QAAEP,IAAI,EAAE9B,YAAY,CAACqC,MAAM;QAAEJ,MAAM,EAAEC,YAAY,CAAC,CAAC,CAAC,CAACD;MAAO,CAAC;IAClG;EACF,CAAC,CAAC,OAAOT,KAAK,EAAE;IACd,MAAM,IAAIc,KAAK,CAAC,+BAA+B,CAAC;EAClD;AACF,CAAC"}
1
+ {"version":3,"names":["useEffect","useState","UNWalletCode","UNWalletName","UnitSDK","getMobileWalletPayload","useCardWallet","cardId","currentUNWallet","setCurrentUNWallet","getEncryptedPayload","env","getEnv","customerToken","getCustomerToken","encryptedPayload","getCardWalletData","currentProvisioningModule","getPushProvisionModule","walletsResponse","launchGetWallets","JSON","stringify","encPayload","unWallet","parseWalletsResponse","error","Promise","reject","parsedWalletsResponse","parse","wallets","code","Apple","name","status","googleWallet","filter","wallet","Google","Error"],"sources":["useCardWallet.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { UNWalletCode, type UNWallet, UNWalletName } from '../../../types/shared/wallet.types';\nimport { UnitSDK } from '../../../unitSdkManager/UnitSdkManager';\nimport { getMobileWalletPayload } from '../../../networking/requests/UNWalletPayloadRequest';\n\nexport type CardToEncryptedPayload = {\n [cardId: string]: string;\n};\n\nexport const useCardWallet = (cardId: string) => {\n const [currentUNWallet, setCurrentUNWallet] = useState<UNWallet>();\n\n useEffect(() => {\n const getEncryptedPayload = async () => {\n const env = UnitSDK.getEnv();\n const customerToken = UnitSDK.getCustomerToken();\n if (!env || !customerToken) return;\n\n const encryptedPayload = await getMobileWalletPayload(customerToken, cardId, env);\n return encryptedPayload;\n };\n\n const getCardWalletData = async () => {\n const currentProvisioningModule = UnitSDK.getPushProvisionModule();\n if (!currentProvisioningModule) return;\n try {\n const encryptedPayload = await getEncryptedPayload();\n const walletsResponse = await currentProvisioningModule.launchGetWallets(JSON.stringify({ encPayload: encryptedPayload }));\n\n const unWallet: UNWallet | null = parseWalletsResponse(walletsResponse);\n if (!unWallet) return;\n setCurrentUNWallet(unWallet);\n return;\n } catch (error) {\n return Promise.reject(error);\n }\n };\n\n getCardWalletData();\n\n }, [cardId]);\n\n return {\n currentUNWallet\n };\n\n};\n\nconst parseWalletsResponse = (walletsResponse: string): UNWallet | null => {\n try {\n const parsedWalletsResponse = JSON.parse(walletsResponse);\n const wallets = parsedWalletsResponse.wallets;\n\n if (!wallets) return null;\n if (wallets[0].code === UNWalletCode.Apple) {\n return ({ name: UNWalletName.Apple, code: UNWalletCode.Apple, status: wallets[0].status });\n } else {\n const googleWallet = wallets.filter((wallet: { name: UNWalletName }) => {\n return wallet.name === UNWalletName.Google;\n });\n if (!googleWallet) return null;\n return ({ name: UNWalletName.Google, code: UNWalletCode.Google, status: googleWallet[0].status });\n }\n } catch (error) {\n throw new Error('Error parsing wallet response');\n }\n};\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,YAAY,EAAiBC,YAAY,QAAQ,oCAAoC;AAC9F,SAASC,OAAO,QAAQ,wCAAwC;AAChE,SAASC,sBAAsB,QAAQ,qDAAqD;AAM5F,OAAO,MAAMC,aAAa,GAAIC,MAAc,IAAK;EAC/C,MAAM,CAACC,eAAe,EAAEC,kBAAkB,CAAC,GAAGR,QAAQ,EAAY;EAElED,SAAS,CAAC,MAAM;IACd,MAAMU,mBAAmB,GAAG,MAAAA,CAAA,KAAY;MACtC,MAAMC,GAAG,GAAGP,OAAO,CAACQ,MAAM,EAAE;MAC5B,MAAMC,aAAa,GAAGT,OAAO,CAACU,gBAAgB,EAAE;MAChD,IAAI,CAACH,GAAG,IAAI,CAACE,aAAa,EAAE;MAE5B,MAAME,gBAAgB,GAAG,MAAMV,sBAAsB,CAACQ,aAAa,EAAEN,MAAM,EAAEI,GAAG,CAAC;MACjF,OAAOI,gBAAgB;IACzB,CAAC;IAED,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAAY;MACpC,MAAMC,yBAAyB,GAAGb,OAAO,CAACc,sBAAsB,EAAE;MAClE,IAAI,CAACD,yBAAyB,EAAE;MAChC,IAAI;QACF,MAAMF,gBAAgB,GAAG,MAAML,mBAAmB,EAAE;QACpD,MAAMS,eAAe,GAAG,MAAMF,yBAAyB,CAACG,gBAAgB,CAACC,IAAI,CAACC,SAAS,CAAC;UAAEC,UAAU,EAAER;QAAiB,CAAC,CAAC,CAAC;QAE1H,MAAMS,QAAyB,GAAGC,oBAAoB,CAACN,eAAe,CAAC;QACvE,IAAI,CAACK,QAAQ,EAAE;QACff,kBAAkB,CAACe,QAAQ,CAAC;QAC5B;MACF,CAAC,CAAC,OAAOE,KAAK,EAAE;QACd,OAAOC,OAAO,CAACC,MAAM,CAACF,KAAK,CAAC;MAC9B;IACF,CAAC;IAEDV,iBAAiB,EAAE;EAErB,CAAC,EAAE,CAACT,MAAM,CAAC,CAAC;EAEZ,OAAO;IACLC;EACF,CAAC;AAEH,CAAC;AAED,MAAMiB,oBAAoB,GAAIN,eAAuB,IAAsB;EACzE,IAAI;IACF,MAAMU,qBAAqB,GAAGR,IAAI,CAACS,KAAK,CAACX,eAAe,CAAC;IACzD,MAAMY,OAAO,GAAGF,qBAAqB,CAACE,OAAO;IAE7C,IAAI,CAACA,OAAO,EAAE,OAAO,IAAI;IACzB,IAAIA,OAAO,CAAC,CAAC,CAAC,CAACC,IAAI,KAAK9B,YAAY,CAAC+B,KAAK,EAAE;MAC1C,OAAQ;QAAEC,IAAI,EAAE/B,YAAY,CAAC8B,KAAK;QAAED,IAAI,EAAE9B,YAAY,CAAC+B,KAAK;QAAEE,MAAM,EAAEJ,OAAO,CAAC,CAAC,CAAC,CAACI;MAAO,CAAC;IAC3F,CAAC,MAAM;MACL,MAAMC,YAAY,GAAGL,OAAO,CAACM,MAAM,CAAEC,MAA8B,IAAK;QACtE,OAAOA,MAAM,CAACJ,IAAI,KAAK/B,YAAY,CAACoC,MAAM;MAC5C,CAAC,CAAC;MACF,IAAI,CAACH,YAAY,EAAE,OAAO,IAAI;MAC9B,OAAQ;QAAEF,IAAI,EAAE/B,YAAY,CAACoC,MAAM;QAAEP,IAAI,EAAE9B,YAAY,CAACqC,MAAM;QAAEJ,MAAM,EAAEC,YAAY,CAAC,CAAC,CAAC,CAACD;MAAO,CAAC;IAClG;EACF,CAAC,CAAC,OAAOT,KAAK,EAAE;IACd,MAAM,IAAIc,KAAK,CAAC,+BAA+B,CAAC;EAClD;AACF,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { Platform } from 'react-native';
2
+ const getUrl = source => {
3
+ if (Platform.OS == 'ios') {
4
+ return `url('${source.fileName}')`;
5
+ }
6
+
7
+ // Handle '/' of dir Relative path
8
+ let relativeDirPath = source.assetDirRelativePath;
9
+ if (source.assetDirRelativePath[-1] !== '/') {
10
+ relativeDirPath = `${source.assetDirRelativePath}/`;
11
+ }
12
+ if (source.assetDirRelativePath[0] !== '/') {
13
+ relativeDirPath = `/${source.assetDirRelativePath}`;
14
+ }
15
+ return `url('file:///android_asset${relativeDirPath}${source.fileName}')`;
16
+ };
17
+ const getFontFace = (fontFamily, fontWeight, sources) => {
18
+ const numOfSources = sources.length;
19
+ const sourcesString = sources.map((source, index) => {
20
+ const suffix = index === numOfSources - 1 ? ';' : ',';
21
+ const url = getUrl(source);
22
+ const format = source !== null && source !== void 0 && source.format ? `format('${source.format}')` : '';
23
+ return `${url} ${format}${suffix}`;
24
+ }).join('\n');
25
+ return `
26
+ @font-face {
27
+ font-family: '${fontFamily}';
28
+ src: ${sourcesString}
29
+ font-weight: ${fontWeight.valueOf()};
30
+ }
31
+ `;
32
+ };
33
+ export const getFontFacesString = fonts => {
34
+ if (!fonts) return '';
35
+ const fontFaces = [];
36
+
37
+ // Iterate over all the fonts and their variants
38
+ // create font-face for each variant
39
+ Object.entries(fonts).forEach(_ref => {
40
+ let [familyName, familyFonts] = _ref;
41
+ familyFonts.forEach(fontData => {
42
+ fontFaces.push(getFontFace(familyName, fontData.fontWeight, fontData.sources));
43
+ });
44
+ });
45
+
46
+ // Combine all the font faces into a single string
47
+ return fontFaces.join('\n');
48
+ };
49
+ //# sourceMappingURL=fontFaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","getUrl","source","OS","fileName","relativeDirPath","assetDirRelativePath","getFontFace","fontFamily","fontWeight","sources","numOfSources","length","sourcesString","map","index","suffix","url","format","join","valueOf","getFontFacesString","fonts","fontFaces","Object","entries","forEach","_ref","familyName","familyFonts","fontData","push"],"sources":["fontFaces.ts"],"sourcesContent":["import { Platform } from 'react-native';\nimport type { FontWeight, UNFonts, UNFontSource, UNFontData } from '../../types/shared/fonts.types';\n\nconst getUrl = (source: UNFontSource): string => {\n if (Platform.OS == 'ios') {\n return `url('${source.fileName}')`;\n }\n\n // Handle '/' of dir Relative path\n let relativeDirPath = source.assetDirRelativePath;\n if (source.assetDirRelativePath[-1] !== '/') {\n relativeDirPath = `${source.assetDirRelativePath}/`;\n }\n if (source.assetDirRelativePath[0] !== '/') {\n relativeDirPath = `/${source.assetDirRelativePath}`;\n }\n\n return `url('file:///android_asset${relativeDirPath}${source.fileName}')`;\n};\nconst getFontFace = (fontFamily: string, fontWeight: FontWeight, sources: UNFontSource[]): string => {\n const numOfSources = sources.length;\n\n const sourcesString = sources\n .map((source, index) => {\n const suffix = index === numOfSources - 1 ? ';' : ',';\n const url = getUrl(source);\n const format = source?.format ? `format('${source.format}')` : '';\n return `${url} ${format}${suffix}`;\n })\n .join('\\n');\n\n return `\n @font-face {\n font-family: '${fontFamily}';\n src: ${sourcesString}\n font-weight: ${fontWeight.valueOf()};\n }\n `;\n};\n\nexport const getFontFacesString = (fonts?: UNFonts): string => {\n if (!fonts) return '';\n\n const fontFaces: string[] = [];\n\n // Iterate over all the fonts and their variants\n // create font-face for each variant\n Object.entries(fonts).forEach(([familyName, familyFonts]) => {\n familyFonts.forEach((fontData: UNFontData) => {\n fontFaces.push(getFontFace(familyName, fontData.fontWeight, fontData.sources));\n });\n });\n\n // Combine all the font faces into a single string\n return fontFaces.join('\\n');\n};\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAGvC,MAAMC,MAAM,GAAIC,MAAoB,IAAa;EAC/C,IAAIF,QAAQ,CAACG,EAAE,IAAI,KAAK,EAAE;IACxB,OAAQ,QAAOD,MAAM,CAACE,QAAS,IAAG;EACpC;;EAEA;EACA,IAAIC,eAAe,GAAGH,MAAM,CAACI,oBAAoB;EACjD,IAAIJ,MAAM,CAACI,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC3CD,eAAe,GAAI,GAAEH,MAAM,CAACI,oBAAqB,GAAE;EACrD;EACA,IAAIJ,MAAM,CAACI,oBAAoB,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAC1CD,eAAe,GAAI,IAAGH,MAAM,CAACI,oBAAqB,EAAC;EACrD;EAEA,OAAQ,6BAA4BD,eAAgB,GAAEH,MAAM,CAACE,QAAS,IAAG;AAC3E,CAAC;AACD,MAAMG,WAAW,GAAGA,CAACC,UAAkB,EAAEC,UAAsB,EAAEC,OAAuB,KAAa;EACnG,MAAMC,YAAY,GAAGD,OAAO,CAACE,MAAM;EAEnC,MAAMC,aAAa,GAAGH,OAAO,CAC1BI,GAAG,CAAC,CAACZ,MAAM,EAAEa,KAAK,KAAK;IACtB,MAAMC,MAAM,GAAGD,KAAK,KAAKJ,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;IACrD,MAAMM,GAAG,GAAGhB,MAAM,CAACC,MAAM,CAAC;IAC1B,MAAMgB,MAAM,GAAGhB,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEgB,MAAM,GAAI,WAAUhB,MAAM,CAACgB,MAAO,IAAG,GAAG,EAAE;IACjE,OAAQ,GAAED,GAAI,IAAGC,MAAO,GAAEF,MAAO,EAAC;EACpC,CAAC,CAAC,CACDG,IAAI,CAAC,IAAI,CAAC;EAEb,OAAQ;AACV;AACA,sBAAsBX,UAAW;AACjC,aAAaK,aAAc;AAC3B,qBAAqBJ,UAAU,CAACW,OAAO,EAAG;AAC1C;AACA,GAAG;AACH,CAAC;AAED,OAAO,MAAMC,kBAAkB,GAAIC,KAAe,IAAa;EAC7D,IAAI,CAACA,KAAK,EAAE,OAAO,EAAE;EAErB,MAAMC,SAAmB,GAAG,EAAE;;EAE9B;EACA;EACAC,MAAM,CAACC,OAAO,CAACH,KAAK,CAAC,CAACI,OAAO,CAACC,IAAA,IAA+B;IAAA,IAA9B,CAACC,UAAU,EAAEC,WAAW,CAAC,GAAAF,IAAA;IACtDE,WAAW,CAACH,OAAO,CAAEI,QAAoB,IAAK;MAC5CP,SAAS,CAACQ,IAAI,CAACxB,WAAW,CAACqB,UAAU,EAAEE,QAAQ,CAACrB,UAAU,EAAEqB,QAAQ,CAACpB,OAAO,CAAC,CAAC;IAChF,CAAC,CAAC;EACJ,CAAC,CAAC;;EAEF;EACA,OAAOa,SAAS,CAACJ,IAAI,CAAC,IAAI,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { FontWeight } from '../types/shared';
2
+ import { UnitSDK } from '../unitSdkManager/UnitSdkManager';
3
+ const getFontWeightName = (familyFonts, fontWeight) => {
4
+ /**
5
+ * Given family variants and the required weight
6
+ * Return the closet font that defined by the client.
7
+ */
8
+ if (!fontWeight || fontWeight === 'normal') return 'Regular';
9
+ if (fontWeight === 'bold') return 'Bold';
10
+ const fontWeightNumber = Number(fontWeight);
11
+
12
+ // Select the closet variant
13
+ let selectedFontWeight = FontWeight.Regular.valueOf();
14
+ let minDistance = 1000;
15
+ familyFonts.forEach(fontData => {
16
+ const currDistance = Math.abs(fontData.fontWeight - fontWeightNumber);
17
+ if (currDistance < minDistance) {
18
+ minDistance = currDistance;
19
+ selectedFontWeight = fontData.fontWeight.valueOf();
20
+ }
21
+ });
22
+
23
+ // FontWeight to String
24
+ switch (selectedFontWeight) {
25
+ case FontWeight.Thin:
26
+ return 'Thin';
27
+ case FontWeight.ExtraLight:
28
+ return 'ExtraLight';
29
+ case FontWeight.Light:
30
+ return 'Light';
31
+ case FontWeight.Regular:
32
+ return 'Regular';
33
+ case FontWeight.Medium:
34
+ return 'Medium';
35
+ case FontWeight.SemiBold:
36
+ return 'SemiBold';
37
+ case FontWeight.Bold:
38
+ return 'Bold';
39
+ case FontWeight.ExtraBold:
40
+ return 'ExtraBold';
41
+ case FontWeight.Black:
42
+ return 'Black';
43
+ default:
44
+ return 'Regular';
45
+ }
46
+ };
47
+ export const getFontName = (fontFamily, fontWeight) => {
48
+ /*
49
+ * Get the font family name and the font weight name from the THEME object.
50
+ * Then, return a possible font.
51
+ */
52
+
53
+ const fontsInApp = UnitSDK.getFonts();
54
+ if (!fontsInApp) {
55
+ throw new Error('Fonts are not found in the app');
56
+ }
57
+ const familyFonts = fontsInApp[fontFamily];
58
+ if (!familyFonts) {
59
+ throw new Error(`Font family ${fontFamily} not found in the app's fonts`);
60
+ }
61
+ const fontWeightName = getFontWeightName(familyFonts, fontWeight);
62
+ return `${fontFamily}-${fontWeightName}`;
63
+ };
64
+ //# sourceMappingURL=fonts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FontWeight","UnitSDK","getFontWeightName","familyFonts","fontWeight","fontWeightNumber","Number","selectedFontWeight","Regular","valueOf","minDistance","forEach","fontData","currDistance","Math","abs","Thin","ExtraLight","Light","Medium","SemiBold","Bold","ExtraBold","Black","getFontName","fontFamily","fontsInApp","getFonts","Error","fontWeightName"],"sources":["fonts.ts"],"sourcesContent":["import { FontWeight, UNFontData } from '../types/shared';\nimport { UnitSDK } from '../unitSdkManager/UnitSdkManager';\n\nconst getFontWeightName = (familyFonts: UNFontData[], fontWeight?: number | string) => {\n /**\n * Given family variants and the required weight\n * Return the closet font that defined by the client.\n */\n if (!fontWeight || fontWeight === 'normal') return 'Regular';\n\n if (fontWeight === 'bold') return 'Bold';\n\n const fontWeightNumber = Number(fontWeight);\n\n // Select the closet variant\n let selectedFontWeight = FontWeight.Regular.valueOf();\n let minDistance = 1000;\n\n familyFonts.forEach((fontData: UNFontData) => {\n const currDistance = Math.abs(fontData.fontWeight - fontWeightNumber);\n if (currDistance < minDistance) {\n minDistance = currDistance;\n selectedFontWeight = fontData.fontWeight.valueOf();\n }\n });\n\n // FontWeight to String\n switch (selectedFontWeight) {\n case FontWeight.Thin:\n return 'Thin';\n case FontWeight.ExtraLight:\n return 'ExtraLight';\n case FontWeight.Light:\n return 'Light';\n case FontWeight.Regular:\n return 'Regular';\n case FontWeight.Medium:\n return 'Medium';\n case FontWeight.SemiBold:\n return 'SemiBold';\n case FontWeight.Bold:\n return 'Bold';\n case FontWeight.ExtraBold:\n return 'ExtraBold';\n case FontWeight.Black:\n return 'Black';\n default:\n return 'Regular';\n }\n};\n\nexport const getFontName = (fontFamily: string, fontWeight: number | string): string => {\n /*\n * Get the font family name and the font weight name from the THEME object.\n * Then, return a possible font.\n */\n\n const fontsInApp = UnitSDK.getFonts();\n if (!fontsInApp) {\n throw new Error('Fonts are not found in the app');\n }\n\n const familyFonts = fontsInApp[fontFamily];\n if (!familyFonts) {\n throw new Error(`Font family ${fontFamily} not found in the app's fonts`);\n }\n\n const fontWeightName = getFontWeightName(familyFonts, fontWeight);\n return `${fontFamily}-${fontWeightName}`;\n};\n"],"mappings":"AAAA,SAASA,UAAU,QAAoB,iBAAiB;AACxD,SAASC,OAAO,QAAQ,kCAAkC;AAE1D,MAAMC,iBAAiB,GAAGA,CAACC,WAAyB,EAAEC,UAA4B,KAAK;EACrF;AACF;AACA;AACA;EACE,IAAI,CAACA,UAAU,IAAIA,UAAU,KAAK,QAAQ,EAAE,OAAO,SAAS;EAE5D,IAAIA,UAAU,KAAK,MAAM,EAAE,OAAO,MAAM;EAExC,MAAMC,gBAAgB,GAAGC,MAAM,CAACF,UAAU,CAAC;;EAE3C;EACA,IAAIG,kBAAkB,GAAGP,UAAU,CAACQ,OAAO,CAACC,OAAO,EAAE;EACrD,IAAIC,WAAW,GAAG,IAAI;EAEtBP,WAAW,CAACQ,OAAO,CAAEC,QAAoB,IAAK;IAC5C,MAAMC,YAAY,GAAGC,IAAI,CAACC,GAAG,CAACH,QAAQ,CAACR,UAAU,GAAGC,gBAAgB,CAAC;IACrE,IAAIQ,YAAY,GAAGH,WAAW,EAAE;MAC9BA,WAAW,GAAGG,YAAY;MAC1BN,kBAAkB,GAAGK,QAAQ,CAACR,UAAU,CAACK,OAAO,EAAE;IACpD;EACF,CAAC,CAAC;;EAEF;EACA,QAAQF,kBAAkB;IACxB,KAAKP,UAAU,CAACgB,IAAI;MAClB,OAAO,MAAM;IACf,KAAMhB,UAAU,CAACiB,UAAU;MACzB,OAAO,YAAY;IACrB,KAAKjB,UAAU,CAACkB,KAAK;MACnB,OAAO,OAAO;IAChB,KAAKlB,UAAU,CAACQ,OAAO;MACrB,OAAO,SAAS;IAClB,KAAKR,UAAU,CAACmB,MAAM;MACpB,OAAO,QAAQ;IACjB,KAAKnB,UAAU,CAACoB,QAAQ;MACtB,OAAO,UAAU;IACnB,KAAKpB,UAAU,CAACqB,IAAI;MAClB,OAAO,MAAM;IACf,KAAKrB,UAAU,CAACsB,SAAS;MACvB,OAAO,WAAW;IACpB,KAAKtB,UAAU,CAACuB,KAAK;MACnB,OAAO,OAAO;IAChB;MACE,OAAO,SAAS;EAAC;AAEvB,CAAC;AAED,OAAO,MAAMC,WAAW,GAAGA,CAACC,UAAkB,EAAErB,UAA2B,KAAa;EACtF;AACF;AACA;AACA;;EAEE,MAAMsB,UAAU,GAAGzB,OAAO,CAAC0B,QAAQ,EAAE;EACrC,IAAI,CAACD,UAAU,EAAE;IACf,MAAM,IAAIE,KAAK,CAAC,gCAAgC,CAAC;EACnD;EAEA,MAAMzB,WAAW,GAAGuB,UAAU,CAACD,UAAU,CAAC;EAC1C,IAAI,CAACtB,WAAW,EAAE;IAChB,MAAM,IAAIyB,KAAK,CAAE,eAAcH,UAAW,+BAA8B,CAAC;EAC3E;EAEA,MAAMI,cAAc,GAAG3B,iBAAiB,CAACC,WAAW,EAAEC,UAAU,CAAC;EACjE,OAAQ,GAAEqB,UAAW,IAAGI,cAAe,EAAC;AAC1C,CAAC"}
@@ -0,0 +1,13 @@
1
+ export let FontWeight;
2
+ (function (FontWeight) {
3
+ FontWeight[FontWeight["Thin"] = 100] = "Thin";
4
+ FontWeight[FontWeight["ExtraLight"] = 200] = "ExtraLight";
5
+ FontWeight[FontWeight["Light"] = 300] = "Light";
6
+ FontWeight[FontWeight["Regular"] = 400] = "Regular";
7
+ FontWeight[FontWeight["Medium"] = 500] = "Medium";
8
+ FontWeight[FontWeight["SemiBold"] = 600] = "SemiBold";
9
+ FontWeight[FontWeight["Bold"] = 700] = "Bold";
10
+ FontWeight[FontWeight["ExtraBold"] = 800] = "ExtraBold";
11
+ FontWeight[FontWeight["Black"] = 900] = "Black";
12
+ })(FontWeight || (FontWeight = {}));
13
+ //# sourceMappingURL=fonts.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FontWeight"],"sources":["fonts.types.ts"],"sourcesContent":["export type UNFonts = {\n [fontFamily: string]: UNFontData[];\n}\n\nexport type UNFontData = {\n // Using 'field' instead of 'key' to account for potential variants unrelated to font weight.\n fontWeight: FontWeight;\n sources: UNFontSource[];\n}\n\nexport type UNFontSource = {\n // using the fileName for iOS and relative path for Android\n fileName: string;\n assetDirRelativePath: string;\n format?: string;\n}\n\nexport enum FontWeight {\n Thin = 100,\n ExtraLight = 200,\n Light = 300,\n Regular = 400,\n Medium = 500,\n SemiBold = 600,\n Bold = 700,\n ExtraBold = 800,\n Black = 900\n}\n"],"mappings":"AAiBA,WAAYA,UAAU;AAUrB,WAVWA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;EAAVA,UAAU,CAAVA,UAAU;AAAA,GAAVA,UAAU,KAAVA,UAAU"}
@@ -5,4 +5,6 @@ export * from './achCredit.types';
5
5
  export * from './payments.types';
6
6
  export * from './account.types';
7
7
  export * from './checkDeposit.types';
8
+ export * from './activity.types';
9
+ export * from './fonts.types';
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './bookPayment.types';\nexport * from './card.types';\nexport * from './onLoadResponse.types';\nexport * from './achCredit.types';\nexport * from './payments.types';\nexport * from './account.types';\nexport * from './checkDeposit.types';\n"],"mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,cAAc;AAC5B,cAAc,wBAAwB;AACtC,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,iBAAiB;AAC/B,cAAc,sBAAsB"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './bookPayment.types';\nexport * from './card.types';\nexport * from './onLoadResponse.types';\nexport * from './achCredit.types';\nexport * from './payments.types';\nexport * from './account.types';\nexport * from './checkDeposit.types';\nexport * from './activity.types';\nexport * from './fonts.types';\n"],"mappings":"AAAA,cAAc,qBAAqB;AACnC,cAAc,cAAc;AAC5B,cAAc,wBAAwB;AACtC,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,iBAAiB;AAC/B,cAAc,sBAAsB;AACpC,cAAc,kBAAkB;AAChC,cAAc,eAAe"}
@@ -20,14 +20,16 @@ _defineProperty(UnitSDK, "env", void 0);
20
20
  _defineProperty(UnitSDK, "customerToken", void 0);
21
21
  _defineProperty(UnitSDK, "theme", void 0);
22
22
  _defineProperty(UnitSDK, "language", void 0);
23
+ _defineProperty(UnitSDK, "fonts", void 0);
23
24
  _defineProperty(UnitSDK, "signedNonce", void 0);
24
25
  _defineProperty(UnitSDK, "pushProvisionModule", void 0);
25
26
  _defineProperty(UnitSDK, "ui", void 0);
26
- _defineProperty(UnitSDK, "init", async (env, theme, language) => {
27
+ _defineProperty(UnitSDK, "init", async (env, theme, language, fonts) => {
27
28
  try {
28
29
  UnitSDK.env = env;
29
30
  UnitSDK.theme = theme;
30
31
  UnitSDK.language = language;
32
+ UnitSDK.fonts = fonts;
31
33
  UnitSDK.ui = new UnitUiManager();
32
34
  await fetchUnitScript();
33
35
  EventBus.Instance.event(SDKMessage.IS_SDK_INITIALIZED, {});
@@ -53,6 +55,9 @@ _defineProperty(UnitSDK, "getTheme", () => {
53
55
  _defineProperty(UnitSDK, "getLanguage", () => {
54
56
  return UnitSDK.language;
55
57
  });
58
+ _defineProperty(UnitSDK, "getFonts", () => {
59
+ return UnitSDK.fonts;
60
+ });
56
61
  _defineProperty(UnitSDK, "getSignedNonce", () => {
57
62
  return UnitSDK.signedNonce;
58
63
  });
@@ -1 +1 @@
1
- {"version":3,"names":["EventBus","SDKMessage","fetchUnitScript","UnitUiManager","UNEnvironment","UNIT_WEB_VERSION","UNIT_SCRIPT_URL","sandbox","production","UnitSDK","_defineProperty","env","theme","language","ui","Instance","event","IS_SDK_INITIALIZED","e","console","log","pushProvisionModule","signedNonce","customerToken"],"sources":["UnitSdkManager.ts"],"sourcesContent":["import type { NativeModules } from 'react-native';\nimport EventBus from '../helpers/EventBus';\nimport { SDKMessage } from '../messages/nativeMessages/sdkMessage';\nimport { fetchUnitScript } from './UnitSdk.api';\nimport { UnitUiManager } from './unitUiManager/unitUiManager';\n\nexport enum UNEnvironment {\n sandbox = 'sandbox',\n production = 'production'\n}\n\nconst UNIT_WEB_VERSION = '1';\n\nexport const UNIT_SCRIPT_URL = {\n [UNEnvironment.sandbox]: `https://ui.s.unit.sh/release/${UNIT_WEB_VERSION}/components.js`,\n [UNEnvironment.production]: `https://ui.unit.co/release/${UNIT_WEB_VERSION}/components.js`\n};\nexport class UnitSDK {\n protected static env?: UNEnvironment;\n protected static customerToken?: string;\n protected static theme?: string;\n protected static language?: string;\n\n protected static signedNonce?: string;\n protected static pushProvisionModule?: typeof NativeModules;\n\n public static ui: UnitUiManager;\n\n public static init = async (env: UNEnvironment, theme?: string, language?: string) => {\n try {\n this.env = env;\n this.theme = theme;\n this.language = language;\n this.ui = new UnitUiManager();\n await fetchUnitScript();\n EventBus.Instance.event(SDKMessage.IS_SDK_INITIALIZED, {});\n } catch (e) {\n console.log(e);\n }\n };\n\n public static setPushProvisioningModule = (pushProvisionModule: typeof NativeModules) => {\n this.pushProvisionModule = pushProvisionModule;\n };\n\n public static getPushProvisionModule = () => {\n return this.pushProvisionModule;\n };\n\n public static setSignedNonce = (signedNonce: string) => {\n this.signedNonce = signedNonce;\n };\n\n public static getEnv = () => {\n return this.env;\n };\n\n public static getTheme = () => {\n return this.theme;\n };\n\n public static getLanguage = () => {\n return this.language;\n };\n\n public static getSignedNonce = () => {\n return this.signedNonce;\n };\n\n public static setCustomerToken = (customerToken: string) => {\n this.customerToken = customerToken;\n };\n\n public static getCustomerToken = () => {\n return this.customerToken;\n };\n}\n"],"mappings":";;;AACA,OAAOA,QAAQ,MAAM,qBAAqB;AAC1C,SAASC,UAAU,QAAQ,uCAAuC;AAClE,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,aAAa,QAAQ,+BAA+B;AAE7D,WAAYC,aAAa;AAGxB,WAHWA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,KAAbA,aAAa;AAKzB,MAAMC,gBAAgB,GAAG,GAAG;AAE5B,OAAO,MAAMC,eAAe,GAAG;EAC7B,CAACF,aAAa,CAACG,OAAO,GAAI,gCAA+BF,gBAAiB,gBAAe;EACzF,CAACD,aAAa,CAACI,UAAU,GAAI,8BAA6BH,gBAAiB;AAC7E,CAAC;AACD,OAAO,MAAMI,OAAO,CAAC;AA2DpBC,eAAA,CA3DYD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO,UAWG,OAAOE,GAAkB,EAAEC,KAAc,EAAEC,QAAiB,KAAK;EACpF,IAAI;IAZKJ,OAAO,CAaTE,GAAG,GAAGA,GAAG;IAbPF,OAAO,CAcTG,KAAK,GAAGA,KAAK;IAdXH,OAAO,CAeTI,QAAQ,GAAGA,QAAQ;IAfjBJ,OAAO,CAgBTK,EAAE,GAAG,IAAIX,aAAa,EAAE;IAC7B,MAAMD,eAAe,EAAE;IACvBF,QAAQ,CAACe,QAAQ,CAACC,KAAK,CAACf,UAAU,CAACgB,kBAAkB,EAAE,CAAC,CAAC,CAAC;EAC5D,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVC,OAAO,CAACC,GAAG,CAACF,CAAC,CAAC;EAChB;AACF,CAAC;AAAAR,eAAA,CAtBUD,OAAO,+BAwByBY,mBAAyC,IAAK;EAxB9EZ,OAAO,CAyBXY,mBAAmB,GAAGA,mBAAmB;AAChD,CAAC;AAAAX,eAAA,CA1BUD,OAAO,4BA4BqB,MAAM;EAC3C,OA7BSA,OAAO,CA6BJY,mBAAmB;AACjC,CAAC;AAAAX,eAAA,CA9BUD,OAAO,oBAgCca,WAAmB,IAAK;EAhC7Cb,OAAO,CAiCXa,WAAW,GAAGA,WAAW;AAChC,CAAC;AAAAZ,eAAA,CAlCUD,OAAO,YAoCK,MAAM;EAC3B,OArCSA,OAAO,CAqCJE,GAAG;AACjB,CAAC;AAAAD,eAAA,CAtCUD,OAAO,cAwCO,MAAM;EAC7B,OAzCSA,OAAO,CAyCJG,KAAK;AACnB,CAAC;AAAAF,eAAA,CA1CUD,OAAO,iBA4CU,MAAM;EAChC,OA7CSA,OAAO,CA6CJI,QAAQ;AACtB,CAAC;AAAAH,eAAA,CA9CUD,OAAO,oBAgDa,MAAM;EACnC,OAjDSA,OAAO,CAiDJa,WAAW;AACzB,CAAC;AAAAZ,eAAA,CAlDUD,OAAO,sBAoDgBc,aAAqB,IAAK;EApDjDd,OAAO,CAqDXc,aAAa,GAAGA,aAAa;AACpC,CAAC;AAAAb,eAAA,CAtDUD,OAAO,sBAwDe,MAAM;EACrC,OAzDSA,OAAO,CAyDJc,aAAa;AAC3B,CAAC"}
1
+ {"version":3,"names":["EventBus","SDKMessage","fetchUnitScript","UnitUiManager","UNEnvironment","UNIT_WEB_VERSION","UNIT_SCRIPT_URL","sandbox","production","UnitSDK","_defineProperty","env","theme","language","fonts","ui","Instance","event","IS_SDK_INITIALIZED","e","console","log","pushProvisionModule","signedNonce","customerToken"],"sources":["UnitSdkManager.ts"],"sourcesContent":["import type { NativeModules } from 'react-native';\nimport EventBus from '../helpers/EventBus';\nimport { SDKMessage } from '../messages/nativeMessages/sdkMessage';\nimport { fetchUnitScript } from './UnitSdk.api';\nimport { UnitUiManager } from './unitUiManager/unitUiManager';\nimport type { UNFonts } from '../types/shared/fonts.types';\n\nexport enum UNEnvironment {\n sandbox = 'sandbox',\n production = 'production'\n}\n\nconst UNIT_WEB_VERSION = '1';\n\nexport const UNIT_SCRIPT_URL = {\n [UNEnvironment.sandbox]: `https://ui.s.unit.sh/release/${UNIT_WEB_VERSION}/components.js`,\n [UNEnvironment.production]: `https://ui.unit.co/release/${UNIT_WEB_VERSION}/components.js`\n};\nexport class UnitSDK {\n protected static env?: UNEnvironment;\n protected static customerToken?: string;\n protected static theme?: string;\n protected static language?: string;\n protected static fonts?: UNFonts;\n\n protected static signedNonce?: string;\n protected static pushProvisionModule?: typeof NativeModules;\n\n public static ui: UnitUiManager;\n\n public static init = async (env: UNEnvironment, theme?: string, language?: string, fonts?: UNFonts) => {\n try {\n this.env = env;\n this.theme = theme;\n this.language = language;\n this.fonts = fonts;\n\n this.ui = new UnitUiManager();\n await fetchUnitScript();\n EventBus.Instance.event(SDKMessage.IS_SDK_INITIALIZED, {});\n } catch (e) {\n console.log(e);\n }\n };\n\n public static setPushProvisioningModule = (pushProvisionModule: typeof NativeModules) => {\n this.pushProvisionModule = pushProvisionModule;\n };\n\n public static getPushProvisionModule = () => {\n return this.pushProvisionModule;\n };\n\n public static setSignedNonce = (signedNonce: string) => {\n this.signedNonce = signedNonce;\n };\n\n public static getEnv = () => {\n return this.env;\n };\n\n public static getTheme = () => {\n return this.theme;\n };\n\n public static getLanguage = () => {\n return this.language;\n };\n\n public static getFonts = () => {\n return this.fonts;\n };\n\n public static getSignedNonce = () => {\n return this.signedNonce;\n };\n\n public static setCustomerToken = (customerToken: string) => {\n this.customerToken = customerToken;\n };\n\n public static getCustomerToken = () => {\n return this.customerToken;\n };\n}\n"],"mappings":";;;AACA,OAAOA,QAAQ,MAAM,qBAAqB;AAC1C,SAASC,UAAU,QAAQ,uCAAuC;AAClE,SAASC,eAAe,QAAQ,eAAe;AAC/C,SAASC,aAAa,QAAQ,+BAA+B;AAG7D,WAAYC,aAAa;AAGxB,WAHWA,aAAa;EAAbA,aAAa;EAAbA,aAAa;AAAA,GAAbA,aAAa,KAAbA,aAAa;AAKzB,MAAMC,gBAAgB,GAAG,GAAG;AAE5B,OAAO,MAAMC,eAAe,GAAG;EAC7B,CAACF,aAAa,CAACG,OAAO,GAAI,gCAA+BF,gBAAiB,gBAAe;EACzF,CAACD,aAAa,CAACI,UAAU,GAAI,8BAA6BH,gBAAiB;AAC7E,CAAC;AACD,OAAO,MAAMI,OAAO,CAAC;AAkEpBC,eAAA,CAlEYD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO;AAAAC,eAAA,CAAPD,OAAO,UAYG,OAAOE,GAAkB,EAAEC,KAAc,EAAEC,QAAiB,EAAEC,KAAe,KAAK;EACrG,IAAI;IAbKL,OAAO,CAcTE,GAAG,GAAGA,GAAG;IAdPF,OAAO,CAeTG,KAAK,GAAGA,KAAK;IAfXH,OAAO,CAgBTI,QAAQ,GAAGA,QAAQ;IAhBjBJ,OAAO,CAiBTK,KAAK,GAAGA,KAAK;IAjBXL,OAAO,CAmBTM,EAAE,GAAG,IAAIZ,aAAa,EAAE;IAC7B,MAAMD,eAAe,EAAE;IACvBF,QAAQ,CAACgB,QAAQ,CAACC,KAAK,CAAChB,UAAU,CAACiB,kBAAkB,EAAE,CAAC,CAAC,CAAC;EAC5D,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVC,OAAO,CAACC,GAAG,CAACF,CAAC,CAAC;EAChB;AACF,CAAC;AAAAT,eAAA,CAzBUD,OAAO,+BA2ByBa,mBAAyC,IAAK;EA3B9Eb,OAAO,CA4BXa,mBAAmB,GAAGA,mBAAmB;AAChD,CAAC;AAAAZ,eAAA,CA7BUD,OAAO,4BA+BqB,MAAM;EAC3C,OAhCSA,OAAO,CAgCJa,mBAAmB;AACjC,CAAC;AAAAZ,eAAA,CAjCUD,OAAO,oBAmCcc,WAAmB,IAAK;EAnC7Cd,OAAO,CAoCXc,WAAW,GAAGA,WAAW;AAChC,CAAC;AAAAb,eAAA,CArCUD,OAAO,YAuCK,MAAM;EAC3B,OAxCSA,OAAO,CAwCJE,GAAG;AACjB,CAAC;AAAAD,eAAA,CAzCUD,OAAO,cA2CO,MAAM;EAC7B,OA5CSA,OAAO,CA4CJG,KAAK;AACnB,CAAC;AAAAF,eAAA,CA7CUD,OAAO,iBA+CU,MAAM;EAChC,OAhDSA,OAAO,CAgDJI,QAAQ;AACtB,CAAC;AAAAH,eAAA,CAjDUD,OAAO,cAmDO,MAAM;EAC7B,OApDSA,OAAO,CAoDJK,KAAK;AACnB,CAAC;AAAAJ,eAAA,CArDUD,OAAO,oBAuDa,MAAM;EACnC,OAxDSA,OAAO,CAwDJc,WAAW;AACzB,CAAC;AAAAb,eAAA,CAzDUD,OAAO,sBA2DgBe,aAAqB,IAAK;EA3DjDf,OAAO,CA4DXe,aAAa,GAAGA,aAAa;AACpC,CAAC;AAAAd,eAAA,CA7DUD,OAAO,sBA+De,MAAM;EACrC,OAhESA,OAAO,CAgEJe,aAAa;AAC3B,CAAC"}