diff --git a/sample/asset-manifest.json b/sample/asset-manifest.json index 5555e884..ee9bf4cd 100644 --- a/sample/asset-manifest.json +++ b/sample/asset-manifest.json @@ -1,14 +1,14 @@ { "files": { "main.css": "./static/css/main.c9ba7f02.chunk.css", - "main.js": "./static/js/main.91c94cc2.chunk.js", - "main.js.map": "./static/js/main.91c94cc2.chunk.js.map", + "main.js": "./static/js/main.9e9148d9.chunk.js", + "main.js.map": "./static/js/main.9e9148d9.chunk.js.map", "runtime-main.js": "./static/js/runtime-main.1c088e3e.js", "runtime-main.js.map": "./static/js/runtime-main.1c088e3e.js.map", "static/js/2.bf779e4d.chunk.js": "./static/js/2.bf779e4d.chunk.js", "static/js/2.bf779e4d.chunk.js.map": "./static/js/2.bf779e4d.chunk.js.map", "index.html": "./index.html", - "precache-manifest.44a3eb8972e6b85304185fbd1da073c6.js": "./precache-manifest.44a3eb8972e6b85304185fbd1da073c6.js", + "precache-manifest.fdd6a9c6ae541605e71cf6087a88e138.js": "./precache-manifest.fdd6a9c6ae541605e71cf6087a88e138.js", "service-worker.js": "./service-worker.js", "static/css/main.c9ba7f02.chunk.css.map": "./static/css/main.c9ba7f02.chunk.css.map", "static/js/2.bf779e4d.chunk.js.LICENSE.txt": "./static/js/2.bf779e4d.chunk.js.LICENSE.txt", @@ -20,6 +20,6 @@ "static/js/runtime-main.1c088e3e.js", "static/js/2.bf779e4d.chunk.js", "static/css/main.c9ba7f02.chunk.css", - "static/js/main.91c94cc2.chunk.js" + "static/js/main.9e9148d9.chunk.js" ] } \ No newline at end of file diff --git a/sample/index.html b/sample/index.html index 21924907..422c16be 100644 --- a/sample/index.html +++ b/sample/index.html @@ -1 +1 @@ -React App
\ No newline at end of file +React App
\ No newline at end of file diff --git a/sample/js-miniapp-sample.zip b/sample/js-miniapp-sample.zip index 1f6ecb23..42611b40 100644 Binary files a/sample/js-miniapp-sample.zip and b/sample/js-miniapp-sample.zip differ diff --git a/sample/precache-manifest.44a3eb8972e6b85304185fbd1da073c6.js b/sample/precache-manifest.fdd6a9c6ae541605e71cf6087a88e138.js similarity index 81% rename from sample/precache-manifest.44a3eb8972e6b85304185fbd1da073c6.js rename to sample/precache-manifest.fdd6a9c6ae541605e71cf6087a88e138.js index 8214fb66..9252f121 100644 --- a/sample/precache-manifest.44a3eb8972e6b85304185fbd1da073c6.js +++ b/sample/precache-manifest.fdd6a9c6ae541605e71cf6087a88e138.js @@ -1,10 +1,10 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ { - "revision": "273f6e65cc899671de778f339070a7a9", + "revision": "8cf983a95bce227a21616d9d8fb14a1e", "url": "./index.html" }, { - "revision": "9d11178837ab53d25a8e", + "revision": "6b053a1813b92e4f0fff", "url": "./static/css/main.c9ba7f02.chunk.css" }, { @@ -16,8 +16,8 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([ "url": "./static/js/2.bf779e4d.chunk.js.LICENSE.txt" }, { - "revision": "9d11178837ab53d25a8e", - "url": "./static/js/main.91c94cc2.chunk.js" + "revision": "6b053a1813b92e4f0fff", + "url": "./static/js/main.9e9148d9.chunk.js" }, { "revision": "ad5018763faec8908a97", diff --git a/sample/service-worker.js b/sample/service-worker.js index 73ebfc6e..2d39c006 100644 --- a/sample/service-worker.js +++ b/sample/service-worker.js @@ -14,7 +14,7 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "./precache-manifest.44a3eb8972e6b85304185fbd1da073c6.js" + "./precache-manifest.fdd6a9c6ae541605e71cf6087a88e138.js" ); self.addEventListener('message', (event) => { diff --git a/sample/static/js/main.91c94cc2.chunk.js.map b/sample/static/js/main.91c94cc2.chunk.js.map deleted file mode 100644 index a6499e2d..00000000 --- a/sample/static/js/main.91c94cc2.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["assets/images/gif/road.gif","assets/images/gif/road_infinite.gif","assets/images/webp/road_webp.gif","pages/helper.js","components/GreyCard.js","pages/ads.js","pages/app-close-alert.js","services/permissions/actions.js","services/permissions/types.js","pages/auth-token.js","services/user/actions.js","services/user/types.js","js_sdk/index.js","pages/camera.js","pages/color-theme.js","pages/event-listener.js","assets/images/base64.js","pages/file-download.js","services/filedownload/actions.js","services/filedownload/types.js","pages/file-upload.js","pages/gifs.js","pages/in-app-purchase.js","services/landing/actions.js","services/landing/types.js","pages/landing.js","hooks/useLocalStorage.js","pages/local-storage.js","pages/media.js","services/message/types.js","services/message/actions.js","pages/message.js","pages/secure-storage.js","services/secure-storage/actions.js","services/secure-storage/types.js","pages/share.js","pages/universal-bridge.js","pages/uri-schemes.js","pages/user-details.js","pages/uuid-sdk.js","services/uuid/actions.js","services/uuid/types.js","hooks/useGeoLocation.js","pages/web-location.js","pages/window-actions.js","routes.js","components/Drawer.js","services/home/actions.js","services/home/types.js","components/ToolBar.js","pages/home.js","services/filedownload/reducers.js","services/home/reducers.js","services/landing/reducers.js","services/message/reducers.js","services/permissions/reducers.js","services/secure-storage/reducers.js","services/user/reducers.js","services/uuid/reducers.js","services/reducers.js","services/store.js","theme.js","App.js","serviceWorker.js","index.js","../../js-miniapp-sdk/build/miniapp.bundle.js"],"names":["module","exports","sendAnalytics","eventType","actionType","pageName","componentName","elementType","data","analyticsInfo","MiniApp","miniappUtils","useStyles","makeStyles","theme","root","background","color","secondary","height","props","maxWidth","width","GreyCard","classes","Card","className","children","scrollable","overflowY","paddingTop","paddingBottom","content","justifyContent","display","flexDirection","alignItems","fontSize","primary","fontWeight","paper","marginBottom","marginTop","actions","error","textfield","backgroundColor","initialState","isLoading","dataFetchReducer","state","action","type","reward","rewardItem","Error","Ads","useEffect","MAAnalyticsEventType","appear","MAAnalyticsActionType","open","useReducer","interstitialState","interstitialDispatch","rewardState","rewardDispatch","useState","interstitialAdId","setInterstitialAdId","rewardAdId","setRewardAdId","handleInterstitialSuccess","loadSuccess","console","log","handleInterstitialFailure","handleRewardFailure","renderLoading","CardContent","CircularProgress","size","buttonProgress","renderError","Typography","renderInput","label","value","onChange","TextField","e","call","currentTarget","variant","inputProps","renderButton","text","disabled","onClick","CardActions","Button","button","Paper","loadInterstitialAd","then","catch","showInterstitialAd","amount","loadRewardedAd","showRewardedAd","wrapperContainer","paddingLeft","grid","padding","table","minWidth","contentSection","imageBox","margin","imageBoxContent","objectFit","red","isError","isSuccess","inputError","CloseConfirmAlert","dispatch","title","setTitle","description","setDescription","React","checked","setChecked","withConfirmAlert","setWithConfirmAlert","handleChange","event","target","closeMiniAppWithConfirmation","closeAlert","isTextFieldValuesValid","miniAppError","alert","shouldDisplay","setCloseAlert","setMiniAppCloseAlert","textFieldValue","str","trim","length","closeMiniApp","tabValue","setTabValue","Container","TabContext","TabList","newValue","aria-label","Tab","TabPanel","FormGroup","column","rootUserGroup","formInput","id","Grid","FormControlLabel","control","Checkbox","labelPlacement","align","requestCustomPermissions","requestedPermssions","permissions","card","wrapper","position","buttonSuccess","green","buttonFailure","top","left","success","textAlign","wordBreak","rootFormGroup","permissionDenied","message","connect","accessToken","user","getAccessToken","audience","scopes","token","Promise","resolve","requestAccessToken","requestPermissions","scope","setScope","buttonClassname","clsx","requestAccessTokenPermission","permissionsList","name","CustomPermissionName","ACCESS_TOKEN","permission","filter","status","CustomPermissionStatus","ALLOWED","map","indexOf","handleClick","preventDefault","FormControl","formControl","fields","split","join","data-testid","validUntil","toLocaleDateString","Camera","image","setImage","undefined","backCamera","cameraRef","useRef","hidden","alt","src","accept","files","URL","createObjectURL","capture","ref","current","lineHeight","ColorThemeComponent","getHostAppThemeColors","response","document","getElementById","style","primaryColor","secondaryColor","Chip","info","lineBreak","NativeEvents","externalWebviewCloseEventCount","setExternalWebviewCloseEventCount","pauseEventCount","setPauseEventCount","resumeEventCount","setResumeEventCount","navigationBarHeight","setNavigationBarHeight","screenHeight","setScreenHeight","keyboardHeight","setKeyboardHeight","window","addEventListener","MiniAppEvents","EXTERNAL_WEBVIEW_CLOSE","detail","PAUSE","RESUME","MiniAppKeyboardEvents","KEYBOARDSHOWN","navigationBarHeightValue","screenHeightValue","keyboardHeightValue","KEYBOARDHIDDEN","hiddenNavigationBarHeightValue","hiddenScreenHeightValue","hiddenKeyboardHeightValue","url","location","href","placeholder","pandaLogo","filename","file","downloadFile","headers","requestDownloadFile","isPermissionGranted","setIsPermissionGranted","dataUri","setDataUri","requestDownloadAttachmentPermission","fileName","FILE_DOWNLOAD","downloadedFile","startFileDownload","handleDownloadClick","onDownloadFile","DownloadDisplay","uploader","FileUploader","rows","setRows","setFiles","Array","from","justify","for","multiple","TableContainer","component","Table","TableHead","TableRow","TableCell","TableBody","row","key","toString","replace","greyCard","typography","GIFComponent","images","iconSrc","require","altLabel","container","direction","it","i","Fragment","item","CardMedia","gif","rootCardActions","caseSelector","dataFormsWrapper","displayInlineBlock","purchaseButtonContainer","purchaseButton","listItemStyle","overflowWrap","productInfo","purchasedProductInfo","purchasedProduct","consumeProductResponse","PurchaseProductComponent","productFetchState","productFetchDispatch","snackBarOpen","setSnackBarOpen","handleSnackBarClose","reason","handleFetchClick","purchaseService","getAllProducts","products","handlePurchaseClick","productId","purchaseProductWith","cachePurchasedProduct","localStorage","setItem","JSON","stringify","handleConsumeClick","transactionId","consumePurchaseWith","ConsumeProduct","getItem","parse","getTransactionId","Snackbar","autoHideDuration","onClose","Alert","severity","AlertTitle","ListItem","divider","ListItemText","productPriceInfo","price","currencyCode","dateInfo","Date","transactionDate","toLocaleTimeString","TransactionDetails","setHostEnvironmentInfo","getHostEnvironmentInfo","minHeight","paddingTop50","platform","platformVersion","hostVersion","sdkVersion","hostLocale","infoError","secureStorageStatus","isReady","getHostInfo","onSecureStorageReady","secureStorageService","onReady","onLoadError","darkMode","setDarkMode","checkSecureStorageStorageReady","isDarkMode","List","sx","bgcolor","ListItemAvatar","Avatar","search","hash","String","useLocalStorage","initialValue","storedValue","setStoredValue","LocalStorage","inputValue","setInputValue","onSuccess","player","on","isFullscreen","setScreenOrientation","ScreenOrientation","LOCK_LANDSCAPE","LOCK_RELEASE","Media","showAutoplayVideo","setShowAutoplayVideo","accountId","videoId","requestFullscreen","options","autoplay","MessageTypeId","SEND_MESSAGE","defaultTexts","Map","set","defaultAction","process","spacing","errorMessage","messageTypes","getBots","payload","sendMessageToContact","caption","bannerMessage","messageToContact","chatService","sendMessageToContactId","contactId","a","promise","sendMessageToMultipleContacts","get","setMessage","validation","setValidationState","show","messageResponse","setMessageResponse","onChatbotClose","InputLabel","Select","labelId","c","MenuItem","multiline","rowsMax","fullWidth","findIndex","respMsg","contactIds","Dialog","aria-labelledby","DialogTitle","DialogContent","DialogContentText","DialogActions","padding10","isStorageCleaned","setItems","secureStorage","getItems","storageError","requestSetItems","items","requestGetItem","responseData","requestRemoveItems","keys","removeItems","requestClear","clear","requestSize","storeKey","setStoreKey","storeKeyValue","setStoreKeyValue","storeKey1","setStoreKey1","storeKeyValue1","setStoreKeyValue1","getItemUsingKey","setGetItemUsingKey","removeItemUsingKey","setRemoveItemUsingKey","removeItemUsingKey1","setRemoveItemUsingKey1","isEmpty","setSecureStorageButtonClick","isKeyAndValueEmpty","isValidKeyValue","keyValuePair","Object","forEach","saveItems","getSecureStorageButtonClick","removeItemsFromSecureStorageButtonClick","filteredKeys","getSizeButtonClick","clearSecureStorageSizeButtonClick","val","setValue","max","used","Share","defaultValue","shareInfo","sendInput","receiveInput","caretColor","faliure","UniversalBridge","infoInputKey","setInfoInputKey","infoInputValue","setInfoInputValue","infoInputDescription","setInfoInputDescription","receiveJsonInfo","setReceiveJsonInfo","sendJsonStatus","setSendJsonStatus","HostAppEvents","RECEIVE_JSON_INFO","universalBridge","sendJsonToHostapp","borderColor","sendInfoToHostapp","deepLinkStyle","UriSchemes","deeplinkClass","params","setParams","protocol","host","callbackUrl","setCallbackUrl","externalUrl","setExternalUrl","onOpenUrl","startsWith","validateParams","concat","encodeURIComponent","profilePhoto","profilePhotoOuter","userProfile","maxHeight","overflow","contactsList","isNamePhotoLoading","isNamePhottoError","hasRequestedNamePhotoPermissions","isContactsLoading","isContactsError","hasRequestedContactsPermissions","isPointsLoading","isPointsError","hasRequestedPointPermissions","isNamePhotoError","userName","contactList","points","getUserName","_","getProfilePhoto","getContacts","contacts","getPoints","query","namePhotoButtonClassname","getButtonState","contactsButtonClassname","pointsButtonClassname","showClearIcon","setShowClearIcon","searchText","setSearchText","dataFiltered","contact","toLocaleLowerCase","includes","toLowerCase","handleSearchTextChange","handleSearchReset","filterAllowedPermissions","handleNamePhotoClick","USER_NAME","PROFILE_PHOTO","all","hasPermission","string","requestNamePhoto","handleContactsClick","CONTACT_LIST","requestContacts","handlePointsClick","POINTS","requestPoints","isPointsPermissionDenied","permissionList","hasPhotoPermission","hasNamePermission","CardHeader","subheader","CardNamePhotoActionsForm","InputProps","startAdornment","InputAdornment","endAdornment","contactIcon","email","allEmailList","standard","term","cash","uuidNotFound","uniqueId","uuid","uniqueIdError","messagingUniqueId","messagingUniqueIdError","mauid","mauidError","getUniqueId","uuidFromSDK","getMessagingUniqueId","getMauid","mauidFromSdk","copyStatus","setCopyStatus","textCopied","result","onCopy","useGeoLocation","isWatching","setState","requestLocationPermission","timeout","setTimeout","navigator","geolocation","getCurrentPosition","pos","clearTimeout","coords","longitude","latitude","_error","enableHighAccuracy","locationContainer","whiteSpace","verticalAlign","borderRadius","opacity","Location","watch","unwatch","startIcon","WindowActions","confirm","prompt","landingNavLink","navLink","localStorageNavLink","fetchUniqueIdNavLink","deviceLocationNavLink","authTokenNavLink","userDetailNavLink","messageNavLink","windowActionNavLink","uriSchemesNavLink","eventListenerNavLink","mediaNavLink","shareNavLink","adsNavLink","cameraNavLink","fileDownloadNavLink","fileUploadNavLink","gifsNavLink","secureStorageNavLink","closeAlertNavLink","universalBridgeNavLink","inAppPurchaseNavLink","colorThemeNavLink","navLinks","homeItem","icon","element","appItems","navItems","sort","b","localeCompare","drawer","drawerPaper","breakpoints","up","drawerPaperContent","drawerPaperContentTopList","down","drawerPaperShrink","overflowX","shrinkedListItem","NavListRoot","tooltip","tooltipArrow","activeNavLink","changeTitle","setPageTitle","useTheme","isMobile","useMediaQuery","shrinked","SwipeableDrawer","anchor","onOpenClose","onOpen","role","supportedAbove","supportedBelow","semver","gte","lte","isSupportedSdkVersion","supportedAboveSdkVersion","supportedBelowSdkVersion","Tooltip","arrow","placement","enterDelay","NavLink","to","activeclassname","ListItemIcon","Hidden","only","Divider","onShrink","flexGrow","menuButton","marginRight","Component","showDrawer","showDrawerState","setDrawer","useLocation","navLinkLabel","find","pathname","shrinkState","setShrink","toggleDrawer","showFlag","onDrawerToggle","AppBar","Toolbar","IconButton","edge","Drawer","shrinkFlag","onShrinkToggle","navigate","useNavigate","useParams","router","mainContent","mainContentMobile","drawerClosed","marginLeft","drawerOpen","transition","transitions","create","easing","easeOut","duration","enteringScreen","drawerOpenShrink","Home","shrink","setShowDrawer","path","defaultState","homeState","defaultInfo","messageTypeState","combineReducers","defaultPoints","home","denied","DENIED","allowed","array","userReducer","storageReducer","createStore","reducers","applyMiddleware","thunk","createTheme","palette","main","grey","App","store","ThemeProvider","Theme","Boolean","hostname","match","createRoot","render","StrictMode","serviceWorker","ready","registration","unregister","r","t","n","RangeError","Uint8Array","__proto__","prototype","TypeError","u","o","isEncoding","write","slice","ArrayBuffer","isView","F","buffer","byteLength","valueOf","isBuffer","s","copy","L","isArray","Symbol","toPrimitive","arguments","U","x","p","this","O","P","w","S","M","f","l","d","lastIndexOf","readUInt16BE","h","Number","parseInt","substr","g","N","y","push","charCodeAt","E","v","m","q","fromByteArray","Math","min","A","fromCharCode","apply","Buffer","INSPECT_MAX_BYTES","TYPED_ARRAY_SUPPORT","foo","defineProperty","enumerable","byteOffset","species","configurable","writable","poolSize","alloc","fill","allocUnsafe","allocUnsafeSlow","_isBuffer","compare","offset","swap16","swap32","swap64","toLocaleString","equals","inspect","isFinite","toJSON","_arr","I","C","j","$","B","subarray","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","T","toByteArray","constructor","parent","MiniAppSecureStorageEvents","AccessTokenData","__extends","setPrototypeOf","hasOwnProperty","MiniAppError","errorInput","parseAuthError","AuthorizationFailureError","ScopesNotSupportedError","AudienceNotSupportedError","parseDownloadError","DownloadHttpError","SaveFailureError","InvalidUrlError","DownloadFailedError","code","parseStorageError","SecureStorageIOError","SecureStorageUnavailableError","SecureStorageBusyError","SecureStorageFullError","parseInAppPurchaseError","UserCancelledPurchaseError","ProductPurchasedAlreadyError","ProductNotFoundError","ConsumeFailedError","PurchaseFailedError","D","R","k","H","z","K","parseMiniAppError","Z","Y","W","Q","J","V","G","X","NaN","abs","isNaN","floor","LN2","rr","__assign","assign","MiniAppBridge","isSecureStorageReady","secureStorageLoadError","executor","getPlatform","execSuccessCallback","onError","execErrorCallback","execCustomEventsCallback","CustomEvent","splice","unshift","execEvents","execKeyboardEventsCallback","exec","requestPermission","adType","adUnitId","setSecureStorage","secureStorageItems","getSecureStorageItem","secureStorageKey","removeSecureStorageItems","secureStorageKeyList","clearSecureStorage","getSecureStorageSize","closeAlertInfo","jsonInfo","universalBridgeInfo","withConfirmationAlert","productTransactionId","substring","er","MiniAppSDKLogger","nr","logger","logOnConsole","ir","lastLog","messageType","or","debug","warn","cr","ar","sr","ur","pr","tr","fr","DevicePermission","LOCATION","lr","dr","hr","PERMISSION_NOT_AVAILABLE","gr","yr","LOCK_PORTRAIT","Er","vr","Platform","ANDROID","IOS","mr","Sr","br","click","custom","close","add","delete","change","Ar","Pr","getBridge","wr","UserInfo","Or","Mr","ChatService","Ir","_r","SecureStorageService","Cr","jr","Br","Tr","MiniAppUtils","Ur","reject","xr","Purchases","Nr","Fr","Lr","Dr","Rr","kr","Hr","zr","default"],"mappings":"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","file":"static/js/main.91c94cc2.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/road.7a89d3ee.gif\";","module.exports = __webpack_public_path__ + \"static/media/road_infinite.c6606fc4.gif\";","module.exports = __webpack_public_path__ + \"static/media/road_webp.825bfa3b.gif\";","import MiniApp, {\n MAAnalyticsInfo,\n MAAnalyticsEventType,\n MAAnalyticsActionType,\n} from 'js-miniapp-sdk';\n\nexport function sendAnalytics(\n eventType: MAAnalyticsEventType,\n actionType: MAAnalyticsActionType,\n pageName: string,\n componentName: string,\n elementType: string,\n data: string\n) {\n const analyticsInfo: MAAnalyticsInfo = {\n eventType: eventType,\n actionType: actionType,\n pageName: pageName,\n componentName: componentName,\n elementType: elementType,\n data: data,\n };\n return MiniApp.miniappUtils.sendAnalytics(analyticsInfo);\n}\n","import * as React from 'react';\n\nimport { Card, makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n background: theme.color.secondary,\n height: (props) => props.height || 300,\n maxWidth: 500,\n width: '95%',\n },\n}));\n\ntype CardType = {\n height?: number | string,\n children: React.Node,\n className?: string,\n};\n\nconst GreyCard = (props: CardType) => {\n const classes = useStyles(props);\n return (\n \n {props.children}\n \n );\n};\n\nexport default GreyCard;\n","import React, { useReducer, useState, useEffect } from 'react';\n\nimport {\n Button,\n CardActions,\n CardContent,\n CircularProgress,\n Paper,\n TextField,\n Typography,\n makeStyles,\n} from '@material-ui/core';\nimport MiniApp, {\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\n\nimport GreyCard from '../components/GreyCard';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n content: {\n height: 'auto',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n paper: {\n width: '80%',\n paddingBottom: 10,\n marginBottom: 20,\n '&:first-child': {\n marginTop: 20,\n },\n },\n actions: {\n justifyContent: 'center',\n },\n error: {\n marginTop: 10,\n },\n textfield: {\n backgroundColor: '#ffffff',\n width: '100%',\n },\n}));\n\ntype State = {\n isLoading: boolean,\n error?: ?string,\n reward?: {\n amount: number,\n },\n};\n\nexport const initialState = {\n isLoading: false,\n error: null,\n};\n\n// $FlowFixMe\nexport const dataFetchReducer = (state: State, action: Action) => {\n switch (action.type) {\n case 'LOADING':\n return {\n ...state,\n isLoading: true,\n error: null,\n };\n case 'SUCCESS':\n return {\n ...state,\n isLoading: false,\n error: null,\n reward: action.rewardItem,\n };\n case 'FAILURE':\n return {\n ...initialState,\n isLoading: false,\n error: action.error,\n };\n default:\n throw Error('Unknown action type');\n }\n};\n\nfunction Ads() {\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Ads',\n 'Screen',\n 'Page',\n ''\n );\n });\n const [interstitialState, interstitialDispatch] = useReducer(\n dataFetchReducer,\n initialState\n );\n const [rewardState, rewardDispatch] = useReducer(\n dataFetchReducer,\n initialState\n );\n const [interstitialAdId, setInterstitialAdId] = useState(\n 'ca-app-pub-3940256099942544/1033173712'\n );\n const [rewardAdId, setRewardAdId] = useState(\n 'ca-app-pub-3940256099942544/5224354917'\n );\n const classes = useStyles();\n\n const handleInterstitialSuccess = (loadSuccess) => {\n console.log(loadSuccess);\n interstitialDispatch({ type: 'SUCCESS' });\n };\n const handleInterstitialFailure = (error) => {\n interstitialDispatch({ type: 'FAILURE', error });\n console.error(error);\n };\n const loadInterstitialAd = () => {\n interstitialDispatch({ type: 'LOADING' });\n MiniApp.loadInterstitialAd(interstitialAdId)\n .then(handleInterstitialSuccess)\n .catch(handleInterstitialFailure);\n };\n const displayInterstitialAd = () => {\n interstitialDispatch({ type: 'LOADING' });\n MiniApp.showInterstitialAd(interstitialAdId)\n .then(handleInterstitialSuccess)\n .catch(handleInterstitialFailure);\n };\n\n const handleRewardFailure = (error) => {\n rewardDispatch({ type: 'FAILURE', error });\n console.error(error);\n };\n const loadRewardAd = () => {\n rewardDispatch({ type: 'LOADING' });\n MiniApp.loadRewardedAd(rewardAdId)\n .then((loadSuccess) => {\n console.log(loadSuccess);\n rewardDispatch({ type: 'SUCCESS' });\n })\n .catch(handleRewardFailure);\n };\n const displayRewardAd = () => {\n rewardDispatch({ type: 'LOADING' });\n MiniApp.showRewardedAd(rewardAdId)\n .then((reward) => {\n rewardDispatch({ type: 'SUCCESS', rewardItem: reward });\n })\n .catch(handleRewardFailure);\n };\n\n const renderLoading = () => (\n \n \n \n );\n\n const renderError = (error) => (\n \n Error: {error}\n \n );\n\n const renderInput = ({ label, value, onChange }) => (\n \n onChange.call(null, e.currentTarget.value)}\n variant=\"outlined\"\n color=\"primary\"\n inputProps={{\n 'data-testid': 'input-field',\n }}\n />\n \n );\n\n const renderButton = ({ text, disabled, onClick }) => (\n \n \n {text}\n \n \n );\n\n return (\n
\n \n \n {interstitialState.isLoading && renderLoading()}\n {interstitialState.error && renderError(interstitialState.error)}\n\n {renderInput({\n label: 'Interstitial Ad Id',\n value: interstitialAdId,\n onChange: setInterstitialAdId,\n })}\n {renderButton({\n text: 'Load Interstitial',\n disabled: interstitialState.isLoading,\n onClick: loadInterstitialAd,\n })}\n {renderButton({\n text: 'Show Interstitial',\n disabled: interstitialState.isLoading,\n onClick: displayInterstitialAd,\n })}\n \n \n {rewardState.isLoading && renderLoading()}\n {rewardState.error && renderError(rewardState.error)}\n\n {!rewardState.error &&\n !rewardState.isLoading &&\n rewardState.reward != null && (\n // $FlowFixMe\n \n \n Rewarded point: {rewardState.reward.amount}\n \n \n )}\n\n {renderInput({\n label: 'Rewarded Ad Id',\n value: rewardAdId,\n onChange: setRewardAdId,\n })}\n {renderButton({\n text: 'Load Reward',\n disabled: rewardState.isLoading,\n onClick: loadRewardAd,\n })}\n {renderButton({\n text: 'Show Reward',\n disabled: rewardState.isLoading,\n onClick: displayRewardAd,\n })}\n \n \n
\n );\n}\n\nexport default Ads;\n","import React, { useState, useReducer, useEffect } from 'react';\n\nimport {\n Button,\n Container,\n TextField,\n Grid,\n makeStyles,\n Typography,\n FormGroup,\n} from '@material-ui/core';\nimport { red } from '@material-ui/core/colors';\nimport Checkbox from '@mui/material/Checkbox';\nimport Tab from '@material-ui/core/Tab';\nimport TabContext from '@material-ui/lab/TabContext';\nimport TabList from '@material-ui/lab/TabList';\nimport TabPanel from '@material-ui/lab/TabPanel';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport MiniApp, {\n CloseAlertInfo,\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: '90%',\n width: '100%',\n },\n wrapperContainer: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n paddingLeft: 0,\n },\n grid: {\n display: 'flex',\n height: '20%',\n flexDirection: 'column',\n justifyContent: 'center',\n padding: '20px',\n },\n table: {\n minWidth: '80%',\n },\n content: {\n height: '50%',\n justifyContent: 'space-between',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n contentSection: {\n height: '30%',\n padding: '10px',\n },\n label: {\n display: 'block',\n fontSize: 12,\n width: '100%',\n color: theme.color.primary,\n },\n imageBox: {\n height: '250px',\n margin: '20px',\n },\n imageBoxContent: {\n height: '250px',\n objectFit: 'contain',\n },\n error: {\n color: red[500],\n marginTop: 10,\n },\n red: {\n color: red[500],\n },\n}));\n\nexport const initialState = {\n isLoading: false,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n};\n\ntype State = {\n isLoading: ?boolean,\n isError: ?boolean,\n};\n\ntype Action = {\n type: string,\n miniAppError: MiniAppError,\n inputError: ?string,\n};\n\nexport const dataFetchReducer = (state: State, action: Action) => {\n switch (action.type) {\n case 'SET_CLOSE_INIT':\n return {\n ...state,\n isLoading: true,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n };\n case 'SET_CLOSE_FAILURE':\n return {\n ...state,\n isLoading: false,\n isError: true,\n error: state.error,\n isSuccess: false,\n inputError: null,\n };\n case 'SET_CLOSE_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: state.error,\n isSuccess: true,\n inputError: null,\n };\n case 'INPUT_FAILURE':\n return {\n ...initialState,\n isLoading: false,\n isError: true,\n error: null,\n isSuccess: false,\n inputError: action.inputError,\n };\n\n default:\n throw Error('Unknown action type');\n }\n};\n\nfunction CloseConfirmAlert() {\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'App Close alert',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n const [state, dispatch] = useReducer(dataFetchReducer, initialState);\n\n const classes = useStyles();\n\n const [title, setTitle] = useState('');\n const [description, setDescription] = useState('');\n const [checked, setChecked] = React.useState(true);\n const [withConfirmAlert, setWithConfirmAlert] = React.useState(true);\n\n const handleChange = (event: React.ChangeEvent) => {\n setChecked(event.target.checked);\n };\n\n const closeMiniAppWithConfirmation = (\n event: React.ChangeEvent\n ) => {\n setWithConfirmAlert(event.target.checked);\n };\n\n function closeAlert() {\n if (!isTextFieldValuesValid(title)) {\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Title cannot be empty',\n });\n return;\n }\n if (!isTextFieldValuesValid(description)) {\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Description cannot be empty',\n });\n return;\n }\n dispatch({ type: 'SET_CLOSE_INIT', miniAppError: null, inputError: null });\n setMiniAppCloseAlert();\n }\n\n function isEmpty(str) {\n return !str || str.trim().length === 0;\n }\n\n function isTextFieldValuesValid(textFieldValue) {\n if (isEmpty(textFieldValue)) {\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Key cannot be empty',\n });\n return false;\n } else {\n return true;\n }\n }\n\n function setMiniAppCloseAlert() {\n const alert: CloseAlertInfo = {\n shouldDisplay: checked,\n title: title,\n description: description,\n };\n MiniApp.miniappUtils\n .setCloseAlert(alert)\n .then(() => {\n dispatch({\n type: 'SET_CLOSE_SUCCESS',\n miniAppError: null,\n inputError: 'null',\n });\n })\n .catch((error) => {\n dispatch({\n type: 'SET_CLOSE_FAILURE',\n miniAppError: null,\n inputError: 'null',\n });\n });\n }\n\n function closeMiniApp() {\n MiniApp.miniappUtils.closeMiniApp(withConfirmAlert).catch((error) => {\n dispatch({\n type: 'SET_CLOSE_FAILURE',\n miniAppError: null,\n inputError: 'null',\n });\n });\n }\n\n function SetCloseAlertConfirmationPanel() {\n return (\n \n setTitle(e.target.value)}\n />\n
\n
\n setDescription(e.target.value)}\n />\n
\n
\n \n }\n label=\"Show Close Alert\"\n labelPlacement=\"closeAlert\"\n checked={checked}\n onChange={handleChange}\n />\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.isSuccess && (\n \n Alert information stored Successfully\n \n )}\n \n \n
\n \n
\n
\n
\n );\n }\n\n function CloseMiniAppPanel() {\n return (\n \n \n }\n label=\"Should Display Confirmation?\"\n labelPlacement=\"closeAlert\"\n checked={withConfirmAlert}\n onChange={closeMiniAppWithConfirmation}\n />\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.isSuccess && (\n \n Alert information stored Successfully\n \n )}\n \n \n
\n \n
\n
\n
\n );\n }\n\n const [tabValue, setTabValue] = React.useState('1');\n\n const handleTabChange = (event: Event, newValue: string) => {\n dispatch({ type: 'SET_CLOSE_INIT', miniAppError: null, inputError: null });\n setTabValue(newValue);\n };\n\n return (\n \n \n \n \n \n \n {SetCloseAlertConfirmationPanel()}\n {CloseMiniAppPanel()}\n \n \n );\n}\n\nexport { CloseConfirmAlert };\nexport default CloseConfirmAlert;\n","import MiniApp, {\n CustomPermission,\n CustomPermissionResult,\n MiniAppError,\n} from 'js-miniapp-sdk';\n\nimport {\n REQUEST_PERMISSIONS_SUCCESS,\n REQUEST_PERMISSIONS_FAILURE,\n} from './types';\n\ntype PermissionsAction = {\n type: String,\n permissions: CustomPermissionResult[],\n error: MiniAppError,\n};\n\nconst requestCustomPermissions = (\n requestedPermssions: CustomPermission[]\n): Function => {\n return (dispatch) => {\n return MiniApp.requestCustomPermissions(requestedPermssions)\n .then((permissions) => {\n dispatch({\n type: REQUEST_PERMISSIONS_SUCCESS,\n permissions,\n });\n\n return permissions;\n })\n .catch((e) => {\n dispatch({\n type: REQUEST_PERMISSIONS_FAILURE,\n error: e,\n });\n });\n };\n};\n\nexport { requestCustomPermissions };\nexport type { PermissionsAction };\n","const REQUEST_PERMISSIONS_SUCCESS = 'REQUEST_PERMISSIONS_SUCCESS';\nconst REQUEST_PERMISSIONS_FAILURE = 'REQUEST_PERMISSIONS_FAILURE';\nexport { REQUEST_PERMISSIONS_SUCCESS, REQUEST_PERMISSIONS_FAILURE };\n","import React, { Fragment, useReducer, useState, useEffect } from 'react';\n\nimport {\n Button,\n CircularProgress,\n FormGroup,\n Typography,\n CardContent,\n FormControl,\n TextField,\n} from '@material-ui/core';\nimport { red, green } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\nimport clsx from 'clsx';\nimport {\n CustomPermission,\n CustomPermissionResult,\n CustomPermissionName,\n CustomPermissionStatus,\n AccessTokenData,\n MiniAppError,\n} from 'js-miniapp-sdk';\nimport { connect } from 'react-redux';\n\nimport GreyCard from '../components/GreyCard';\nimport { displayDate } from '../js_sdk';\nimport { requestCustomPermissions } from '../services/permissions/actions';\nimport { requestAccessToken } from '../services/user/actions';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n display: 'inline-block',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: '40px',\n overflowY: 'scroll',\n },\n wrapper: {\n position: 'relative',\n marginTop: 20,\n },\n buttonSuccess: {\n backgroundColor: green[500],\n '&:hover': {\n backgroundColor: green[700],\n },\n },\n buttonFailure: {\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n error: {\n color: red[500],\n marginTop: 20,\n },\n success: {\n color: green[500],\n marginTop: 20,\n textAlign: 'center',\n wordBreak: 'break-all',\n },\n rootFormGroup: {\n alignItems: 'center',\n },\n red: {\n color: red[500],\n },\n}));\n\nconst initialState = {\n isLoading: false,\n isSuccess: false,\n isError: false,\n error: null,\n permissionDenied: false,\n};\n\nconst dataFetchReducer = (state, action) => {\n switch (action.type) {\n case 'TOKEN_FETCH_INIT':\n return {\n ...state,\n isLoading: true,\n isSuccess: false,\n isError: false,\n error: null,\n permissionDenied: false,\n };\n case 'TOKEN_FETCH_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isSuccess: true,\n isError: false,\n error: null,\n permissionDenied: false,\n };\n case 'TOKEN_FETCH_FAILURE':\n return {\n ...state,\n isLoading: false,\n isSuccess: false,\n isError: true,\n error:\n (typeof action.error == 'string'\n ? action.error\n : action.error.message) || '',\n };\n case 'PERMISSION_FAILURE':\n return {\n ...state,\n isLoading: false,\n isSuccess: false,\n isError: false,\n error: null,\n permissionDenied: true,\n };\n default:\n throw new Error();\n }\n};\n\ntype AuthTokenProps = {\n permissions: CustomPermissionName[],\n accessToken: AccessTokenData,\n error: MiniAppError,\n getAccessToken: (audience: string, scopes: string[]) => Promise,\n requestPermissions: (\n permissions: CustomPermission[]\n ) => Promise,\n};\n\nfunction AuthToken(props: AuthTokenProps) {\n const [state, dispatch] = useReducer(dataFetchReducer, initialState);\n const classes = useStyles();\n const [scope, setScope] = useState({\n audience: 'rae',\n scopes: ['idinfo_read_openid', 'memberinfo_read_point'],\n });\n const buttonClassname = clsx({\n [classes.buttonFailure]: state.isError,\n [classes.buttonSuccess]: !state.isError,\n });\n const onAudienceChange = (event) => {\n setScope({ ...scope, audience: event.target.value });\n };\n const onScopesChange = (event) => {\n setScope({ ...scope, scopes: event.target.value.split(', ') });\n };\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Auth Token',\n 'Screen',\n 'Page',\n ''\n );\n });\n function requestAccessTokenPermission() {\n const permissionsList = [\n {\n name: CustomPermissionName.ACCESS_TOKEN,\n description:\n 'We would like to get the Access token details to share with this Mini app',\n },\n ];\n props\n .requestPermissions(permissionsList)\n .then((permissions) => {\n if (permissions) {\n permissions\n .filter(\n (permission) =>\n permission.status === CustomPermissionStatus.ALLOWED\n )\n .map((permission) => permission.name);\n if (!hasPermission(CustomPermissionName.ACCESS_TOKEN, permissions)) {\n requestAccessToken();\n } else {\n dispatch({ type: 'PERMISSION_FAILURE', permissionDenied: true });\n }\n } else {\n dispatch({ type: 'PERMISSION_FAILURE', permissionDenied: true });\n }\n })\n .catch((error) => {\n dispatch({ type: 'PERMISSION_FAILURE', permissionDenied: true });\n });\n }\n\n function hasPermission(permission, permissionList: ?(string[])) {\n permissionList = permissionList || props.permissions || [];\n return permissionList.indexOf(permission) > -1;\n }\n\n function requestAccessToken() {\n props\n .getAccessToken(scope.audience, scope.scopes)\n .then((permissions) => {\n dispatch({ type: 'TOKEN_FETCH_SUCCESS' });\n })\n .catch((e) => {\n dispatch({ type: 'TOKEN_FETCH_FAILURE', error: e });\n });\n }\n\n function handleClick(e) {\n if (!state.isLoading) {\n e.preventDefault();\n dispatch({ type: 'TOKEN_FETCH_INIT' });\n requestAccessTokenPermission();\n }\n }\n\n function ButtonWrapper() {\n return (\n
\n \n Authentication\n \n {state.isLoading && (\n \n )}\n
\n );\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {ButtonWrapper()}\n {!state.isLoading &&\n state.isSuccess &&\n !state.isError &&\n !state.permissionDenied &&\n props.accessToken && (\n
\n \n Token: {props.accessToken.token}\n \n \n Valid until: {displayDate(props.accessToken.validUntil)}\n \n
\n )}\n {!state.isLoading && state.isError && !state.permissionDenied && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.permissionDenied && (\n \n ACCESS_TOKEN Permission is denied by the user\n \n )}\n
\n
\n
\n );\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n permissions: state.permissions,\n accessToken: state.user.accessToken,\n error: state.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getAccessToken: (audience: string, scopes: string[]) =>\n dispatch(requestAccessToken(audience, scopes)),\n requestPermissions: (permissions) =>\n dispatch(requestCustomPermissions(permissions)),\n };\n};\n\nexport { AuthToken };\nexport default connect(mapStateToProps, mapDispatchToProps)(AuthToken);\n","import MiniApp, { AccessTokenData } from 'js-miniapp-sdk';\nimport { Contact, Points } from 'js-miniapp-sdk';\n\nimport {\n REQUEST_USER_NAME_SUCCESS,\n REQUEST_USER_NAME_FAILURE,\n REQUEST_PROFILE_PHOTO_SUCCESS,\n REQUEST_PROFILE_PHOTO_FAILURE,\n REQUEST_CONTACT_LIST_SUCCESS,\n REQUEST_CONTACT_LIST_FAILURE,\n REQUEST_ACCESS_TOKEN_SUCCESS,\n REQUEST_ACCESS_TOKEN_FAILURE,\n REQUEST_POINTS_SUCCESS,\n REQUEST_POINTS_FAILURE,\n} from './types';\n\ntype UserNameSuccessAction = { type: String, userName: string };\ntype ProfilePhotoSuccessAction = { type: String, url: string };\ntype ContactListSuccessAction = { type: String, contacts: Contact[] };\ntype AccessTokenSuccessAction = { type: String, token: AccessTokenData };\ntype PointsSuccessAction = { type: String, points: Points };\n\nconst requestUserName = (): Function => {\n return (dispatch) => {\n return MiniApp.user\n .getUserName()\n .then((userName) => {\n dispatch({\n type: REQUEST_USER_NAME_SUCCESS,\n userName,\n });\n })\n .catch((_) => {\n dispatch({\n type: REQUEST_USER_NAME_FAILURE,\n });\n });\n };\n};\n\nconst requestProfilePhoto = (): Function => {\n return (dispatch) => {\n return MiniApp.user\n .getProfilePhoto()\n .then((url) => {\n dispatch({\n type: REQUEST_PROFILE_PHOTO_SUCCESS,\n url,\n });\n })\n .catch((_) => {\n dispatch({\n type: REQUEST_PROFILE_PHOTO_FAILURE,\n });\n });\n };\n};\n\nconst requestContactList = (): Function => {\n return (dispatch) => {\n return MiniApp.user\n .getContacts()\n .then((contacts) => {\n dispatch({\n type: REQUEST_CONTACT_LIST_SUCCESS,\n contacts,\n });\n\n return Promise.resolve(contacts);\n })\n .catch((_) => {\n dispatch({\n type: REQUEST_CONTACT_LIST_FAILURE,\n });\n });\n };\n};\n\nconst requestAccessToken = (audience: string, scopes: string[]): Function => {\n return (dispatch) => {\n return MiniApp.user\n .getAccessToken(audience, scopes)\n .then((token) => {\n dispatch({\n type: REQUEST_ACCESS_TOKEN_SUCCESS,\n token: token,\n });\n return Promise.resolve(token);\n })\n .catch((e) => {\n dispatch({\n type: REQUEST_ACCESS_TOKEN_FAILURE,\n });\n throw e;\n });\n };\n};\n\nconst requestPoints = (): Function => {\n return (dispatch) => {\n return MiniApp.user\n .getPoints()\n .then((points) => {\n dispatch({\n type: REQUEST_POINTS_SUCCESS,\n points: points,\n });\n return Promise.resolve(points);\n })\n .catch((e) => {\n dispatch({\n type: REQUEST_POINTS_FAILURE,\n });\n throw e;\n });\n };\n};\n\nexport {\n requestUserName,\n requestProfilePhoto,\n requestContactList,\n requestAccessToken,\n requestPoints,\n};\nexport type {\n UserNameSuccessAction,\n ProfilePhotoSuccessAction,\n ContactListSuccessAction,\n AccessTokenSuccessAction,\n PointsSuccessAction,\n};\n","const REQUEST_USER_NAME_SUCCESS = 'REQUEST_USER_NAME_SUCCESS';\nconst REQUEST_USER_NAME_FAILURE = 'REQUEST_USER_NAME_FAILURE';\nconst REQUEST_PROFILE_PHOTO_SUCCESS = 'REQUEST_PROFILE_PHOTO_SUCCESS';\nconst REQUEST_PROFILE_PHOTO_FAILURE = 'REQUEST_PROFILE_PHOTO_FAILURE';\nconst REQUEST_CONTACT_LIST_SUCCESS = 'REQUEST_CONTACT_LIST_SUCCESS';\nconst REQUEST_CONTACT_LIST_FAILURE = 'REQUEST_CONTACT_LIST_FAILURE';\nconst REQUEST_ACCESS_TOKEN_SUCCESS = 'REQUEST_ACCESS_TOKEN_SUCCESS';\nconst REQUEST_ACCESS_TOKEN_FAILURE = 'REQUEST_ACCESS_TOKEN_FAILURE';\nconst REQUEST_POINTS_SUCCESS = 'REQUEST_POINTS_SUCCESS';\nconst REQUEST_POINTS_FAILURE = 'REQUEST_POINTS_FAILURE';\n\nexport {\n REQUEST_USER_NAME_SUCCESS,\n REQUEST_USER_NAME_FAILURE,\n REQUEST_PROFILE_PHOTO_SUCCESS,\n REQUEST_PROFILE_PHOTO_FAILURE,\n REQUEST_CONTACT_LIST_SUCCESS,\n REQUEST_CONTACT_LIST_FAILURE,\n REQUEST_ACCESS_TOKEN_SUCCESS,\n REQUEST_ACCESS_TOKEN_FAILURE,\n REQUEST_POINTS_SUCCESS,\n REQUEST_POINTS_FAILURE,\n};\n","import Bowser from 'bowser';\n\nexport const isMobile = () => {\n const parser = Bowser.getParser(window.navigator.userAgent);\n return parser.getPlatform().type === 'mobile';\n};\n\nexport const displayDate = (date: Date) => {\n return date.toLocaleDateString(`ja-JP`);\n};\n","import React, { useRef, useState, useEffect } from 'react';\n\nimport { Card, Grid, Button, makeStyles } from '@material-ui/core';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: '90%',\n width: '100%',\n },\n grid: {\n display: 'flex',\n height: '20%',\n flexDirection: 'column',\n justifyContent: 'center',\n padding: '20px',\n },\n table: {\n minWidth: '80%',\n },\n content: {\n height: '50%',\n justifyContent: 'space-between',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n contentSection: {\n height: '30%',\n padding: '10px',\n },\n label: {\n display: 'block',\n fontSize: 12,\n width: '100%',\n color: theme.color.primary,\n },\n imageBox: {\n height: '250px',\n margin: '20px',\n },\n imageBoxContent: {\n height: '250px',\n objectFit: 'contain',\n },\n}));\n\nconst Camera = () => {\n const classes = useStyles();\n\n const [image, setImage] = useState(null);\n const [backCamera] = useState(undefined);\n\n const cameraRef = useRef(null);\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Camera',\n 'Screen',\n 'Page',\n ''\n );\n });\n const setFiles = (e) => {\n const files = e.target.files;\n if (!files && files.length > 0) {\n return;\n }\n setImage(URL.createObjectURL(e.target.files[0]));\n };\n\n function clear() {\n setImage(null);\n if (cameraRef.current !== null) {\n cameraRef.current.value = '';\n }\n }\n\n return (\n \n \n \n
\n \n \n
\n
\n \n
\n
\n
\n );\n};\n\nexport { Camera };\nexport default Camera;\n","import React, { useEffect } from 'react';\n\nimport { makeStyles, Chip } from '@material-ui/core';\nimport MiniApp from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n content: {\n height: '25%',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n card: {\n marginTop: '40px',\n },\n actions: {\n justifyContent: 'center',\n flexDirection: 'column',\n },\n button: {\n marginTop: '20px',\n width: '80%',\n maxWidth: 280,\n },\n textfield: {\n width: '80%',\n maxWidth: 300,\n '& input': {\n color: theme.color.primary,\n lineHeight: '1.5em',\n fontSize: '1.2em',\n background: 'white',\n },\n },\n}));\n\nfunction ColorThemeComponent() {\n const classes = useStyles();\n\n useEffect(() => {\n try {\n getColorTheme();\n } catch (e) {\n console.log(e);\n }\n });\n\n function getColorTheme() {\n MiniApp.miniappUtils\n .getHostAppThemeColors()\n .then((response) => {\n document.getElementById('primaryChip').style.backgroundColor =\n response.primaryColor;\n document.getElementById('secondaryChip').style.backgroundColor =\n response.secondaryColor;\n console.log('getColorTheme SUCCESS: ', response);\n })\n .catch((error) => {\n console.log('getColorTheme ERROR: ', error);\n });\n }\n\n return (\n
\n \n
\n
\n \n
\n );\n}\n\nexport default ColorThemeComponent;\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n TextField,\n CardContent,\n CardActions,\n makeStyles,\n} from '@material-ui/core';\nimport {\n MiniAppEvents,\n MiniAppKeyboardEvents,\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\nimport GreyCard from '../components/GreyCard';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n actions: {\n justifyContent: 'center',\n },\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n },\n info: {\n fontSize: 16,\n lineBreak: 'anywhere',\n wordBreak: 'break-all',\n color: theme.color.primary,\n marginTop: 0,\n paddingBottom: 10,\n },\n formInput: {\n width: '90%',\n marginTop: 10,\n marginBottom: 10,\n background: 'white',\n },\n}));\n\nconst EXTERNAL_WEBVIEW_URL = 'https://www.google.com';\n\nconst NativeEvents = () => {\n const classes = useStyles();\n let [externalWebviewCloseEventCount, setExternalWebviewCloseEventCount] =\n useState(0);\n let [pauseEventCount, setPauseEventCount] = useState(0);\n let [resumeEventCount, setResumeEventCount] = useState(0);\n let [navigationBarHeight, setNavigationBarHeight] = useState(0);\n let [screenHeight, setScreenHeight] = useState(0);\n let [keyboardHeight, setKeyboardHeight] = useState(0);\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Event Listener',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n window.addEventListener(MiniAppEvents.EXTERNAL_WEBVIEW_CLOSE, function (e) {\n let message = e.detail.message;\n console.log(message);\n externalWebviewCloseEventCount++;\n setExternalWebviewCloseEventCount(externalWebviewCloseEventCount);\n });\n\n window.addEventListener(MiniAppEvents.PAUSE, function (e) {\n let message = e.detail.message;\n console.log(message);\n pauseEventCount++;\n setPauseEventCount(pauseEventCount);\n });\n\n window.addEventListener(MiniAppEvents.RESUME, function (e) {\n let message = e.detail.message;\n console.log(message);\n resumeEventCount++;\n setResumeEventCount(resumeEventCount);\n });\n\n window.addEventListener(MiniAppKeyboardEvents.KEYBOARDSHOWN, function (e) {\n let message = e.detail.message;\n let navigationBarHeightValue = e.detail.navigationBarHeight;\n let screenHeightValue = e.detail.screenHeight;\n let keyboardHeightValue = e.detail.keyboardHeight;\n console.log(\n message +\n ', ' +\n navigationBarHeightValue +\n ', ' +\n screenHeight +\n ', ' +\n keyboardHeight\n );\n navigationBarHeight = navigationBarHeightValue;\n screenHeight = screenHeightValue;\n keyboardHeight = keyboardHeightValue;\n setNavigationBarHeight(navigationBarHeightValue);\n setScreenHeight(screenHeightValue);\n setKeyboardHeight(keyboardHeightValue);\n });\n\n window.addEventListener(MiniAppKeyboardEvents.KEYBOARDHIDDEN, function (e) {\n let message = e.detail.message;\n let hiddenNavigationBarHeightValue = e.detail.navigationBarHeight;\n let hiddenScreenHeightValue = e.detail.screenHeight;\n let hiddenKeyboardHeightValue = e.detail.keyboardHeight;\n console.log(\n message +\n ', ' +\n hiddenNavigationBarHeightValue +\n ', ' +\n hiddenScreenHeightValue +\n ', ' +\n hiddenKeyboardHeightValue\n );\n navigationBarHeight = hiddenNavigationBarHeightValue;\n screenHeight = hiddenScreenHeightValue;\n keyboardHeight = hiddenKeyboardHeightValue;\n setNavigationBarHeight(hiddenNavigationBarHeightValue);\n setScreenHeight(hiddenScreenHeightValue);\n setKeyboardHeight(hiddenKeyboardHeightValue);\n });\n\n function onOpenExternalWebview() {\n let url = new URL(EXTERNAL_WEBVIEW_URL);\n window.location.href = url;\n }\n\n return (\n
\n \n \n

Event Listener

\n
\n \n \n Open External Webview\n \n \n
\n

External Webview Closed: {externalWebviewCloseEventCount}

\n

Mini App Paused: {pauseEventCount}

\n

Mini App Resumed: {resumeEventCount}

\n
\n
\n
\n

Keyboard Events

\n \n

Navigation Bar Height: {navigationBarHeight}

\n

Screen Height: {screenHeight}

\n

Keyboard Height: {keyboardHeight}

\n
\n
\n
\n );\n};\n\nexport default NativeEvents;\n","const pandaLogo =\n 'data:image/png;base64,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';\n\nexport { pandaLogo };\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n CardContent,\n CardActions,\n CircularProgress,\n makeStyles,\n TextField,\n} from '@material-ui/core';\nimport {\n CustomPermission,\n CustomPermissionResult,\n CustomPermissionName,\n CustomPermissionStatus,\n DownloadFileHeaders,\n MiniAppError,\n} from 'js-miniapp-sdk';\nimport { connect } from 'react-redux';\n\nimport { pandaLogo } from '../assets/images/base64';\nimport GreyCard from '../components/GreyCard';\nimport { requestDownloadFile } from '../services/filedownload/actions';\nimport { requestCustomPermissions } from '../services/permissions/actions';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n actions: {\n justifyContent: 'center',\n paddingBottom: 16,\n },\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n },\n info: {\n fontSize: 16,\n lineBreak: 'anywhere',\n wordBreak: 'break-all',\n color: theme.color.primary,\n marginTop: 0,\n paddingBottom: 10,\n },\n formInput: {\n width: '90%',\n marginTop: 10,\n marginBottom: 10,\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n}));\n\ntype FileDownloadProps = {\n permissions: CustomPermissionName[],\n filename: string,\n isLoading: boolean,\n error: MiniAppError,\n downloadFile: (\n filename: string,\n url: string,\n headers: DownloadFileHeaders\n ) => Promise,\n requestPermissions: (\n permissions: CustomPermission[]\n ) => Promise,\n};\n\nconst FileDownload = (props: FileDownloadProps) => {\n const classes = useStyles();\n let [isPermissionGranted, setIsPermissionGranted] = useState(true);\n let [dataUri, setDataUri] = useState(pandaLogo);\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'File Download',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n function requestDownloadAttachmentPermission(url, fileName) {\n const permissionsList = [\n {\n name: CustomPermissionName.FILE_DOWNLOAD,\n description: 'We would like to get the permission to download files.',\n },\n ];\n\n props\n .requestPermissions(permissionsList)\n .then((permissions) =>\n permissions\n .filter(\n (permission) => permission.status === CustomPermissionStatus.ALLOWED\n )\n .map((permission) => permission.name)\n )\n .then((permissions) =>\n hasPermission(CustomPermissionName.FILE_DOWNLOAD, permissions)\n ? startFileDownload(url, fileName)\n : setIsPermissionGranted(false)\n )\n .catch((miniAppError) => {\n setIsPermissionGranted(false);\n console.error(miniAppError);\n });\n }\n\n function hasPermission(permission, permissionList: ?(string[])) {\n permissionList = permissionList || props.permissions || [];\n return permissionList.indexOf(permission) > -1;\n }\n\n function onDownloadFile(url, fileName) {\n requestDownloadAttachmentPermission(url, fileName);\n }\n\n function startFileDownload(url, fileName) {\n setIsPermissionGranted(true);\n return props\n .downloadFile(fileName, url, { token: 'test' })\n .then((downloadedFile) => {\n console.log('FileDownloadRsponse THEN:', downloadedFile);\n props.downloadedFile = downloadedFile;\n })\n .catch((error) => {\n console.log('FileDownloadErrors CATCH:', error);\n props.error = error;\n props.isLoading = false;\n });\n }\n\n function handleDownloadClick(url, fileName) {\n if (!props.isLoading) {\n onDownloadFile(url, fileName);\n }\n }\n\n function validateName(name) {\n if (name !== undefined && props.filename && props.filename.length > 0) {\n return name;\n }\n return '-';\n }\n\n function DownloadDisplay() {\n return (\n \n );\n }\n\n function renderButton(text, id, onClick) {\n return (\n \n \n \n );\n }\n\n return (\n
\n \n Download Files\n\n
\n

\n {!isPermissionGranted && '\"FILE_DOWNLOAD\" permission not granted.'}\n {props.error && 'Download failed: ' + props.error.message}\n {props.downloadedFile && 'File Downloaded:' + props.downloadedFile}\n

\n
\n\n {DownloadDisplay()}\n\n {props.isLoading && (\n \n )}\n\n {renderButton('Download Image', 'button-download-image', () => {\n handleDownloadClick(\n 'https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg',\n 'sample.jpg'\n );\n })}\n\n {renderButton('Download ZIP', 'button-download-zip', () => {\n handleDownloadClick(\n 'https://file-examples.com/wp-content/storage/2017/02/zip_2MB.zip',\n 'sample.zip'\n );\n })}\n\n {renderButton('Download MP3', 'button-download-mp3', () => {\n handleDownloadClick(\n 'https://filesamples.com/samples/audio/mp3/sample3.mp3',\n 'sample.mp3'\n );\n })}\n\n {renderButton('Download CSV', 'button-download-csv', () => {\n handleDownloadClick(\n 'https://filesamples.com/samples/document/csv/sample4.csv',\n 'sample.csv'\n );\n })}\n\n {renderButton('Download MOV', 'button-download-mov', () => {\n handleDownloadClick(\n 'https://filesamples.com/samples/video/mov/sample_960x540.mov',\n 'sample.mov'\n );\n })}\n\n {renderButton('Download Image - Dot', 'button-download-image', () => {\n handleDownloadClick(\n 'https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg',\n 'sample.jun-2022.test.jpg'\n );\n })}\n\n setDataUri(event.target.value)}\n />\n {renderButton('Download Base64 Data', 'button-download-base64', () => {\n handleDownloadClick(dataUri, 'panda.png');\n })}\n
\n
\n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n permissions: state.permissions,\n filename: state.file.filename,\n error: state.file.error,\n isLoading: state.file.isLoading,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n requestPermissions: (permissions) =>\n dispatch(requestCustomPermissions(permissions)),\n downloadFile: (filename, url, headers) =>\n dispatch(requestDownloadFile(filename, url, headers)),\n };\n};\n\nexport { FileDownload };\nexport default connect(mapStateToProps, mapDispatchToProps)(FileDownload);\n","import MiniApp, { DownloadFileHeaders } from 'js-miniapp-sdk';\n\nimport {\n FILE_DOWNLOAD_SUCCESS,\n FILE_DOWNLOAD_FAILURE,\n FILE_DOWNLOAD_INIT,\n} from './types';\n\ntype DownloadFileAction = {\n type: string,\n filename: ?string,\n error: ?string,\n};\n\nconst requestDownloadFile = (\n filename: string,\n url: string,\n headers: DownloadFileHeaders\n): Function => {\n return (dispatch) => {\n dispatch({\n type: FILE_DOWNLOAD_INIT,\n });\n\n return MiniApp.downloadFile(filename, url, headers)\n .then((name) => {\n dispatch({\n type: FILE_DOWNLOAD_SUCCESS,\n filename: name,\n });\n return Promise.resolve(name);\n })\n .catch((error) => {\n console.log('requestDownloadFile: CATCH BLOCK: ', error);\n dispatch({\n type: FILE_DOWNLOAD_FAILURE,\n error: error,\n });\n throw error;\n });\n };\n};\n\nexport { requestDownloadFile };\nexport type { DownloadFileAction };\n","const FILE_DOWNLOAD_SUCCESS = 'FILE_DOWNLOAD_SUCCESS';\nconst FILE_DOWNLOAD_FAILURE = 'FILE_DOWNLOAD_FAILURE';\nconst FILE_DOWNLOAD_INIT = 'FILE_DOWNLOAD_INIT';\nexport { FILE_DOWNLOAD_SUCCESS, FILE_DOWNLOAD_FAILURE, FILE_DOWNLOAD_INIT };\n","// @flow\nimport React, { useState, useEffect } from 'react';\n\nimport {\n Card,\n CardContent,\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n Grid,\n} from '@material-ui/core';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: '90%',\n width: '100%',\n },\n grid: {\n display: 'flex',\n height: '20%',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n table: {\n minWidth: '80%',\n },\n content: {\n height: '50%',\n justifyContent: 'space-between',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n uploader: {\n height: '30%',\n },\n label: {\n fontSize: 12,\n width: '100%',\n color: theme.color.primary,\n },\n}));\n\nconst FileUploader = () => {\n const classes = useStyles();\n const [rows, setRows] = useState([]);\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'File Upload',\n 'Screen',\n 'Page',\n ''\n );\n });\n const setFiles = (e) => {\n const files = e.target.files;\n if (!files) {\n return;\n }\n\n setRows(\n Array.from(files).map((file) => ({\n name: file.name,\n size: file.size,\n type: file.type,\n }))\n );\n };\n\n const numberCommaFormatter = (number) => {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n };\n\n return (\n \n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n \n \n \n Name\n Type\n Size(Bytes)\n \n \n \n \n {rows.map((row) => (\n \n \n {row.name}\n \n {row.type}\n \n {numberCommaFormatter(row.size)}\n \n \n ))}\n \n
\n
\n
\n
\n );\n};\n\nexport default FileUploader;\n","import React, { useEffect } from 'react';\n\nimport { Typography, CardContent, CardMedia, Grid } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nimport GreyCard from '../components/GreyCard';\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n grid: {\n position: 'relative',\n paddingBottom: 15,\n },\n greyCard: {\n marginTop: '1rem',\n },\n typography: {\n marginTop: '1rem',\n },\n}));\n\nfunction GIFComponent() {\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'App Close alert',\n 'Screen',\n 'Page',\n ''\n );\n });\n const classes = useStyles();\n const images = [\n {\n label: 'Loop Count: Once',\n iconSrc: require('../assets/images/gif/road.gif'),\n altLabel: 'road',\n },\n {\n label: 'Loop Count: Infinite',\n iconSrc: require('../assets/images/gif/road_infinite.gif'),\n altLabel: 'infinite_road',\n },\n {\n label: 'Loop Count: Infinite (WebP)',\n // $FlowFixMe\n iconSrc: require('../assets/images/webp/road_webp.gif'),\n altLabel: 'infinite_road_webp',\n },\n ];\n return (\n
\n \n {images.map((it, i) => (\n \n \n \n {it.label}\n \n \n \n \n \n \n ))}\n \n
\n );\n}\n\nexport default GIFComponent;\n","import React, { useReducer, useEffect } from 'react';\n\nimport {\n Button,\n CircularProgress,\n FormGroup,\n Typography,\n CardContent,\n CardActions,\n ListItem,\n ListItemText,\n} from '@material-ui/core';\nimport { red, green } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Alert, AlertTitle } from '@mui/material';\nimport Snackbar from '@mui/material/Snackbar';\nimport clsx from 'clsx';\nimport MiniApp, {\n MiniAppError,\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\nimport GreyCard from '../components/GreyCard';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n root: {\n background: theme.color.secondary,\n width: '85vw',\n maxWidth: 500,\n },\n wrapper: {\n position: 'relative',\n marginTop: 10,\n },\n buttonSuccess: {\n backgroundColor: green[500],\n '&:hover': {\n backgroundColor: green[700],\n },\n },\n buttonFailure: {\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n error: {\n color: red[500],\n marginTop: 10,\n },\n success: {\n color: green[500],\n marginTop: 20,\n },\n rootUserGroup: {\n alignItems: 'center',\n },\n formInput: {\n width: '90%',\n marginTop: 10,\n },\n rootCardActions: {\n justifyContent: 'center',\n },\n caseSelector: {\n marginTop: 5,\n },\n button: {\n marginBottom: 15,\n },\n dataFormsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n },\n paper: {\n width: '100%',\n paddingBottom: 10,\n marginBottom: 20,\n '&:last-child': {\n marginBottom: 0,\n },\n },\n red: {\n color: red[500],\n },\n displayInlineBlock: {\n display: 'inline-block',\n },\n purchaseButtonContainer: {\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-evenly',\n },\n purchaseButton: {\n margin: '15px',\n },\n listItemStyle: {\n overflowWrap: 'anywhere',\n },\n}));\n\nexport const initialState = {\n isLoading: false,\n isError: false,\n error: null,\n};\n\ntype State = {\n isLoading: ?boolean,\n isError: ?boolean,\n};\n\ntype Action = {\n type: string,\n miniAppError: MiniAppError,\n productInfo: ProductInfo[],\n purchasedProductInfo: PurchasedProductInfo,\n consumeProductResponse: MiniAppResponseInfo,\n};\n\nexport const dataFetchReducer = (state: State, action: Action) => {\n switch (action.type) {\n case 'PURCHASE_FETCH_INIT':\n return {\n isLoading: true,\n isError: false,\n error: null,\n };\n case 'PURCHASE_FETCH_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: null,\n productInfo: action.productInfo,\n };\n case 'PURCHASE_FETCH_FAILURE':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: null,\n productInfo: null,\n };\n case 'PURCHASE_PRODUCT_INIT':\n return {\n isLoading: true,\n isError: false,\n error: null,\n };\n case 'PURCHASE_PRODUCT_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: null,\n purchasedProductInfo: action.purchasedProduct,\n };\n case 'PURCHASE_PRODUCT_FAILURE':\n return {\n ...initialState,\n isLoading: false,\n isError: true,\n purchasedProductInfo: null,\n error:\n (typeof action.miniAppError == 'string'\n ? action.miniAppError\n : action.miniAppError.message) || '',\n };\n\n case 'CONSUME_PRODUCT_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: null,\n consumeProductResponse: action.consumeProductResponse,\n };\n case 'CONSUME_PRODUCT_FAILURE':\n return {\n ...initialState,\n isLoading: false,\n isError: true,\n consumeProductResponse: null,\n error:\n (typeof action.miniAppError == 'string'\n ? action.miniAppError\n : action.miniAppError.message) || 'Product is not purchased yet',\n };\n\n default:\n throw Error('Unknown action type');\n }\n};\n\nfunction PurchaseProductComponent() {\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'In-App-Purchase',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n const [state, dispatch] = useReducer(dataFetchReducer, initialState);\n const [productFetchState, productFetchDispatch] = useReducer(\n dataFetchReducer,\n initialState\n );\n const [snackBarOpen, setSnackBarOpen] = React.useState(false);\n\n const classes = useStyles();\n\n const buttonClassname = clsx({\n [classes.buttonFailure]: state.isError,\n [classes.buttonSuccess]: !state.isError,\n });\n\n const handleSnackBarClose = (\n event?: React.SyntheticEvent | Event,\n reason?: string\n ) => {\n setSnackBarOpen(false);\n };\n\n function handleFetchClick(e) {\n if (!state.isLoading) {\n productFetchDispatch({ type: 'PURCHASE_FETCH_INIT', miniAppError: null });\n getAllProducts();\n }\n }\n\n function getAllProducts() {\n MiniApp.purchaseService\n .getAllProducts()\n .then((products) => {\n console.log('getAllProducts SUCCESS: ', products);\n productFetchDispatch({\n type: 'PURCHASE_FETCH_SUCCESS',\n miniAppError: null,\n productInfo: products,\n });\n })\n .catch((miniAppError) => {\n console.log('getAllProducts Error: ', miniAppError);\n productFetchDispatch({ type: 'PURCHASE_FETCH_FAILURE', miniAppError });\n });\n }\n\n function handlePurchaseClick(e) {\n if (!state.isLoading) {\n dispatch({\n type: 'PURCHASE_PRODUCT_INIT',\n miniAppError: null,\n });\n BuyProduct(e.currentTarget.value);\n }\n }\n\n function BuyProduct(productId: string) {\n console.log('BuyProduct: ', productId);\n\n MiniApp.purchaseService\n .purchaseProductWith(productId)\n .then((purchasedProduct) => {\n console.log('BuyProduct - SUCCESS: ', purchasedProduct);\n dispatch({\n type: 'PURCHASE_PRODUCT_SUCCESS',\n miniAppError: null,\n purchasedProduct: purchasedProduct,\n });\n cachePurchasedProduct(\n purchasedProduct.productInfo.id,\n purchasedProduct\n );\n })\n .catch((miniAppError) => {\n console.log('Buy Product ERROR: ', miniAppError);\n dispatch({\n type: 'PURCHASE_PRODUCT_FAILURE',\n miniAppError,\n });\n });\n }\n\n function cachePurchasedProduct(key, value) {\n window.localStorage.setItem(key, JSON.stringify(value));\n }\n\n function handleConsumeClick(e) {\n if (e.currentTarget.value === null || e.currentTarget.value === undefined) {\n dispatch({\n type: 'CONSUME_PRODUCT_FAILURE',\n });\n console.log('CONSUME_PRODUCT_FAILURE: ', e.currentTarget.value);\n } else {\n ConsumeProduct(\n e.currentTarget.value,\n getTransactionId(e.currentTarget.value)\n );\n }\n if (!state.isLoading) {\n dispatch({ type: 'PURCHASE_PRODUCT_INIT', miniAppError: null });\n }\n }\n\n function getTransactionId(productId: string) {\n const purchasedProduct = window.localStorage.getItem(productId);\n var productInfo = JSON.parse(purchasedProduct);\n return productInfo.transactionId;\n }\n\n function ConsumeProduct(productId: string, transactionId: string) {\n console.log('ConsumeProduct PRODUCT: ', productId);\n console.log('ConsumeProduct TRANSACTION: ', transactionId);\n\n MiniApp.purchaseService\n .consumePurchaseWith(productId, transactionId)\n .then((response) => {\n console.log('SUCCESS - ConsumeProduct', response);\n setSnackBarOpen(true);\n dispatch({\n type: 'CONSUME_PRODUCT_SUCCESS',\n miniAppError: null,\n consumeProductResponse: response,\n });\n cachePurchasedProduct(productId, '');\n })\n .catch((miniAppError) => {\n console.log('Consume Product Error: ', miniAppError);\n dispatch({\n type: 'CONSUME_PRODUCT_FAILURE',\n miniAppError,\n });\n });\n }\n\n function TransactionDetails() {\n const dateInfo = new Date(state.purchasedProductInfo.transactionDate);\n return (\n \n \n Transaction ID: {state.purchasedProductInfo.transactionId}\n
\n Transaction Date: {dateInfo.toLocaleDateString()}\n
\n Transaction Time: {dateInfo.toLocaleTimeString()}\n
\n \n
\n );\n }\n\n function ShowConsumedAlert() {\n return (\n \n \n \n {state.consumeProductResponse.title}\n {state.consumeProductResponse.description}\n \n \n \n );\n }\n\n function ShowProductDetails() {\n console.log('ShowProductDetails: ', productFetchState);\n return (\n \n {productFetchState.productInfo &&\n productFetchState.productInfo.map((productInfo) => (\n \n \n \n {productInfo.description &&\n productInfo.description !== '' && (\n \n {'Description: ' + productInfo.description}\n \n )}\n \n \n {productInfo.id && productInfo.id !== '' && (\n {'Product ID: ' + productInfo.id}\n )}\n \n \n {productInfo.id && productInfo.id !== '' && (\n \n {'Price : ' +\n productInfo.productPriceInfo.price +\n ' ' +\n productInfo.productPriceInfo.currencyCode}\n \n )}\n \n \n }\n />\n
\n
\n \n Buy\n \n
\n
\n \n Consume\n \n {state.isLoading && (\n \n )}\n
\n
\n {state.purchasedProductInfo &&\n state.purchasedProductInfo.productInfo.id ===\n productInfo.id &&
{TransactionDetails()}
}\n \n ))}\n \n );\n }\n\n function PurchaseProductCardActionsForm() {\n return (\n \n
\n
\n \n Fetch Products\n \n\n {state.isLoading && (\n \n )}\n
\n
\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.consumeProductResponse && (\n
{ShowConsumedAlert()}
\n )}\n
\n );\n }\n\n return (\n
\n \n {PurchaseProductCardActionsForm()}\n \n \n {!productFetchState.isLoading && productFetchState.productInfo && (\n {ShowProductDetails()}\n )}\n \n
\n );\n}\nexport { PurchaseProductComponent };\n","import MiniApp, { HostEnvironmentInfo, MiniAppError } from 'js-miniapp-sdk';\n\nimport {\n REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS,\n REQUEST_HOST_ENVIRONMENT_INFO_ERROR,\n ON_SECURE_STORAGE_READY_SUCCESS,\n ON_SECURE_STORAGE_READY_FAILURE,\n} from './types';\n\ntype RequestHostInfoSuccessAction = { type: String, info: HostEnvironmentInfo };\ntype OnStorageReadySuccessAction = { type: string, error?: MiniAppError };\n\nconst setHostEnvironmentInfo = (): Function => {\n return (dispatch) => {\n MiniApp.getHostEnvironmentInfo()\n .then((info) => {\n dispatch({\n type: REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS,\n info: info,\n });\n })\n .catch((error) => {\n dispatch({\n type: REQUEST_HOST_ENVIRONMENT_INFO_ERROR,\n error,\n });\n });\n };\n};\n\nconst onSecureStorageReady = (): Function => {\n return (dispatch) => {\n return new Promise((resolve) => {\n MiniApp.secureStorageService.onReady(() => {\n dispatch({\n type: ON_SECURE_STORAGE_READY_SUCCESS,\n });\n return resolve();\n });\n\n MiniApp.secureStorageService.onLoadError((error) => {\n dispatch({\n type: ON_SECURE_STORAGE_READY_FAILURE,\n error: error,\n });\n return resolve(error);\n });\n });\n };\n};\n\nexport { setHostEnvironmentInfo, onSecureStorageReady };\nexport type { RequestHostInfoSuccessAction, OnStorageReadySuccessAction };\n","const REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS =\n 'REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS';\nconst REQUEST_HOST_ENVIRONMENT_INFO_ERROR =\n 'REQUEST_HOST_ENVIRONMENT_INFO_ERROR';\nconst ON_SECURE_STORAGE_READY_SUCCESS = 'ON_SECURE_STORAGE_READY_SUCCESS';\nconst ON_SECURE_STORAGE_READY_FAILURE = 'ON_SECURE_STORAGE_READY_FAILURE';\n\nexport {\n REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS,\n REQUEST_HOST_ENVIRONMENT_INFO_ERROR,\n ON_SECURE_STORAGE_READY_SUCCESS,\n ON_SECURE_STORAGE_READY_FAILURE,\n};\n","import React, { useState, useEffect } from 'react';\n\nimport { CardContent, makeStyles } from '@material-ui/core';\nimport AppSettingsAltRoundedIcon from '@mui/icons-material/AppSettingsAltRounded';\nimport DarkModeRoundedIcon from '@mui/icons-material/DarkModeRounded';\nimport DevicesOtherIcon from '@mui/icons-material/DevicesOther';\nimport HelpRoundedIcon from '@mui/icons-material/HelpRounded';\nimport HttpRoundedIcon from '@mui/icons-material/HttpRounded';\nimport LanguageRoundedIcon from '@mui/icons-material/LanguageRounded';\nimport SettingsApplicationsRoundedIcon from '@mui/icons-material/SettingsApplicationsRounded';\nimport StorageRoundedIcon from '@mui/icons-material/StorageRounded';\nimport SystemUpdateIcon from '@mui/icons-material/SystemUpdate';\nimport Avatar from '@mui/material/Avatar';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemAvatar from '@mui/material/ListItemAvatar';\nimport ListItemText from '@mui/material/ListItemText';\nimport MiniApp, {\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { connect } from 'react-redux';\nimport { sendAnalytics } from './helper';\n\nimport {\n setHostEnvironmentInfo,\n onSecureStorageReady,\n} from '../services/landing/actions';\n\ntype LandingProps = {\n platform: ?string,\n platformVersion: ?string,\n hostVersion: ?string,\n sdkVersion: ?string,\n hostLocale: ?string,\n infoError: string,\n getHostInfo: Function,\n onSecureStorageReady: Function,\n secureStorageStatus: string,\n};\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: '40px',\n },\n content: {\n height: '100%',\n width: '100%',\n justifyContent: 'left',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n '& p': {\n lineHeight: 1.5,\n },\n overflowY: 'auto',\n },\n info: {\n fontSize: 16,\n lineBreak: 'anywhere',\n wordBreak: 'break-all',\n marginTop: 0,\n },\n button: {\n minHeight: 40,\n margin: 0,\n },\n paddingTop50: {\n marginTop: '50px',\n },\n}));\n\nconst Landing = (props: LandingProps) => {\n const classes = useStyles();\n const [darkMode, setDarkMode] = useState(false);\n\n useEffect(() => {\n try {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Home',\n 'Screen',\n 'Page',\n ''\n );\n props.getHostInfo();\n checkSecureStorageStorageReady(props);\n getDarkMode();\n } catch (e) {\n console.log(e);\n }\n }, [props]);\n\n function getDarkMode() {\n MiniApp.miniappUtils\n .isDarkMode()\n .then((response) => {\n setDarkMode(response);\n })\n .catch((miniAppError) => {\n console.log('getDarkMode - Error: ', miniAppError);\n });\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nfunction checkSecureStorageStorageReady(props: LandingProps) {\n props\n .onSecureStorageReady()\n .then((response) => {\n console.log('Page - checkSecureStorageStorageReady - Success', response);\n })\n .catch((miniAppError) => {\n console.log(\n 'Page - checkSecureStorageStorageReady - Error: ',\n miniAppError\n );\n });\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n platform: state.info.platform,\n platformVersion: state.info.platformVersion,\n hostVersion: state.info.hostVersion,\n sdkVersion: state.info.sdkVersion,\n hostLocale: state.info.hostLocale,\n infoError: state.info.infoError,\n secureStorageStatus:\n (state.secureStorageStatus.isReady && 'Ready') ||\n state.secureStorageStatus.error ||\n 'Not Ready',\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getHostInfo: () => dispatch(setHostEnvironmentInfo()),\n onSecureStorageReady: () => dispatch(onSecureStorageReady()),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Landing);\n","// @flow\nimport { useState } from 'react';\n\nfunction useLocalStorage(key: string, initialValue: string) {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n throw error;\n }\n });\n\n const setValue = (value: any) => {\n try {\n setStoredValue(value);\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n throw error;\n }\n };\n\n return [storedValue, setValue];\n}\n\nexport default useLocalStorage;\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n TextField,\n makeStyles,\n CardContent,\n CardActions,\n} from '@material-ui/core';\n\nimport GreyCard from '../components/GreyCard';\nimport useLocalStorage from '../hooks/useLocalStorage';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n content: {\n height: '25%',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n card: {\n marginTop: '40px',\n },\n actions: {\n justifyContent: 'center',\n flexDirection: 'column',\n },\n button: {\n marginTop: '20px',\n width: '80%',\n maxWidth: 280,\n },\n textfield: {\n width: '80%',\n maxWidth: 300,\n '& input': {\n color: theme.color.primary,\n lineHeight: '1.5em',\n fontSize: '1.2em',\n background: 'white',\n },\n },\n}));\n\nfunction LocalStorage() {\n const classes = useStyles();\n const [inputValue, setInputValue] = useState('');\n const [storedValue, setStoredValue] = useLocalStorage('input-value', '');\n\n const handleInput = (e: SyntheticInputEvent) => {\n e.preventDefault();\n setInputValue(e.currentTarget.value);\n };\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Local Storage',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n const handleLoad = () => {\n setInputValue(storedValue);\n };\n\n const handleSave = () => {\n setStoredValue(inputValue);\n };\n\n return (\n \n \n \n \n \n \n Load text from Local Storage\n \n \n Save text to Local Storage\n \n \n \n );\n}\n\nexport default LocalStorage;\n","// @flow\nimport React, { useState, useEffect } from 'react';\n\nimport ReactPlayerLoader from '@brightcove/react-player-loader';\nimport {\n Button,\n CardContent,\n CardActions,\n makeStyles,\n} from '@material-ui/core';\nimport MiniApp, {\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { ScreenOrientation } from 'js-miniapp-sdk';\n\nimport GreyCard from '../components/GreyCard';\nimport { sendAnalytics } from './helper';\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n height: 'auto',\n marginTop: '40px',\n },\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n },\n actions: {\n justifyContent: 'center',\n paddingBottom: 16,\n },\n}));\n\nconst onSuccess = function ({ ref: player }) {\n console.log(player);\n\n player.on('fullscreenchange', (event) => {\n if (player.isFullscreen()) {\n MiniApp.setScreenOrientation(ScreenOrientation.LOCK_LANDSCAPE)\n .then((success) => {\n console.log(success);\n })\n .catch((error) => {\n console.error(error);\n });\n } else {\n MiniApp.setScreenOrientation(ScreenOrientation.LOCK_RELEASE)\n .then((success) => {\n console.log(success);\n })\n .catch((error) => {\n console.error(error);\n });\n }\n });\n};\n\nconst Media = () => {\n const [showAutoplayVideo, setShowAutoplayVideo] = useState(false);\n const classes = useStyles();\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Media',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n return (\n \n \n Autoplay Fullscreen Video\n \n \n \n \n\n Normal Video\n \n setShowAutoplayVideo(!showAutoplayVideo)}\n >\n {showAutoplayVideo ? 'Hide' : 'Show'} Video\n \n \n\n {showAutoplayVideo && (\n \n {\n onSuccess(success);\n success.ref.requestFullscreen();\n }}\n options={{ autoplay: true }}\n >\n \n )}\n \n );\n};\n\nexport default Media;\n","const SET_MESSAGE_TYPES = 'GET_MESSAGE_TYPE';\n\nexport const MessageTypeId = {\n SINGLE_CONTACT: 1,\n SINGLE_CONTACT_ID: 2,\n MULTIPLE_CONTACTS: 3,\n};\n\ntype MessageType = {\n id: number,\n name: string,\n};\n\ntype SetMessageTypeAction = {\n type: string,\n payload: Array,\n};\n\nexport { SET_MESSAGE_TYPES };\nexport type { MessageType, SetMessageTypeAction };\n","import MiniApp, {\n CustomPermissionStatus,\n CustomPermissionName,\n} from 'js-miniapp-sdk';\nimport { MessageToContact } from 'js-miniapp-sdk';\n\nimport { SET_MESSAGE_TYPES } from './types';\nimport type { SetMessageTypeAction } from './types';\n\nconst getMessageTypeList = (): SetMessageTypeAction => {\n return {\n type: SET_MESSAGE_TYPES,\n payload: [\n {\n id: 1,\n name: 'Send a message to a single contact',\n },\n {\n id: 2,\n name: 'Send a message to a specific contact',\n },\n {\n id: 3,\n name: 'Send a message to multiple contacts',\n },\n ],\n };\n};\n\nconst permissionsList = [\n {\n name: CustomPermissionName.SEND_MESSAGE,\n description: 'We would like to send message from this mini app.',\n },\n];\n\nconst sendMessageToContact = (\n image: String,\n text: String,\n caption: String,\n action: String,\n bannerMessage: String\n): Function => {\n return (dispatch) => {\n const messageToContact: MessageToContact = {\n text: text,\n image: image,\n caption: caption,\n action: action,\n bannerMessage: bannerMessage,\n };\n return MiniApp.chatService.sendMessageToContact(messageToContact);\n };\n};\n\nconst sendMessageToContactId = (\n contactId: String,\n image: String,\n text: String,\n caption: String,\n action: String\n): Function => {\n return async (dispatch) => {\n const promise = MiniApp.requestCustomPermissions(permissionsList).then(\n (permissions) => {\n return permissions[0].status === CustomPermissionStatus.ALLOWED;\n }\n );\n const promiseResult = await promise;\n\n if (promiseResult === true) {\n const messageToContact: MessageToContact = {\n text: text,\n image: image,\n caption: caption,\n action: action,\n };\n return MiniApp.chatService.sendMessageToContactId(\n contactId,\n messageToContact\n );\n }\n };\n};\n\nconst sendMessageToMultipleContacts = (\n image: String,\n text: String,\n caption: String,\n action: String,\n bannerMessage: String\n): Function => {\n return (dispatch) => {\n const messageToContact: MessageToContact = {\n text: text,\n image: image,\n caption: caption,\n action: action,\n bannerMessage: bannerMessage,\n };\n return MiniApp.chatService.sendMessageToMultipleContacts(messageToContact);\n };\n};\n\nexport {\n getMessageTypeList,\n sendMessageToContact,\n sendMessageToContactId,\n sendMessageToMultipleContacts,\n};\n","import React, { useState, Fragment, useEffect } from 'react';\n\nimport {\n makeStyles,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n CardActions,\n Button,\n TextField,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogContentText,\n DialogActions,\n} from '@material-ui/core';\nimport { connect } from 'react-redux';\nimport { sendAnalytics } from './helper';\n\nimport { pandaLogo } from '../assets/images/base64';\nimport {\n sendMessageToContact,\n sendMessageToContactId,\n sendMessageToMultipleContacts,\n} from '../services/message/actions';\nimport { getMessageTypeList } from '../services/message/actions';\nimport type { MessageType } from '../services/message/types';\nimport { MessageTypeId } from '../services/message/types';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst defaultTexts = new Map();\ndefaultTexts.set(MessageTypeId.SINGLE_CONTACT, 'Single contact');\ndefaultTexts.set(MessageTypeId.SINGLE_CONTACT_ID, 'Specific contact ID');\ndefaultTexts.set(MessageTypeId.MULTIPLE_CONTACTS, 'Multiple contact');\nconst defaultCaption = 'Open JS miniapp';\nconst defaultAction = `https://one.rakuten.co.jp/miniapp/preview/${\n process.env.REACT_APP_MINI_APP_ID || ''\n}`;\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: '100%',\n },\n fields: {\n color: theme.color.primary,\n '& div': {\n color: theme.color.primary,\n },\n },\n actions: {\n justifyContent: 'center',\n },\n errorMessage: {\n fontSize: 12,\n color: 'indianred',\n },\n}));\n\ntype MessageTypeProps = {\n messageTypes: Array,\n sendMessageToContact: (\n image: string,\n text: string,\n caption: string,\n action: string,\n bannerMessage: string\n ) => Promise,\n sendMessageToContactId: (\n contactId: string,\n image: string,\n text: string,\n caption: string,\n action: string\n ) => Promise,\n sendMessageToMultipleContacts: (\n image: string,\n text: string,\n caption: string,\n action: string,\n bannerMessage: string\n ) => Promise,\n};\n\nconst Message = (props: MessageTypeProps) => {\n const classes = useStyles();\n const messageTypes = props.messageTypes;\n const [message, setMessage] = useState({\n id: messageTypes[0] !== undefined ? messageTypes[0].id : -1,\n contactId: '',\n image: pandaLogo,\n text: defaultTexts.get(MessageTypeId.SINGLE_CONTACT),\n caption: defaultCaption,\n action: defaultAction,\n bannerMessage: 'Win 30 coins from every friends who joins from your invite',\n });\n const [validation, setValidationState] = useState({\n error: false,\n message: '',\n });\n const [messageResponse, setMessageResponse] = useState({\n show: false,\n response: '',\n });\n const validate = () => {\n if (\n messageTypes.map((it) => it.id).findIndex((it) => it === message.id) ===\n -1\n ) {\n setValidationState({ error: true, message: 'select message' });\n return false;\n } else if (message.text === undefined || message.text.trim().length === 0) {\n setValidationState({ error: true, message: 'text cannot be empty' });\n return false;\n } else if (\n message.id === 2 &&\n (message.contactId === undefined || message.contactId.trim().length === 0)\n ) {\n setValidationState({\n error: true,\n message: 'contact id cannot be empty',\n });\n return false;\n } else {\n setValidationState({ error: false, message: '' });\n }\n return true;\n };\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Message',\n 'Screen',\n 'Page',\n ''\n );\n });\n const handleChange = (event) => {\n message.text = defaultTexts.get(event.target.value);\n message.action = defaultAction;\n message.caption = defaultCaption;\n setMessage({ ...message, id: event.target.value });\n };\n const talkToChatbot = () => {\n if (validate()) {\n if (message.id === MessageTypeId.SINGLE_CONTACT) {\n props\n .sendMessageToContact(\n message.image.trim() ?? '',\n message.text !== undefined ? message.text.trim() : '',\n message.caption.trim() ?? '',\n message.action.trim() ?? '',\n message.bannerMessage.trim() ?? ''\n )\n .then((contactId) => {\n let respMsg = 'Message not sent';\n if (contactId !== null)\n respMsg = 'Message is sent to contact Id: ' + contactId;\n setMessageResponse({\n show: true,\n response: respMsg,\n });\n })\n .catch((e) => {\n setMessageResponse({\n show: true,\n response: e,\n });\n });\n } else if (message.id === MessageTypeId.SINGLE_CONTACT_ID) {\n props\n .sendMessageToContactId(\n message.contactId.trim(),\n message.image.trim() ?? '',\n message.text !== undefined ? message.text.trim() : '',\n message.caption.trim() ?? '',\n message.action.trim() ?? ''\n )\n .then((contactId) => {\n let respMsg = 'Message not sent';\n if (contactId !== null && contactId !== undefined)\n respMsg = 'Message is sent to contact Id: ' + contactId;\n setMessageResponse({\n show: true,\n response: respMsg,\n });\n })\n .catch((e) => {\n setMessageResponse({\n show: true,\n response: e,\n });\n });\n } else if (message.id === MessageTypeId.MULTIPLE_CONTACTS) {\n props\n .sendMessageToMultipleContacts(\n message.image.trim() ?? '',\n message.text !== undefined ? message.text.trim() : '',\n message.caption.trim() ?? '',\n message.action.trim() ?? '',\n message.bannerMessage.trim() ?? ''\n )\n .then((contactIds) => {\n let respMsg = 'Message not sent';\n if (contactIds !== null)\n respMsg = contactIds.length + ' contacts sent';\n setMessageResponse({\n show: true,\n response: respMsg,\n });\n })\n .catch((e) => {\n setMessageResponse({\n show: true,\n response: e,\n });\n });\n }\n }\n };\n\n const onContactIdChange = (event) => {\n setMessage({ ...message, contactId: event.target.value });\n };\n const onImageChange = (event) => {\n setMessage({ ...message, image: event.target.value });\n };\n const onTextChange = (event) => {\n setMessage({ ...message, text: event.target.value });\n };\n const onBannerMessageChange = (event) => {\n setMessage({ ...message, bannerMessage: event.target.value });\n };\n const onCaptionChange = (event) => {\n setMessage({ ...message, caption: event.target.value });\n };\n const onActionChange = (event) => {\n setMessage({ ...message, action: event.target.value });\n };\n\n const onChatbotClose = () => {\n setMessageResponse({ show: false, response: '' });\n };\n\n return (\n
\n \n \n Send Message Type\n \n {messageTypes.map((c) => (\n \n {c.name}\n \n ))}\n \n \n\n {message.id === MessageTypeId.SINGLE_CONTACT_ID && (\n \n \n \n )}\n\n \n \n \n \n \n \n {message.id !== MessageTypeId.SINGLE_CONTACT_ID && (\n \n \n \n )}\n \n \n \n \n \n \n {validation.error && (\n
\n {validation.message}\n
\n )}\n \n \n SEND MESSAGE\n \n \n \n Response\n \n {messageResponse.response}\n \n \n \n \n \n
\n
\n );\n};\n\nconst mapStatetoProps = (state, props) => {\n return {\n ...props,\n messageTypes: state.message.messageTypes,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getBots: () => dispatch(getMessageTypeList()),\n sendMessageToContact: (image, text, caption, action, bannerMessage) =>\n dispatch(\n sendMessageToContact(image, text, caption, action, bannerMessage)\n ),\n sendMessageToContactId: (contactId, image, text, caption, action) =>\n dispatch(sendMessageToContactId(contactId, image, text, caption, action)),\n sendMessageToMultipleContacts: (\n image,\n text,\n caption,\n action,\n bannerMessage\n ) =>\n dispatch(\n sendMessageToMultipleContacts(\n image,\n text,\n caption,\n action,\n bannerMessage\n )\n ),\n };\n};\n\nexport default connect(mapStatetoProps, mapDispatchToProps)(Message);\n","import React, { useReducer, useState, Fragment, useEffect } from 'react';\n\nimport {\n Button,\n CircularProgress,\n Container,\n FormGroup,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { green, red } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Tab from '@material-ui/core/Tab';\nimport TabContext from '@material-ui/lab/TabContext';\nimport TabList from '@material-ui/lab/TabList';\nimport TabPanel from '@material-ui/lab/TabPanel';\nimport clsx from 'clsx';\nimport {\n MiniAppError,\n MiniAppSecureStorageSize,\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { connect } from 'react-redux';\nimport { sendAnalytics } from './helper';\nimport {\n clear,\n getItem,\n removeItems,\n setItems,\n size,\n} from '../services/secure-storage/actions';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n root: {\n background: theme.color.secondary,\n width: '85vw',\n maxWidth: 500,\n color: red,\n },\n wrapperContainer: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n paddingLeft: 0,\n },\n wrapper: {\n position: 'relative',\n marginTop: 10,\n },\n buttonSuccess: {\n backgroundColor: green[500],\n '&:hover': {\n backgroundColor: green[700],\n },\n },\n buttonFailure: {\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n error: {\n color: red[500],\n marginTop: 10,\n },\n success: {\n color: green[500],\n marginTop: 20,\n },\n rootUserGroup: {\n alignItems: 'center',\n },\n formInput: {\n width: '90%',\n marginTop: 10,\n },\n rootCardActions: {\n justifyContent: 'center',\n },\n caseSelector: {\n marginTop: 5,\n },\n button: {\n marginBottom: 15,\n },\n dataFormsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n },\n paper: {\n width: '100%',\n paddingBottom: 10,\n marginBottom: 20,\n '&:last-child': {\n marginBottom: 0,\n },\n },\n red: {\n color: red[500],\n },\n padding10: {\n padding: 10,\n },\n}));\n\nexport const initialState = {\n isLoading: false,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n isStorageCleaned: false,\n};\n\ntype State = {\n isLoading: ?boolean,\n isError: ?boolean,\n};\n\ntype Action = {\n type: string,\n miniAppError: MiniAppError,\n inputError: ?string,\n};\n\nexport const dataFetchReducer = (state: State, action: Action) => {\n switch (action.type) {\n case 'FETCH_INIT':\n return {\n ...state,\n isLoading: true,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n isStorageCleaned: false,\n };\n case 'FETCH_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: null,\n isSuccess: true,\n inputError: null,\n isStorageCleaned: false,\n };\n case 'FETCH_FAILURE':\n return {\n ...initialState,\n isLoading: false,\n isError: true,\n error:\n (typeof action.miniAppError == 'string'\n ? action.miniAppError\n : action.miniAppError.message) || '',\n isSuccess: false,\n inputError: null,\n isStorageCleaned: false,\n };\n case 'INPUT_FAILURE':\n return {\n ...initialState,\n isLoading: false,\n isError: true,\n error: null,\n isSuccess: false,\n inputError: action.inputError,\n isStorageCleaned: false,\n };\n case 'RESET':\n return {\n ...initialState,\n isLoading: false,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n isStorageCleaned: false,\n };\n case 'STORAGE_CLEAR_SUCCESS':\n return {\n ...initialState,\n isLoading: false,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n isStorageCleaned: true,\n };\n default:\n throw Error('Unknown action type');\n }\n};\n\ntype SecureStorageProps = {\n getItems: string,\n size: MiniAppSecureStorageSize,\n requestSetItems: (items: string) => Promise,\n requestGetItem: (key: string) => Promise,\n requestRemoveItems: (key: Array) => Promise,\n requestClear: () => Promise,\n requestSize: () => Promise,\n storageError: MiniAppError,\n};\n\nfunction SecureStorageComponent(props: SecureStorageProps) {\n const [state, dispatch] = useReducer(dataFetchReducer, initialState);\n const classes = useStyles();\n const [storeKey, setStoreKey] = useState('');\n const [storeKeyValue, setStoreKeyValue] = useState('');\n const [storeKey1, setStoreKey1] = useState('');\n const [storeKeyValue1, setStoreKeyValue1] = useState('');\n const [getItemUsingKey, setGetItemUsingKey] = useState('');\n const [removeItemUsingKey, setRemoveItemUsingKey] = useState('');\n const [removeItemUsingKey1, setRemoveItemUsingKey1] = useState('');\n\n const buttonClassname = clsx({\n [classes.buttonFailure]: state.isError,\n [classes.buttonSuccess]: !state.isError,\n });\n\n function isEmpty(str) {\n return !str || str.trim().length === 0;\n }\n\n function setSecureStorageButtonClick(e) {\n if (\n isKeyAndValueEmpty(storeKey, storeKeyValue) &&\n isKeyAndValueEmpty(storeKey1, storeKeyValue1)\n ) {\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Please enter Key and Value',\n });\n return;\n }\n\n if (\n isValidKeyValue(storeKey, storeKeyValue) &&\n isValidKeyValue(storeKey1, storeKeyValue1)\n ) {\n dispatch({ type: 'RESET', miniAppError: null, inputError: null });\n saveItems();\n } else {\n console.log('ERROR');\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Please enter both Key and Value',\n });\n }\n }\n\n function saveItems() {\n if (!state.isLoading) {\n dispatch({ type: 'FETCH_INIT', miniAppError: null, inputError: null });\n const keyValuePair = {};\n keyValuePair[storeKey] = storeKeyValue;\n keyValuePair[storeKey1] = storeKeyValue1;\n Object.keys(keyValuePair).forEach((key) => {\n if (!keyValuePair[key]) delete keyValuePair[key];\n });\n requestSetItems(keyValuePair);\n }\n }\n\n function requestSetItems(keyValuePair) {\n props\n .requestSetItems(JSON.stringify(keyValuePair))\n .then((response) => {\n console.log('Page - SetItems - Success', response);\n dispatch({\n type: 'FETCH_SUCCESS',\n miniAppError: null,\n inputError: null,\n });\n })\n .catch((miniAppError) => {\n console.log('Page - SetItems - Error: ', miniAppError);\n dispatch({ type: 'FETCH_FAILURE', miniAppError, inputError: null });\n });\n }\n\n function getSecureStorageButtonClick(e) {\n if (!isEmpty(getItemUsingKey)) {\n if (!state.isLoading) {\n dispatch({ type: 'FETCH_INIT', miniAppError: null, inputError: null });\n props\n .requestGetItem(getItemUsingKey)\n .then((response) => {\n console.log('Page - GetItems - Success', response);\n dispatch({\n type: 'FETCH_SUCCESS',\n miniAppError: null,\n inputError: null,\n });\n })\n .catch((miniAppError) => {\n console.log('Page - GetItems - Error: ', miniAppError);\n dispatch({ type: 'FETCH_FAILURE', miniAppError, inputError: null });\n });\n }\n } else {\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Key cannot be empty',\n });\n }\n }\n\n function removeItemsFromSecureStorageButtonClick(e) {\n const keys = [removeItemUsingKey, removeItemUsingKey1];\n const filteredKeys = keys.filter(function (str) {\n return isEmpty(str) === false;\n });\n if (!state.isLoading) {\n dispatch({ type: 'FETCH_INIT', miniAppError: null, inputError: null });\n props\n .requestRemoveItems(filteredKeys)\n .then((response) => {\n console.log('Page - RemoveItems - Success', response);\n dispatch({\n type: 'FETCH_SUCCESS',\n miniAppError: null,\n inputError: null,\n });\n })\n .catch((miniAppError) => {\n console.log('Page - RemoveItems - Error: ', miniAppError);\n dispatch({ type: 'FETCH_FAILURE', miniAppError, inputError: null });\n });\n }\n }\n\n function getSizeButtonClick(e) {\n if (!state.isLoading) {\n dispatch({ type: 'FETCH_INIT', miniAppError: null, inputError: null });\n props\n .requestSize()\n .then((response) => {\n console.log('Page - Size - Success', response);\n dispatch({\n type: 'FETCH_SUCCESS',\n miniAppError: null,\n inputError: null,\n });\n })\n .catch((miniAppError) => {\n console.log('Page - Size - Error: ', miniAppError);\n dispatch({ type: 'FETCH_FAILURE', miniAppError, inputError: null });\n });\n }\n }\n\n function clearSecureStorageSizeButtonClick(e) {\n if (!state.isLoading) {\n dispatch({ type: 'FETCH_INIT', miniAppError: null, inputError: null });\n props\n .requestClear()\n .then((response) => {\n console.log('Page - clearStorageItems - Success', response);\n dispatch({\n type: 'STORAGE_CLEAR_SUCCESS',\n miniAppError: null,\n inputError: null,\n });\n })\n .catch((miniAppError) => {\n console.log('Page - clearSecureStorageItems - Error: ', miniAppError);\n dispatch({ type: 'FETCH_FAILURE', miniAppError, inputError: null });\n });\n }\n }\n\n function isKeyAndValueEmpty(key, val) {\n return isEmpty(key) && isEmpty(val);\n }\n\n function isValidKeyValue(key, val) {\n if (isEmpty(key) && !isEmpty(val)) {\n return false;\n } else if (!isEmpty(key) && isEmpty(val)) {\n return false;\n }\n return true;\n }\n\n function SetSecureStorageCardActionsForm() {\n return (\n \n \n setStoreKey(e.target.value)}\n />\n setStoreKeyValue(e.target.value)}\n />\n \n
\n \n setStoreKey1(e.target.value)}\n />\n setStoreKeyValue1(e.target.value)}\n />\n \n
\n
\n \n Set Secure Storage\n \n {state.isLoading && (\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.isSuccess && (\n \n Items stored Successfully\n \n )}\n
\n );\n }\n\n function GetSecureStorageCardActionsForm() {\n return (\n \n setGetItemUsingKey(e.target.value)}\n />\n
\n \n Get Secure Storage\n \n {state.isLoading && (\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && !state.isError && (\n \n {props.getItems}\n \n )}\n
\n );\n }\n\n function RemoveSecureStorageCardActionsForm() {\n return (\n \n setRemoveItemUsingKey(e.target.value)}\n />\n
\n setRemoveItemUsingKey1(e.target.value)}\n />\n
\n
\n \n Remove Items\n \n {state.isLoading && (\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.isSuccess && (\n \n Items removed Successfully\n \n )}\n
\n );\n }\n\n function OtherFunctionalitiesCardActionsForm() {\n return (\n \n \n Get Size\n \n
\n \n Clear Storage\n \n\n {state.isLoading && (\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading &&\n !state.isError &&\n state.isSuccess &&\n props.size && (\n \n
Maximum Size: {props.size.max}
\n
Used Space: {props.size.used}
\n
Available: {props.size.max - props.size.used}
\n
\n )}\n {!state.isLoading && !state.isError && state.isStorageCleaned && (\n \n Storage Cleared Successfully\n \n )}\n
\n );\n }\n\n const [value, setValue] = React.useState('1');\n\n const handleChange = (event: Event, newValue: string) => {\n dispatch({ type: 'RESET', miniAppError: null, inputError: null });\n setValue(newValue);\n };\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Secure storage',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n return (\n \n \n \n \n \n \n \n \n {SetSecureStorageCardActionsForm()}\n {GetSecureStorageCardActionsForm()}\n {RemoveSecureStorageCardActionsForm()}\n {OtherFunctionalitiesCardActionsForm()}\n \n \n );\n}\n\nconst mapStateToProps = (state) => {\n return {\n setItems: state.secureStorage.setItems,\n getItems: state.secureStorage.getItem,\n size: state.secureStorage.size,\n storageError: state.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n requestSetItems: (items) => dispatch(setItems(items)),\n requestGetItem: (key) => dispatch(getItem(key)),\n requestRemoveItems: (keys) => dispatch(removeItems(keys)),\n requestClear: () => dispatch(clear()),\n requestSize: () => dispatch(size()),\n };\n};\n\nexport { SecureStorageComponent };\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(SecureStorageComponent);\n","import MiniApp from 'js-miniapp-sdk';\nimport { MiniAppSecureStorageSize } from 'js-miniapp-sdk';\n\nimport {\n SET_SECURE_STORAGE_SUCCESS,\n SET_SECURE_STORAGE_FAILURE,\n GET_SECURE_STORAGE_SUCCESS,\n GET_SECURE_STORAGE_FAILURE,\n REMOVE_ITEMS_STORAGE_SUCCESS,\n REMOVE_ITEMS_STORAGE_FAILURE,\n CLEAR_SECURE_STORAGE_SUCCESS,\n CLEAR_SECURE_STORAGE_FAILURE,\n GET_SIZE_SECURE_STORAGE_SUCCESS,\n GET_SIZE_SECURE_STORAGE_FAILURE,\n} from './types';\n\ntype SetItemsSuccessAction = { type: string };\ntype GetItemSuccessAction = { type: string, item: string };\ntype RemoveItemsSuccessAction = { type: string };\ntype ClearSuccessAction = { type: string };\ntype SizeSuccessAction = { type: string, size: MiniAppSecureStorageSize };\n\nconst setItems = (items: string): Function => {\n return (dispatch) => {\n return MiniApp.secureStorageService\n .setItems(JSON.parse(items))\n .then(() => {\n console.log('setItems Success: ');\n dispatch({\n type: SET_SECURE_STORAGE_SUCCESS,\n });\n return Promise.resolve(undefined);\n })\n .catch((error) => {\n console.log('SetItems Error: ', error);\n dispatch({\n type: SET_SECURE_STORAGE_FAILURE,\n error,\n });\n throw error;\n });\n };\n};\n\nconst getItem = (key: string): Function => {\n return (dispatch) => {\n return MiniApp.secureStorageService\n .getItem(key)\n .then((responseData) => {\n console.log('getItems SuccessAction: ', responseData);\n dispatch({\n type: GET_SECURE_STORAGE_SUCCESS,\n item: responseData,\n });\n return Promise.resolve(responseData);\n })\n .catch((error) => {\n console.log('getItems Error: ', error);\n dispatch({\n type: GET_SECURE_STORAGE_FAILURE,\n error,\n });\n throw error;\n });\n };\n};\n\nconst removeItems = (keys: [string]): Function => {\n return (dispatch) => {\n return MiniApp.secureStorageService\n .removeItems(keys)\n .then(() => {\n console.log('removeItems SuccessAction: ');\n dispatch({\n type: REMOVE_ITEMS_STORAGE_SUCCESS,\n });\n return Promise.resolve(undefined);\n })\n .catch((error) => {\n console.log('removeItems Error: ', error);\n dispatch({\n type: REMOVE_ITEMS_STORAGE_FAILURE,\n error,\n });\n throw error;\n });\n };\n};\n\nconst clear = (): Function => {\n return (dispatch) => {\n return MiniApp.secureStorageService\n .clear()\n .then((responseData) => {\n console.log('clear SuccessAction: ', responseData);\n dispatch({\n type: CLEAR_SECURE_STORAGE_SUCCESS,\n });\n return Promise.resolve(responseData);\n })\n .catch((error) => {\n console.log('clear Error: ', error);\n dispatch({\n type: CLEAR_SECURE_STORAGE_FAILURE,\n error,\n });\n throw error;\n });\n };\n};\n\nconst size = (): Function => {\n return (dispatch) => {\n return MiniApp.secureStorageService\n .size()\n .then((responseData) => {\n console.log('size SuccessAction: ', responseData);\n dispatch({\n type: GET_SIZE_SECURE_STORAGE_SUCCESS,\n size: responseData,\n });\n return Promise.resolve(responseData);\n })\n .catch((error) => {\n console.log('size Error: ', error);\n dispatch({\n type: GET_SIZE_SECURE_STORAGE_FAILURE,\n error,\n });\n throw error;\n });\n };\n};\n\nexport { setItems, getItem, removeItems, clear, size };\nexport type {\n SetItemsSuccessAction,\n GetItemSuccessAction,\n RemoveItemsSuccessAction,\n ClearSuccessAction,\n SizeSuccessAction,\n};\n","const SET_SECURE_STORAGE_SUCCESS = 'SET_SECURE_STORAGE_SUCCESS';\nconst SET_SECURE_STORAGE_FAILURE = 'SET_SECURE_STORAGE_FAILURE';\nconst GET_SECURE_STORAGE_SUCCESS = 'GET_SECURE_STORAGE_SUCCESS';\nconst GET_SECURE_STORAGE_FAILURE = 'GET_SECURE_STORAGE_FAILURE';\nconst REMOVE_ITEMS_STORAGE_SUCCESS = 'REMOVE_ITEMS_SECURE_STORAGE_SUCCESS';\nconst REMOVE_ITEMS_STORAGE_FAILURE = 'REMOVE_ITEMS_SECURE_STORAGE_FAILURE';\nconst CLEAR_SECURE_STORAGE_SUCCESS = 'CLEAR_SECURE_STORAGE_SUCCESS';\nconst CLEAR_SECURE_STORAGE_FAILURE = 'CLEAR_SECURE_STORAGE_FAILURE';\nconst GET_SIZE_SECURE_STORAGE_SUCCESS = 'GET_SIZE_SECURE_STORAGE_SUCCESS';\nconst GET_SIZE_SECURE_STORAGE_FAILURE = 'GET_SIZE_SECURE_STORAGE_FAILURE';\n\nexport {\n SET_SECURE_STORAGE_SUCCESS,\n SET_SECURE_STORAGE_FAILURE,\n GET_SECURE_STORAGE_SUCCESS,\n GET_SECURE_STORAGE_FAILURE,\n REMOVE_ITEMS_STORAGE_SUCCESS,\n REMOVE_ITEMS_STORAGE_FAILURE,\n CLEAR_SECURE_STORAGE_SUCCESS,\n CLEAR_SECURE_STORAGE_FAILURE,\n GET_SIZE_SECURE_STORAGE_SUCCESS,\n GET_SIZE_SECURE_STORAGE_FAILURE,\n};\n","import React, { useEffect } from 'react';\n\nimport {\n Button,\n TextField,\n CardContent,\n CardActions,\n makeStyles,\n} from '@material-ui/core';\nimport MiniApp, {\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\nimport GreyCard from '../components/GreyCard';\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n marginTop: '40px',\n },\n content: {\n height: '50%',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n actions: {\n justifyContent: 'center',\n },\n textfield: {\n width: '80%',\n maxWidth: 300,\n background: 'white',\n '& input': {\n color: theme.color.primary,\n lineHeight: '1.5em',\n fontSize: '1.2em',\n },\n },\n}));\n\nfunction Share() {\n const classes = useStyles();\n const defaultInputValue = 'This is JS-SDK-Sample.';\n let inputValue = defaultInputValue;\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Share',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n const handleInput = (e: SyntheticInputEvent) => {\n e.preventDefault();\n inputValue = e.currentTarget.value;\n };\n\n const shareContent = () => {\n const info = { content: inputValue }; //see js-miniapp-bridge/types/share-info\n MiniApp.shareInfo(info)\n .then((success) => {\n console.log(success);\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n return (\n \n \n \n \n \n \n Share\n \n \n \n );\n}\n\nexport default Share;\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n TextField,\n CardContent,\n CardActions,\n makeStyles,\n Typography,\n} from '@material-ui/core';\nimport MiniApp, {\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n UniversalBridgeInfo,\n} from 'js-miniapp-sdk';\nimport { HostAppEvents } from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\nimport GreyCard from '../components/GreyCard';\n\nimport { red, green } from '@material-ui/core/colors';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n actions: {\n justifyContent: 'center',\n },\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n },\n sendInput: {\n width: '90%',\n marginTop: 10,\n marginBottom: 10,\n background: 'white',\n },\n receiveInput: {\n width: '90%',\n marginTop: 10,\n marginBottom: 10,\n disabled: 'disabled',\n caretColor: 'transparent',\n },\n formInput: {\n marginTop: 10,\n marginBottom: 10,\n background: 'white',\n width: '90%',\n },\n success: {\n color: green[500],\n marginTop: 20,\n textAlign: 'center',\n wordBreak: 'break-all',\n },\n faliure: {\n color: red[500],\n },\n}));\n\nconst UniversalBridge = () => {\n const classes = useStyles();\n const defaultJsonValue = '{\"data\":\"This is a sample json information\"}';\n let [inputValue, setInputValue] = useState(defaultJsonValue);\n let [infoInputKey, setInfoInputKey] = useState();\n let [infoInputValue, setInfoInputValue] = useState();\n let [infoInputDescription, setInfoInputDescription] = useState();\n let [receiveJsonInfo, setReceiveJsonInfo] = useState('');\n let [sendJsonStatus, setSendJsonStatus] = useState('');\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Universal Bridge',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n window.addEventListener(HostAppEvents.RECEIVE_JSON_INFO, function (e) {\n let message = e.detail.message;\n console.log(message);\n receiveJsonInfo = message;\n setReceiveJsonInfo(message);\n });\n\n const handleInput = (e: SyntheticInputEvent) => {\n e.preventDefault();\n setInputValue(e.currentTarget.value);\n };\n\n const clearSendInput = () => {\n setInputValue('');\n };\n\n const clearInfoSendInput = () => {\n setInfoInputKey('');\n setInfoInputValue('');\n setInfoInputDescription('');\n };\n\n const sendJson = () => {\n const info = { content: inputValue };\n MiniApp.universalBridge\n .sendJsonToHostapp(info)\n .then((success) => {\n console.log(success);\n setSendJsonStatus('SUCCESS');\n })\n .catch((miniAppError) => {\n console.error(miniAppError);\n setSendJsonStatus(miniAppError.message);\n });\n };\n\n const sendInfo = () => {\n const info: UniversalBridgeInfo = {\n key: infoInputKey,\n value: infoInputValue,\n description: infoInputDescription,\n };\n MiniApp.universalBridge\n .sendInfoToHostapp(info)\n .then((success) => {\n console.log(success);\n setSendJsonStatus('SUCCESS');\n })\n .catch((miniAppError) => {\n console.error(miniAppError);\n setSendJsonStatus(miniAppError.message);\n });\n };\n\n const showSendJsonStatus = () => {\n if (sendJsonStatus === '') {\n return
;\n }\n if (sendJsonStatus === 'SUCCESS') {\n return (\n \n \"{sendJsonStatus}\"\n \n );\n } else {\n return (\n \n \"Error: {sendJsonStatus}\"\n \n );\n }\n };\n\n return (\n
\n \n \n

Send JSON/String to HostApp

\n
{showSendJsonStatus()}
\n
\n \n \n \n \n \n Send Json\n \n \n Clear\n \n \n \n
\n setInfoInputKey(e.target.value)}\n />\n setInfoInputValue(e.target.value)}\n />\n setInfoInputDescription(e.target.value)}\n />\n
\n \n \n Send Info\n \n \n Clear\n \n \n \n \n

Receive JSON/String from HostApp

\n
\n \n \n \n
\n
\n );\n};\n\nexport default UniversalBridge;\n","// @flow\nimport React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n CardContent,\n CardActions,\n TextField,\n makeStyles,\n} from '@material-ui/core';\n\nimport GreyCard from '../components/GreyCard';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n actions: {\n justifyContent: 'center',\n paddingBottom: 16,\n },\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n },\n textfield: {\n width: '100%',\n },\n}));\n\nconst deepLinkStyle = makeStyles((theme) => ({\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n height: '50px',\n },\n card: {\n width: '100%',\n height: '100px',\n },\n actions: {\n justifyContent: 'center',\n paddingBottom: 16,\n },\n}));\n\nconst UriSchemes = () => {\n const EXTERNAL_WEBVIEW_URL =\n 'https://htmlpreview.github.io/?https://raw.githubusercontent.com/rakutentech/js-miniapp/master/js-miniapp-sample/external-webview/index.html';\n const classes = useStyles();\n const deeplinkClass = deepLinkStyle();\n const [params, setParams] = useState('?testSendParam=someValue&test2=test2');\n const [callbackUrl, setCallbackUrl] = useState(\n `${window.location.protocol}//${window.location.host}/index.html`\n );\n const [externalUrl, setExternalUrl] = useState('');\n\n function validateParams(params: string) {\n return params.startsWith('?') && params.indexOf('=') >= 0;\n }\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'URI Schemes',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n function onOpenExternalWebview() {\n if (params && !validateParams(params)) {\n window.alert(\n 'Invalid params. Please input params in the format ?param1=value1¶m2=value2'\n );\n return;\n }\n\n let url = new URL(EXTERNAL_WEBVIEW_URL + params);\n\n url.search = url.search\n .concat(url.search ? '&' : '?')\n .concat(`callbackUrl=${encodeURIComponent(callbackUrl)}`);\n\n onOpenUrl(url);\n }\n\n function onOpenUrl(url: URL) {\n window.location.href = url;\n }\n\n return (\n
\n \n tel: scheme\n \n \n +1-123-456-7890\n \n \n\n tel:// scheme\n \n \n +1-123-456-7890\n \n \n\n mailto:\n \n \n Address / cc / bcc / subject / body\n \n \n\n \n External Webview Params & Callback\n \n \n setParams(e.currentTarget.value)}\n value={params}\n label=\"Params to pass\"\n variant=\"outlined\"\n color=\"primary\"\n inputProps={{\n 'data-testid': 'input-field',\n }}\n />\n \n \n setCallbackUrl(e.currentTarget.value)}\n value={callbackUrl}\n label=\"Mini App Return URL\"\n variant=\"outlined\"\n color=\"primary\"\n inputProps={{\n 'data-testid': 'callback-input-field',\n }}\n />\n \n \n \n Open\n \n \n \n
\n \n URL or Deep Link\n \n setExternalUrl(e.currentTarget.value)}\n value={externalUrl}\n label=\"Deep Link URL\"\n variant=\"outlined\"\n color=\"primary\"\n inputProps={{\n 'data-testid': 'deeplink-input-field',\n }}\n />\n \n \n externalUrl && onOpenUrl(externalUrl)}\n >\n Open\n \n \n \n
\n );\n};\n\nexport default UriSchemes;\n","import React, { useReducer, useEffect, useState } from 'react';\n\nimport {\n Avatar,\n Button,\n CardHeader,\n Container,\n CircularProgress,\n FormGroup,\n Typography,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n TextField,\n Paper,\n InputAdornment,\n} from '@material-ui/core';\nimport { red, green } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Tab from '@material-ui/core/Tab';\nimport TabContext from '@material-ui/lab/TabContext';\nimport TabList from '@material-ui/lab/TabList';\nimport TabPanel from '@material-ui/lab/TabPanel';\nimport SearchIcon from '@material-ui/icons/Search';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport clsx from 'clsx';\nimport {\n CustomPermission,\n CustomPermissionResult,\n CustomPermissionName,\n CustomPermissionStatus,\n Contact,\n Points,\n} from 'js-miniapp-sdk';\nimport { connect } from 'react-redux';\n\nimport { requestCustomPermissions } from '../services/permissions/actions';\nimport {\n requestContactList,\n requestProfilePhoto,\n requestUserName,\n requestPoints,\n} from '../services/user/actions';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n root: {\n background: theme.color.secondary,\n width: '85vw',\n maxWidth: 500,\n },\n wrapperContainer: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n paddingLeft: 0,\n },\n wrapper: {\n position: 'relative',\n marginTop: 10,\n },\n buttonSuccess: {\n backgroundColor: green[500],\n '&:hover': {\n backgroundColor: green[700],\n },\n },\n buttonFailure: {\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n error: {\n color: red[500],\n marginTop: 10,\n },\n success: {\n color: green[500],\n marginTop: 20,\n },\n rootUserGroup: {\n alignItems: 'center',\n },\n formInput: {\n width: '90%',\n marginTop: 10,\n },\n rootCardActions: {\n justifyContent: 'center',\n },\n caseSelector: {\n marginTop: 5,\n },\n button: {\n marginBottom: 15,\n },\n dataFormsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n },\n paper: {\n width: '100%',\n paddingBottom: 10,\n marginBottom: 20,\n '&:last-child': {\n marginBottom: 0,\n },\n },\n profilePhoto: {\n height: 100,\n width: 100,\n },\n profilePhotoOuter: {\n display: 'flex',\n justifyContent: 'center',\n },\n userProfile: {\n maxHeight: 125,\n overflow: 'auto',\n },\n contactsList: {\n maxHeight: 320,\n overflow: 'auto',\n },\n red: {\n color: red[500],\n },\n}));\n\nexport const initialState = {\n isNamePhotoLoading: false,\n isNamePhottoError: false,\n hasRequestedNamePhotoPermissions: false,\n isContactsLoading: false,\n isContactsError: false,\n hasRequestedContactsPermissions: false,\n isPointsLoading: false,\n isPointsError: false,\n hasRequestedPointPermissions: false,\n};\n\ntype State = {\n isNamePhotoLoading: ?boolean,\n isNamePhotoError: ?boolean,\n hasRequestedNamePhotoPermissions: boolean,\n isContactsLoading: ?boolean,\n isContactsError: ?boolean,\n hasRequestedContactsPermissions: boolean,\n isPointsLoading: ?boolean,\n isPointsError: ?boolean,\n hasRequestedPointPermissions: boolean,\n};\n\ntype Action = {\n type: string,\n};\n\nexport const dataFetchReducer = (state: State, action: Action) => {\n switch (action.type) {\n case 'NAME_PHOTO_FETCH_INIT':\n return {\n ...state,\n isNamePhotoLoading: true,\n isNamePhotoError: false,\n hasRequestedNamePhotoPermissions: false,\n };\n case 'NAME_PHOTO_FETCH_SUCCESS':\n return {\n ...state,\n isNamePhotoLoading: false,\n isNamePhotoError: false,\n hasRequestedNamePhotoPermissions: true,\n };\n case 'NAME_PHOTO_FETCH_FAILURE':\n return {\n ...initialState,\n isNamePhotoLoading: false,\n isNamePhotoError: true,\n };\n case 'CONTACTS_FETCH_INIT':\n return {\n ...state,\n isContactsLoading: true,\n isContactsError: false,\n hasRequestedContactsPermissions: false,\n };\n case 'CONTACTS_FETCH_SUCCESS':\n return {\n ...state,\n isContactsLoading: false,\n isContactsError: false,\n hasRequestedContactsPermissions: true,\n };\n case 'CONTACTS_FETCH_FAILURE':\n return {\n ...initialState,\n isContactsLoading: false,\n isContactsError: true,\n };\n case 'POINTS_FETCH_INIT':\n return {\n ...state,\n isPointsLoading: true,\n isPointsError: false,\n hasRequestedPointPermissions: false,\n };\n case 'POINTS_FETCH_SUCCESS':\n return {\n ...state,\n isPointsLoading: false,\n isPointsError: false,\n hasRequestedPointPermissions: true,\n };\n case 'POINTS_FETCH_FAILURE':\n return {\n ...initialState,\n isPointsLoading: false,\n isPointsError: true,\n };\n default:\n throw Error('Unknown action type');\n }\n};\n\ntype UserDetailsProps = {\n permissions: CustomPermissionName[],\n userName: string,\n profilePhoto: string,\n contactList: Contact[],\n points: Points,\n getUserName: () => Promise,\n getProfilePhoto: () => Promise,\n getContacts: () => Promise,\n getPoints: () => Promise,\n requestPermissions: (\n permissions: CustomPermission[]\n ) => Promise,\n};\n\nfunction UserDetails(props: UserDetailsProps) {\n const [state, dispatch] = useReducer(dataFetchReducer, initialState);\n const classes = useStyles();\n\n const namePhotoButtonClassname = getButtonState(state.isNamePhotoError);\n const contactsButtonClassname = getButtonState(state.isContactsError);\n const pointsButtonClassname = getButtonState(state.isPointsError);\n\n const [showClearIcon, setShowClearIcon] = useState('none');\n const [searchText, setSearchText] = useState('');\n const dataFiltered = filterSearchData(searchText, props.contactList);\n\n const handleSearchTextChange = (\n event: React.ChangeEvent\n ): void => {\n setShowClearIcon(event.target.value === '' ? 'none' : 'flex');\n setSearchText(event.target.value);\n };\n\n const handleSearchReset = (): void => {\n setSearchText('');\n setShowClearIcon('none');\n };\n\n function filterSearchData(query: string, contactList: Contact[]) {\n if (!query) {\n return contactList;\n } else {\n let filteredContacts = contactList\n .filter(function (contact) {\n return contact.name.toLocaleLowerCase().includes(query.toLowerCase());\n })\n .map(function (contact) {\n return contact;\n });\n return filteredContacts;\n }\n }\n\n function getButtonState(isError: boolean) {\n return clsx({\n [classes.buttonFailure]: isError,\n [classes.buttonSuccess]: !isError,\n });\n }\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'User details',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n function requestNamePhoto() {\n const permissionsList = [\n {\n name: CustomPermissionName.USER_NAME,\n description:\n 'We would like to display your Username on your profile page.',\n },\n {\n name: CustomPermissionName.PROFILE_PHOTO,\n description:\n 'We would like to display your Profile Photo on your profile page.',\n },\n ];\n\n props\n .requestPermissions(permissionsList)\n .then((permissions) => filterAllowedPermissions(permissions))\n .then((permissions) =>\n Promise.all([\n hasPermission(CustomPermissionName.USER_NAME, permissions)\n ? fetchUsername()\n : null,\n hasPermission(CustomPermissionName.PROFILE_PHOTO, permissions)\n ? fetchProfilePhoto()\n : null,\n ])\n )\n .then(() => dispatch({ type: 'NAME_PHOTO_FETCH_SUCCESS' }))\n .catch((e) => {\n console.error(e);\n dispatch({ type: 'NAME_PHOTO_FETCH_FAILURE' });\n });\n }\n\n function fetchUsername() {\n props\n .getUserName()\n .then((string) => {\n dispatch({ type: 'NAME_PHOTO_FETCH_SUCCESS' });\n })\n .catch((e) => {\n dispatch({ type: 'NAME_PHOTO_FETCH_FAILURE', error: e });\n });\n }\n\n function fetchProfilePhoto() {\n props\n .getProfilePhoto()\n .then((permissions) => {\n dispatch({ type: 'NAME_PHOTO_FETCH_SUCCESS' });\n })\n .catch((e) => {\n dispatch({ type: 'NAME_PHOTO_FETCH_FAILURE', error: e });\n });\n }\n\n function requestContacts() {\n const permissionsList = [\n {\n name: CustomPermissionName.CONTACT_LIST,\n description: 'We would like to send messages to your contacts.',\n },\n ];\n\n props\n .requestPermissions(permissionsList)\n .then((permissions) => filterAllowedPermissions(permissions))\n .then((permissions) =>\n Promise.all([\n hasPermission(CustomPermissionName.CONTACT_LIST, permissions)\n ? props.getContacts()\n : null,\n ])\n )\n .then(() => dispatch({ type: 'CONTACTS_FETCH_SUCCESS' }))\n .catch((e) => {\n console.error(e);\n dispatch({ type: 'CONTACTS_FETCH_FAILURE' });\n });\n }\n\n function requestPoints() {\n const permissionsList = [\n {\n name: CustomPermissionName.POINTS,\n description:\n 'We would like to display your Points on your profile page.',\n },\n ];\n props.points = undefined;\n\n props\n .requestPermissions(permissionsList)\n .then((permissions) => filterAllowedPermissions(permissions))\n .then((permissions) =>\n Promise.all([\n hasPermission(CustomPermissionName.POINTS, permissions)\n ? props.getPoints()\n : null,\n ])\n )\n .then(() => dispatch({ type: 'POINTS_FETCH_SUCCESS' }))\n .catch((e) => {\n console.error(e);\n dispatch({ type: 'POINTS_FETCH_FAILURE' });\n });\n }\n\n function filterAllowedPermissions(permissions) {\n return permissions\n .filter(\n (permission) => permission.status === CustomPermissionStatus.ALLOWED\n )\n .map((permission) => permission.name);\n }\n\n function handleNamePhotoClick(e) {\n if (!state.isNamePhotoLoading) {\n e.preventDefault();\n dispatch({ type: 'NAME_PHOTO_FETCH_INIT' });\n requestNamePhoto();\n }\n }\n\n function handleContactsClick(e) {\n if (!state.isContactsLoading) {\n e.preventDefault();\n dispatch({ type: 'CONTACTS_FETCH_INIT' });\n requestContacts();\n }\n }\n\n function handlePointsClick(e) {\n if (!state.isPointsLoading) {\n e.preventDefault();\n dispatch({ type: 'POINTS_FETCH_INIT' });\n requestPoints();\n }\n }\n\n function CardNamePhotoActionsForm() {\n const hasPhotoPermission =\n state.hasRequestedNamePhotoPermissions &&\n hasPermission(CustomPermissionName.PROFILE_PHOTO);\n\n const hasNamePermission =\n state.hasRequestedNamePhotoPermissions &&\n hasPermission(CustomPermissionName.USER_NAME);\n\n return (\n \n \n \n {state.hasRequestedNamePhotoPermissions && !hasPhotoPermission && (\n \n \n \n )}\n {hasPhotoPermission && (\n
\n \n
\n )}\n
\n \n \n
\n
\n \n Fetch User Name and Photo\n \n {state.isNamePhotoLoading && (\n \n )}\n
\n {state.isNamePhotoError && (\n \n Error fetching the user name and photo\n \n )}\n
\n );\n }\n\n function CardContactsActionsForm() {\n const hasContactsPermision = true;\n return (\n \n
\n \n Fetch Contacts\n \n {state.isContactsLoading && (\n \n )}\n
\n \n \n \n ),\n endAdornment: (\n \n \n \n ),\n }}\n />\n \n {hasContactsPermision && props.contactList && (\n \n )}\n \n {state.hasRequestedContactsPermissions && !hasContactsPermision && (\n \n \n \n )}\n {hasContactsPermision &&\n props.contactList &&\n dataFiltered.map((contact) => (\n \n \n \n \n \n \n {contact.name && contact.name !== '' && (\n {'Name: ' + contact.name}\n )}\n \n \n {contact.email && contact.email !== '' && (\n {'Email: ' + contact.email}\n )}\n \n \n {contact.allEmailList &&\n contact.allEmailList.length > 0 && (\n \n {'Email list: ' +\n contact.allEmailList.join(', ')}\n \n )}\n \n \n }\n />\n \n ))}\n \n \n\n {state.isContactsError && (\n \n Error fetching the contacts\n \n )}\n
\n );\n }\n\n function CardPointActionsForm() {\n return (\n \n \n \n \n \n \n \n\n
\n \n Fetch Points\n \n {state.isPointsLoading && (\n \n )}\n
\n {state.isPointsError && (\n \n Error fetching the points\n \n )}\n
\n );\n }\n\n function isPointsPermissionDenied() {\n return (\n state.hasRequestedPointPermissions &&\n !hasPermission(CustomPermissionName.POINTS)\n );\n }\n\n function hasPermission(permission, permissionList: ?(string[])) {\n permissionList = permissionList || props.permissions || [];\n if (permissionList.indexOf !== undefined) {\n return permissionList.indexOf(permission) > -1;\n } else if (permissionList.permissions.indexOf !== undefined) {\n return permissionList.permissions.indexOf(permission) > -1;\n }\n return false;\n }\n\n const [value, setValue] = React.useState('1');\n\n const handleChange = (event: Event, newValue: string) => {\n setValue(newValue);\n };\n\n return (\n \n \n \n \n \n \n \n {CardNamePhotoActionsForm()}\n {CardContactsActionsForm()}\n {CardPointActionsForm()}\n \n \n );\n}\n\nconst mapStateToProps = (state) => {\n return {\n permissions: state.permissions,\n userName: state.user.userName,\n profilePhoto: state.user.profilePhoto,\n contactList: state.user.contactList,\n points: state.user.points,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getUserName: () => dispatch(requestUserName()),\n getProfilePhoto: () => dispatch(requestProfilePhoto()),\n getContacts: () => dispatch(requestContactList()),\n getPoints: () => dispatch(requestPoints()),\n requestPermissions: (permissions) =>\n dispatch(requestCustomPermissions(permissions)),\n };\n};\n\nexport { UserDetails };\nexport default connect(mapStateToProps, mapDispatchToProps)(UserDetails);\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n CardContent,\n CardActions,\n makeStyles,\n Snackbar,\n} from '@material-ui/core';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport { connect } from 'react-redux';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nimport GreyCard from '../components/GreyCard';\nimport {\n setMessagingUniqueId,\n setMauid,\n setUniqueId,\n} from '../services/uuid/actions';\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n width: '100%',\n height: 'auto',\n marginTop: '40px',\n display: 'grid',\n },\n content: {\n height: 'auto',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n wordBreak: 'break-word',\n },\n actions: {\n justifyContent: 'center',\n },\n uuidNotFound: {\n width: 200,\n },\n}));\n\ntype UUIDProps = {\n uniqueId: string,\n messagingUniqueId: string,\n mauid: string,\n uniqueIdError: string,\n messagingUniqueIdError: string,\n mauidError: string,\n getUniqueId: Function,\n getMessagingUniqueId: Function,\n getMauid: Function,\n};\n\nconst UuidFetcher = (props: UUIDProps) => {\n const classes = useStyles();\n const [copyStatus, setCopyStatus] = useState({\n success: false,\n error: false,\n });\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Unique ID',\n 'Screen',\n 'Page',\n ''\n );\n });\n function textCopied(text, result) {\n if (result) {\n setCopyStatus({ success: true, error: false });\n } else {\n setCopyStatus({ success: false, error: true });\n }\n }\n\n return (\n \n \n {props.uniqueId ?? props.uniqueIdError ?? 'Not Available'}\n \n \n \n GET UNIQUE ID\n \n \n \n Copy\n \n \n {\n setCopyStatus({ success: false, error: false });\n }}\n message=\"Copied to clipboard !!\"\n />\n {\n setCopyStatus({ success: false, error: false });\n }}\n message=\"Failed to copy!\"\n />\n \n \n {props.messagingUniqueId ??\n props.messagingUniqueIdError ??\n 'Not Available'}\n \n \n \n GET MESSAGING UNIQUE ID\n \n \n \n Copy\n \n \n {\n setCopyStatus({ success: false, error: false });\n }}\n message=\"Copied to clipboard !!\"\n />\n {\n setCopyStatus({ success: false, error: false });\n }}\n message=\"Failed to copy!\"\n />\n \n\n \n {props.mauid ?? props.mauidError ?? 'Not Available'}\n \n\n \n \n GET MAUID\n \n \n \n Copy\n \n \n \n \n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n uniqueId: state.uuid.uniqueId,\n uniqueIdError: state.uuid.uniqueIdError,\n messagingUniqueId: state.uuid.messagingUniqueId,\n messagingUniqueIdError: state.uuid.messagingUniqueIdError,\n mauid: state.uuid.mauid,\n mauidError: state.uuid.mauidError,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getUniqueId: () => dispatch(setUniqueId()),\n getMessagingUniqueId: () => dispatch(setMessagingUniqueId()),\n getMauid: () => dispatch(setMauid()),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UuidFetcher);\n","import MiniApp from 'js-miniapp-sdk';\n\nimport {\n SET_UNIQUE_ID,\n UNIQUE_ID_FETCH_ERROR,\n SET_MESSAGING_UNIQUE_ID,\n SET_MAUID,\n MESSAGING_UNIQUE_ID_FETCH_ERROR,\n MAUID_FETCH_ERROR,\n} from './types';\n\ntype GetUUIDAction = { type: String, payload: ?string, error: ?string };\n\ntype UUIDAction = GetUUIDAction;\n\nconst setUniqueId = (): Function => {\n return (dispatch) => {\n MiniApp.getUniqueId()\n .then((uuidFromSDK) => {\n dispatch({\n type: SET_UNIQUE_ID,\n payload: uuidFromSDK,\n });\n })\n .catch((error) => {\n dispatch({\n type: UNIQUE_ID_FETCH_ERROR,\n error,\n });\n });\n };\n};\n\nconst setMessagingUniqueId = (): Function => {\n return (dispatch) => {\n MiniApp.getMessagingUniqueId()\n .then((uuidFromSDK) => {\n dispatch({\n type: SET_MESSAGING_UNIQUE_ID,\n payload: uuidFromSDK,\n });\n })\n .catch((error) => {\n dispatch({\n type: MESSAGING_UNIQUE_ID_FETCH_ERROR,\n error,\n });\n });\n };\n};\n\nconst setMauid = (): Function => {\n return (dispatch) => {\n MiniApp.getMauid()\n .then((mauidFromSdk) => {\n dispatch({\n type: SET_MAUID,\n payload: mauidFromSdk,\n });\n })\n .catch((error) => {\n dispatch({\n type: MAUID_FETCH_ERROR,\n error,\n });\n });\n };\n};\n\nexport { setUniqueId, setMessagingUniqueId, setMauid };\nexport type { UUIDAction };\n","const SET_UNIQUE_ID = 'SET_UNIQUE_ID';\nconst UNIQUE_ID_FETCH_ERROR = 'UNIQUE_ID_FETCH_ERROR';\nconst SET_MESSAGING_UNIQUE_ID = 'SET_MESSAGING_UNIQUE_ID';\nconst MESSAGING_UNIQUE_ID_FETCH_ERROR = 'MESSAGING_UNIQU_ID_FETCH_ERROR';\nconst SET_MAUID = 'SET_MAUID';\nconst MAUID_FETCH_ERROR = 'MAUID_FETCH_ERROR';\nexport {\n SET_UNIQUE_ID,\n UNIQUE_ID_FETCH_ERROR,\n SET_MESSAGING_UNIQUE_ID,\n SET_MAUID,\n MESSAGING_UNIQUE_ID_FETCH_ERROR,\n MAUID_FETCH_ERROR,\n};\n","import { useState } from 'react';\n\nimport MiniApp from 'js-miniapp-sdk';\n\nconst useGeoLocation = () => {\n const [state, setState] = useState({\n isWatching: false,\n isLoading: false,\n });\n const watch = () => {\n return MiniApp.requestLocationPermission(\n 'We would like to display the location of your device.'\n )\n .then(() => {\n setState({\n isWatching: true,\n isLoading: true,\n });\n\n const timeout = setTimeout(() => {\n setState({\n isWatching: false,\n isLoading: false,\n error: 'Timeout',\n });\n }, 6000);\n\n navigator.geolocation.getCurrentPosition(\n (pos) => {\n clearTimeout(timeout);\n\n const { longitude, latitude } = pos.coords;\n setState({\n isWatching: true,\n isLoading: false,\n location: {\n latitude,\n longitude,\n },\n });\n },\n (_error) => {\n clearTimeout(timeout);\n\n setState({\n isWatching: false,\n isLoading: false,\n error: 'Location Disabled',\n });\n },\n {\n enableHighAccuracy: true,\n }\n );\n })\n .catch((error) =>\n setState({\n isWatching: false,\n isLoading: false,\n error,\n })\n );\n };\n\n const unwatch = () => {\n setState({\n isWatching: false,\n });\n };\n\n return [state, watch, unwatch];\n};\n\nexport default useGeoLocation;\n","import React, { useEffect } from 'react';\n\nimport {\n Button,\n CardActions,\n CardContent,\n CircularProgress,\n makeStyles,\n} from '@material-ui/core';\nimport LocationOffIcon from '@material-ui/icons/LocationOff';\nimport LocationSearchingIcon from '@material-ui/icons/LocationSearching';\nimport clsx from 'clsx';\n\nimport GreyCard from '../components/GreyCard';\nimport useGeoLocation from '../hooks/useGeoLocation';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: '40px',\n },\n content: {\n height: '50%',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n locationContainer: {\n height: '70%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n '& div .label': {\n display: 'inline',\n padding: '.2em .6em .3em',\n fontSize: '75%',\n fontWeight: 700,\n lineHeight: 1,\n textAlign: 'center',\n whiteSpace: 'nowrap',\n verticalAlign: 'baseline',\n borderRadius: '.25em',\n },\n },\n actions: {\n justifyContent: 'center',\n },\n button: {},\n disabled: {\n opacity: 0.5,\n color: '#fff !important',\n backgroundColor: `${theme.color.primary} !important`,\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n}));\n\nconst Location = (props: any) => {\n const classes = useStyles();\n const [state, watch, unwatch] = useGeoLocation();\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Location',\n 'Screen',\n 'Page',\n ''\n );\n });\n return (\n \n \n {state.error &&
Error: {state.error}
}\n\n {state.isLoading && (\n \n )}\n\n {state.location && state.isWatching && (\n \n
\n Longitude:\n {state.location.longitude}\n
\n
\n Latitude:\n {state.location.latitude}\n
\n \n )}\n
\n \n }\n variant=\"contained\"\n color=\"primary\"\n disabled={state.isWatching}\n className={clsx(classes.button, {\n [classes.disabled]: state.isWatching,\n })}\n onClick={watch}\n >\n TURN ON\n \n }\n variant=\"contained\"\n color=\"primary\"\n onClick={unwatch}\n disabled={!state.isWatching}\n className={clsx(classes.button, {\n [classes.disabled]: !state.isWatching,\n })}\n >\n TURN OFF\n \n \n
\n );\n};\n\nexport default Location;\n","// @flow\nimport React, { useEffect } from 'react';\nimport { sendAnalytics } from './helper';\n\nimport { Button, Card, CardContent, makeStyles } from '@material-ui/core';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: 300,\n width: '100%',\n },\n content: {\n height: '50%',\n justifyContent: 'space-between',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n}));\n\nconst WindowActions = () => {\n const classes = useStyles();\n const onAlert = () => {\n window.alert('This is window alert!');\n };\n const onConfirm = () => {\n window.confirm('This is window confirm!');\n };\n const onPrompt = () => {\n window.prompt('This is window prompt!', 'sure!');\n };\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Window actions',\n 'Screen',\n 'Page',\n ''\n );\n });\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default WindowActions;\n","import React from 'react';\n\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport ChatIcon from '@material-ui/icons/Chat';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport EventIcon from '@material-ui/icons/CompareArrows';\nimport FingerprintIcon from '@material-ui/icons/Fingerprint';\nimport GifIcon from '@material-ui/icons/Gif';\nimport HomeIcon from '@material-ui/icons/Home';\nimport LaptopWindowsIcon from '@material-ui/icons/LaptopWindows';\nimport LinkIcon from '@material-ui/icons/Link';\nimport AdsIcon from '@material-ui/icons/LocalPlay';\nimport LocationOnIcon from '@material-ui/icons/LocationOn';\nimport MediaIcon from '@material-ui/icons/MusicVideo';\nimport NotificationImportantOutlinedIcon from '@material-ui/icons/NotificationImportantOutlined';\nimport PaletteIcon from '@material-ui/icons/Palette';\nimport PersonIcon from '@material-ui/icons/Person';\nimport PhotoCamera from '@material-ui/icons/PhotoCamera';\nimport SecurityIcon from '@material-ui/icons/Security';\nimport SendIcon from '@material-ui/icons/SendSharp';\nimport ShareIcon from '@material-ui/icons/Share';\nimport ShoppingCartIcon from '@material-ui/icons/ShoppingCart';\nimport StorageIcon from '@material-ui/icons/Storage';\nimport VpnKeyIcon from '@material-ui/icons/VpnKey';\n\nimport Ads from './pages/ads';\nimport { CloseConfirmAlert } from './pages/app-close-alert';\nimport AuthToken from './pages/auth-token';\nimport Camera from './pages/camera';\nimport ColorThemeComponent from './pages/color-theme';\nimport EventListener from './pages/event-listener';\nimport FileDownload from './pages/file-download';\nimport FileUploader from './pages/file-upload';\nimport GifPage from './pages/gifs';\nimport { PurchaseProductComponent } from './pages/in-app-purchase';\nimport Landing from './pages/landing';\nimport LocalStorage from './pages/local-storage';\nimport Media from './pages/media';\nimport TalkToChatBot from './pages/message';\nimport SecureStorageComponent from './pages/secure-storage';\nimport Share from './pages/share';\nimport UniversalBridge from './pages/universal-bridge';\nimport UriSchemes from './pages/uri-schemes';\nimport UserDetails from './pages/user-details';\nimport UuidFetcher from './pages/uuid-sdk';\nimport WebLocation from './pages/web-location';\nimport WindowActions from './pages/window-actions';\n\n//default root location when using ios\nconst iosHomeNavLink = { navLink: '/index.html', label: 'Home' };\n//default root location when using android\nconst androidHomeNavLink = { navLink: '/miniapp/index.html', label: 'Home' };\n//default supposed root location\n//todo fix this\nconst homeNavLink = { navLink: '/', label: 'Home' };\nconst landingNavLink = { navLink: '/landing', label: 'Home' };\nconst localStorageNavLink = {\n navLink: '/local_storage',\n label: 'Local Storage',\n};\nconst fetchUniqueIdNavLink = {\n navLink: '/fetch_id',\n label: 'Fetch Unique ID',\n};\nconst deviceLocationNavLink = {\n navLink: '/device_location',\n label: 'Device Location',\n};\nconst authTokenNavLink = {\n navLink: '/auth_token',\n label: 'Auth token',\n};\nconst userDetailNavLink = { navLink: '/user_detail', label: 'User Details' };\nconst messageNavLink = { navLink: '/chatbot', label: 'Message' };\nconst windowActionNavLink = {\n navLink: '/window_actions',\n label: 'Window Actions',\n};\nconst uriSchemesNavLink = { navLink: '/uri_schemes', label: 'URI Schemes' };\nconst eventListenerNavLink = {\n navLink: '/event_listener',\n label: 'Event Listener',\n};\nconst mediaNavLink = { navLink: '/media', label: 'Media' };\nconst shareNavLink = { navLink: '/share', label: 'Share' };\nconst adsNavLink = { navLink: '/ads', label: 'Ads' };\nconst cameraNavLink = { navLink: '/camera', label: 'Camera' };\nconst fileDownloadNavLink = {\n navLink: '/file_download',\n label: 'File Download',\n};\nconst fileUploadNavLink = { navLink: '/file_upload', label: 'File Upload' };\nconst gifsNavLink = { navLink: '/gifs', label: \"GIF's & WebP\" };\nconst secureStorageNavLink = {\n navLink: '/secure-storage',\n label: 'SecureStorage',\n};\nconst closeAlertNavLink = {\n navLink: '/close-confirm-alert',\n label: 'Close Feature',\n};\nconst universalBridgeNavLink = {\n navLink: '/universal-bridge',\n label: 'Universal Bridge',\n};\nconst inAppPurchaseNavLink = {\n navLink: '/in-app-purchase',\n label: 'Purchase',\n};\nconst colorThemeNavLink = {\n navLink: '/color-theme',\n label: 'Color Theme',\n};\n\nconst navLinks = [\n iosHomeNavLink,\n androidHomeNavLink,\n homeNavLink,\n landingNavLink,\n localStorageNavLink,\n fetchUniqueIdNavLink,\n deviceLocationNavLink,\n authTokenNavLink,\n userDetailNavLink,\n messageNavLink,\n windowActionNavLink,\n uriSchemesNavLink,\n eventListenerNavLink,\n mediaNavLink,\n shareNavLink,\n adsNavLink,\n cameraNavLink,\n fileDownloadNavLink,\n fileUploadNavLink,\n gifsNavLink,\n secureStorageNavLink,\n closeAlertNavLink,\n universalBridgeNavLink,\n inAppPurchaseNavLink,\n colorThemeNavLink,\n];\n\nconst homeItem = [\n {\n icon: ,\n label: landingNavLink.label,\n navLink: landingNavLink.navLink,\n element: ,\n },\n];\n\nconst appItems = [\n {\n icon: ,\n label: localStorageNavLink.label,\n navLink: localStorageNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: fetchUniqueIdNavLink.label,\n navLink: fetchUniqueIdNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: deviceLocationNavLink.label,\n navLink: deviceLocationNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: authTokenNavLink.label,\n navLink: authTokenNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: userDetailNavLink.label,\n navLink: userDetailNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: messageNavLink.label,\n navLink: messageNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: windowActionNavLink.label,\n navLink: windowActionNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: uriSchemesNavLink.label,\n navLink: uriSchemesNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: eventListenerNavLink.label,\n navLink: eventListenerNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: mediaNavLink.label,\n navLink: mediaNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: shareNavLink.label,\n navLink: shareNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: adsNavLink.label,\n navLink: adsNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: cameraNavLink.label,\n navLink: cameraNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: fileDownloadNavLink.label,\n navLink: fileDownloadNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: fileUploadNavLink.label,\n navLink: fileUploadNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: gifsNavLink.label,\n navLink: gifsNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: secureStorageNavLink.label,\n navLink: secureStorageNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: closeAlertNavLink.label,\n navLink: closeAlertNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: universalBridgeNavLink.label,\n navLink: universalBridgeNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: inAppPurchaseNavLink.label,\n navLink: inAppPurchaseNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: colorThemeNavLink.label,\n navLink: colorThemeNavLink.navLink,\n element: ,\n },\n];\n\nconst navItems: Object[] = homeItem.concat(\n appItems.sort((a, b) => a.label.localeCompare(b.label))\n);\n\nexport { navItems, navLinks };\n","import React, { useEffect } from 'react';\n\nimport { Hidden, Tooltip, useTheme, useMediaQuery } from '@material-ui/core';\nimport Divider from '@material-ui/core/Divider';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport { makeStyles } from '@material-ui/core/styles';\nimport SwipeableDrawer from '@material-ui/core/SwipeableDrawer';\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport clsx from 'clsx';\nimport { connect } from 'react-redux';\nimport { NavLink } from 'react-router-dom';\nimport semver from 'semver';\n\nimport { setPageTitle } from '../services/home/actions';\nimport { setHostEnvironmentInfo } from '../services/landing/actions';\n\nconst useStyles = makeStyles((theme) => ({\n drawer: {},\n drawerPaper: {\n [theme.breakpoints.up('sm')]: {\n height: 'calc(100% - 64px)',\n top: '64px !important',\n },\n },\n drawerPaperContent: {\n height: '100%',\n width: 250,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n drawerPaperContentTopList: {\n height: 'calc(100% - 70px)',\n overflowY: 'scroll',\n [theme.breakpoints.down('xs')]: {\n height: '100%',\n },\n },\n drawerPaperShrink: {\n width: '70px',\n overflowX: 'hidden',\n },\n shrinkedListItem: {\n paddingLeft: '24px',\n },\n NavListRoot: {\n paddingTop: 1,\n },\n tooltip: {\n backgroundColor: theme.color.primary,\n },\n tooltipArrow: {\n color: theme.color.primary,\n },\n navLink: {\n height: 56,\n },\n activeNavLink: {\n backgroundColor: theme.color.primary,\n color: 'white',\n '& .icon': {\n color: 'white',\n },\n },\n}));\n\ntype ResponsiveDrawerProps = {\n shrinked: boolean,\n show: boolean,\n width: any,\n navItems: Array,\n onShrink: Function,\n onOpenClose: Function,\n changeTitle: Function,\n sdkVersion: string,\n getHostInfo: Function,\n};\n\nconst ResponsiveDrawer = (props: ResponsiveDrawerProps) => {\n useEffect(() => {\n try {\n props.getHostInfo();\n } catch (e) {\n console.log(e);\n }\n }, [props]);\n const classes = useStyles();\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('xs'));\n if (isMobile) {\n props = { ...props, shrinked: false };\n }\n const toggleShrink = () => {\n props.onShrink();\n };\n\n const isSupportedSdkVersion = (supportedAbove, supportedBelow) => {\n const sdkVersion = props.sdkVersion || '0.0.1';\n supportedAbove = supportedAbove || '0.0.1';\n supportedBelow = supportedBelow || '10000.0.0';\n\n return (\n semver.gte(sdkVersion, supportedAbove) &&\n semver.lte(sdkVersion, supportedBelow)\n );\n };\n\n return (\n props.onOpenClose(e)}\n onOpen={(e) => props.onOpenClose(e)}\n >\n \n \n {props.show &&\n props.navItems.map(\n (it) =>\n isSupportedSdkVersion(\n it.supportedAboveSdkVersion,\n it.supportedBelowSdkVersion\n ) && (\n \n {\n props.changeTitle(it.label);\n if (isMobile) {\n props.onOpenClose(undefined);\n }\n }}\n component={NavLink}\n to={it.navLink}\n key={it.label}\n activeclassname={classes.activeNavLink}\n className={clsx(classes.navLink, {\n [classes.shrinkedListItem]: props.shrinked,\n })}\n >\n {it.icon}\n \n \n \n )\n )}\n \n \n \n \n \n \n \n {props.shrinked ? : }\n \n \n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n sdkVersion: state.info.sdkVersion,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n changeTitle: (title) => dispatch(setPageTitle(title)),\n getHostInfo: () => dispatch(setHostEnvironmentInfo()),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ResponsiveDrawer);\n","import { SET_CURRENT_PAGE_TITLE } from './types';\n\ntype SetPageAction = { type: string, payload: string };\ntype HomeAction = SetPageAction;\n\nconst setPageTitle = (title: string): SetPageAction => {\n return {\n type: SET_CURRENT_PAGE_TITLE,\n payload: title,\n };\n};\n\nexport { setPageTitle };\nexport type { HomeAction };\n","const SET_CURRENT_PAGE_TITLE = 'SET_CURRENT_PAGE_TITLE';\n\nexport { SET_CURRENT_PAGE_TITLE };\n","import React, { Fragment, useState, useEffect } from 'react';\n\nimport AppBar from '@material-ui/core/AppBar';\nimport IconButton from '@material-ui/core/IconButton';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Typography from '@material-ui/core/Typography';\nimport CloseIcon from '@material-ui/icons/Close';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport { connect } from 'react-redux';\nimport { useLocation, useNavigate, useParams } from 'react-router-dom';\n\nimport { navLinks } from '../routes';\nimport Drawer from './Drawer';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n menuButton: {\n marginRight: theme.spacing(2),\n },\n title: {\n // flexGrow: 1,\n },\n}));\n\ntype ToolBarProps = {\n showDrawer: Boolean,\n actions: any,\n onShrinkToggle: Function,\n onDrawerToggle: Function,\n navItems: any,\n};\n\nconst ToolBar = (props: ToolBarProps) => {\n const classes = useStyles();\n const [showDrawerState, setDrawer] = useState(props.showDrawer ?? false);\n\n const location = useLocation();\n const [title, setTitle] = useState('');\n useEffect(() => {\n const navLinkLabel: { navLink: string, label: string } = navLinks.find(\n (item) => item.navLink === location.pathname\n ) ?? { navLink: location.pathname, label: 'Sample MiniApp' };\n setTitle(navLinkLabel.label);\n }, [location.pathname]);\n useEffect(\n () => {\n setDrawer(props.showDrawer);\n }, // eslint-disable-next-line\n [props.showDrawer]\n );\n const [shrinkState, setShrink] = useState(false);\n const toggleDrawer = () => {\n const showFlag = !showDrawerState;\n props.onDrawerToggle(showFlag);\n setDrawer(showFlag);\n };\n const onDrawerShrink = () => {\n const shrinkFlag = !shrinkState;\n props.onShrinkToggle(shrinkFlag);\n setShrink(shrinkFlag);\n };\n\n const onOpenClose = (event) => {\n if (\n event &&\n event.type === 'keydown' &&\n (event.key === 'Tab' || event.key === 'Shift')\n ) {\n return;\n }\n toggleDrawer();\n };\n return (\n \n \n \n \n {showDrawerState ? (\n \n ) : (\n \n )}\n \n \n {title}\n \n
{props.actions}
\n
\n
\n \n
\n );\n};\n\nfunction withRouter(Component) {\n function ComponentWithRouterProp(props) {\n let location = useLocation();\n let navigate = useNavigate();\n let params = useParams();\n return ;\n }\n\n return ComponentWithRouterProp;\n}\n\nconst mapStateToProps = (state, props) => {\n return { ...props };\n};\n\nexport default connect(mapStateToProps)(withRouter(ToolBar));\n","import React, { useState, useEffect } from 'react';\n\nimport {\n makeStyles,\n Container,\n useTheme,\n useMediaQuery,\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport { BrowserRouter as Router, Route, Routes } from 'react-router-dom';\n\nimport { navItems } from './../routes';\nimport ToolBar from '../components/ToolBar';\n\nconst DRAWER_WIDTH = '250px';\nconst DRAWER_SHRINKED_WIDTH = '70px';\n\nconst useStyles = makeStyles((theme) => ({\n mainContent: {\n width: '100%',\n height: 'calc(100% - 64px)',\n },\n mainContentMobile: {\n height: 'calc(100% - 56px)',\n },\n wrapperContainer: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'initial',\n alignItems: 'center',\n },\n drawerClosed: {\n width: '100% !important',\n marginLeft: '0 !important',\n },\n drawerOpen: {\n width: `calc(100% - ${DRAWER_WIDTH})`,\n marginLeft: DRAWER_WIDTH,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n drawerOpenShrink: {\n width: `calc(100% - ${DRAWER_SHRINKED_WIDTH})`,\n marginLeft: DRAWER_SHRINKED_WIDTH,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n}));\n\nconst Home = (props: any) => {\n const classes = useStyles();\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('xs'));\n const [shrink, setShrink] = useState(false);\n const [showDrawer, setShowDrawer] = useState(!isMobile);\n useEffect(() => {\n setShowDrawer(!isMobile);\n }, [isMobile]);\n const onShrinkToggle = (shrinkState) => {\n setShrink(shrinkState);\n };\n const onDrawerToggle = (show) => {\n setShowDrawer(show);\n };\n return (\n \n \n \n \n \n {navItems.map((it) => (\n (\n \n {it.label}\n \n ))\n }\n >\n ))}\n \n \n \n \n \n );\n};\n\nexport default Home;\n","import type { DownloadFileAction } from './actions';\nimport {\n FILE_DOWNLOAD_FAILURE,\n FILE_DOWNLOAD_SUCCESS,\n FILE_DOWNLOAD_INIT,\n} from './types';\n\ntype FileDownloadState = {\n +filename: ?string,\n};\n\nconst defaultState: FileDownloadState = {\n filename: undefined,\n error: undefined,\n isLoading: false,\n};\n\nconst FileDownloadReducer = (\n state: FileDownloadState = defaultState,\n action: DownloadFileAction = {}\n): FileDownloadState => {\n if (action.type === FILE_DOWNLOAD_INIT) {\n return {\n ...defaultState,\n isLoading: true,\n };\n } else if (action.type === FILE_DOWNLOAD_SUCCESS) {\n return {\n ...defaultState,\n filename: action.filename,\n };\n } else if (action.type === FILE_DOWNLOAD_FAILURE) {\n return {\n ...defaultState,\n error: action.error,\n };\n }\n return state;\n};\n\nexport { FileDownloadReducer };\n","import type { HomeAction } from './actions';\nimport { SET_CURRENT_PAGE_TITLE } from './types';\n\ntype HomePageState = {\n title: string,\n};\n\nconst homeState: HomePageState = {\n title: 'Home',\n};\n\nexport default (\n state: HomePageState = homeState,\n action: HomeAction\n): HomePageState => {\n if (action !== undefined && action.type === SET_CURRENT_PAGE_TITLE) {\n return { ...state, title: action.payload };\n }\n return state;\n};\n","import { HostEnvironmentInfo } from 'js-miniapp-sdk';\n\nimport type {\n RequestHostInfoSuccessAction,\n OnStorageReadySuccessAction,\n} from './actions';\nimport {\n REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS,\n ON_SECURE_STORAGE_READY_SUCCESS,\n ON_SECURE_STORAGE_READY_FAILURE,\n} from './types';\n\nconst defaultInfo = {};\nconst HostEnvironmentInfoReducer = (\n state: ?HostEnvironmentInfo = defaultInfo,\n action: RequestHostInfoSuccessAction\n): ?HostEnvironmentInfo => {\n switch (action.type) {\n case REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS:\n return action.info;\n default:\n return state;\n }\n};\n\nconst defaultStorageStatusItem = null;\nconst SecureStorageStatusReducer = (\n state: ?string = defaultStorageStatusItem,\n action: OnStorageReadySuccessAction\n) => {\n switch (action.type) {\n case ON_SECURE_STORAGE_READY_SUCCESS:\n return {\n isReady: true,\n error: null,\n };\n case ON_SECURE_STORAGE_READY_FAILURE:\n return {\n isReady: false,\n error: action.error,\n ...state,\n };\n default:\n return {\n isReady: false,\n error: null,\n ...state,\n };\n }\n};\n\nexport { HostEnvironmentInfoReducer, SecureStorageStatusReducer };\n","import type { MessageType, SetMessageTypeAction } from './types';\nimport { MessageTypeId, SET_MESSAGE_TYPES } from './types';\n\ntype MessageTypeState = {\n messageTypes: Array,\n};\n\nconst messageTypeState = {\n messageTypes: [\n {\n id: MessageTypeId.SINGLE_CONTACT,\n name: 'Send a message to a single contact',\n },\n {\n id: MessageTypeId.SINGLE_CONTACT_ID,\n name: 'Send a message to a specific contact',\n },\n {\n id: MessageTypeId.MULTIPLE_CONTACTS,\n name: 'Send a message to multiple contacts',\n },\n ],\n};\n\nexport default (state: MessageTypeState, action: SetMessageTypeAction) => {\n if (action.type === SET_MESSAGE_TYPES) {\n return { ...state, messageTypes: action.payload };\n }\n return messageTypeState;\n};\n","import { CustomPermissionName, CustomPermissionStatus } from 'js-miniapp-sdk';\n\nimport type { PermissionsAction } from './actions';\nimport {\n REQUEST_PERMISSIONS_SUCCESS,\n REQUEST_PERMISSIONS_FAILURE,\n} from './types';\n\ntype PermissionsState = {\n type: REQUEST_PERMISSIONS_FAILURE,\n permissions: CustomPermissionResult[],\n error: MiniAppError,\n};\n\nconst defaultState: PermissionsState = {\n type: undefined,\n permissions: [],\n error: null,\n};\n\nconst PermissionsReducer = (\n state: CustomPermissionName[] = defaultState,\n action: PermissionsAction\n): CustomPermissionName[] => {\n switch (action.type) {\n case REQUEST_PERMISSIONS_SUCCESS:\n const denied = action.permissions\n .filter((it) => it.status === CustomPermissionStatus.DENIED)\n .map((it) => it.name);\n const allowed = action.permissions\n .filter((it) => it.status === CustomPermissionStatus.ALLOWED)\n .map((it) => it.name);\n const array = state.permissions\n .concat(allowed)\n .filter((permission) => denied.indexOf(permission) <= -1);\n\n return {\n type: REQUEST_PERMISSIONS_SUCCESS,\n permissions: array,\n error: action.error,\n };\n case REQUEST_PERMISSIONS_FAILURE:\n return {\n ...defaultState,\n error: action.error,\n };\n default:\n return state;\n }\n};\n\nexport { PermissionsReducer };\n","import { combineReducers } from 'redux';\n\nimport type {\n SetItemsSuccessAction,\n GetItemSuccessAction,\n RemoveItemsSuccessAction,\n SizeSuccessAction,\n ClearSuccessAction,\n} from './actions';\nimport {\n CLEAR_SECURE_STORAGE_SUCCESS,\n GET_SECURE_STORAGE_SUCCESS,\n GET_SIZE_SECURE_STORAGE_SUCCESS,\n REMOVE_ITEMS_STORAGE_SUCCESS,\n SET_SECURE_STORAGE_SUCCESS,\n} from './types';\n\nconst defaultSetItems = null;\nconst setItemsReducer = (\n state: ?string = defaultSetItems,\n action: SetItemsSuccessAction\n): ?string => {\n switch (action.type) {\n case SET_SECURE_STORAGE_SUCCESS:\n return action.type;\n default:\n return state;\n }\n};\n\nconst defaultGetItems = null;\nconst getItemsReducer = (\n state: ?string = defaultGetItems,\n action: GetItemSuccessAction\n): ?string => {\n switch (action.type) {\n case GET_SECURE_STORAGE_SUCCESS:\n return action.item;\n default:\n return state;\n }\n};\n\nconst defaultRemoveItems = null;\nconst removeItemsReducer = (\n state: ?string = defaultRemoveItems,\n action: RemoveItemsSuccessAction\n): ?string => {\n switch (action.type) {\n case REMOVE_ITEMS_STORAGE_SUCCESS:\n return action.type;\n default:\n return state;\n }\n};\n\nconst defaultSizeItem = null;\nconst getSizeReducer = (\n state: ?string = defaultSizeItem,\n action: SizeSuccessAction\n): ?string => {\n switch (action.type) {\n case GET_SIZE_SECURE_STORAGE_SUCCESS:\n return action.size;\n default:\n return state;\n }\n};\n\nconst defaultClearItem = null;\nconst clearStorageReducer = (\n state: ?string = defaultClearItem,\n action: ClearSuccessAction\n): ?string => {\n switch (action.type) {\n case CLEAR_SECURE_STORAGE_SUCCESS:\n return action.type;\n default:\n return state;\n }\n};\n\nexport default combineReducers({\n setItems: setItemsReducer,\n getItem: getItemsReducer,\n removeItems: removeItemsReducer,\n size: getSizeReducer,\n clear: clearStorageReducer,\n});\n","import { Points } from 'js-miniapp-sdk';\nimport { combineReducers } from 'redux';\n\nimport type {\n UserNameSuccessAction,\n ProfilePhotoSuccessAction,\n ContactListSuccessAction,\n AccessTokenSuccessAction,\n PointsSuccessAction,\n} from './actions';\nimport {\n REQUEST_CONTACT_LIST_SUCCESS,\n REQUEST_USER_NAME_SUCCESS,\n REQUEST_PROFILE_PHOTO_SUCCESS,\n REQUEST_ACCESS_TOKEN_SUCCESS,\n REQUEST_POINTS_SUCCESS,\n} from './types';\n\nconst defaultUserName = null;\nconst userNameReducer = (\n state: ?string = defaultUserName,\n action: UserNameSuccessAction\n): ?string => {\n switch (action.type) {\n case REQUEST_USER_NAME_SUCCESS:\n return action.userName;\n default:\n return state;\n }\n};\n\nconst defaultProfilePhoto = null;\nconst profilePhotoReducer = (\n state: ?string = defaultProfilePhoto,\n action: ProfilePhotoSuccessAction\n): ?string => {\n switch (action.type) {\n case REQUEST_PROFILE_PHOTO_SUCCESS:\n return action.url;\n default:\n return state;\n }\n};\n\nconst defaultContactList = null;\nconst contactListReducer = (\n state: ?(string[]) = defaultContactList,\n action: ContactListSuccessAction\n): ?(string[]) => {\n switch (action.type) {\n case REQUEST_CONTACT_LIST_SUCCESS:\n return action.contacts;\n default:\n return state;\n }\n};\n\nconst defaultAccessToken = null;\nconst accessTokenReducer = (\n state: ?string = defaultAccessToken,\n action: AccessTokenSuccessAction\n): ?string => {\n switch (action.type) {\n case REQUEST_ACCESS_TOKEN_SUCCESS:\n return action.token;\n default:\n return state;\n }\n};\n\nconst defaultPoints = {};\nconst pointsReducer = (\n state: ?Points = defaultPoints,\n action: PointsSuccessAction\n): ?Points => {\n switch (action.type) {\n case REQUEST_POINTS_SUCCESS:\n return action.points;\n default:\n return state;\n }\n};\n\nexport default combineReducers({\n userName: userNameReducer,\n profilePhoto: profilePhotoReducer,\n contactList: contactListReducer,\n accessToken: accessTokenReducer,\n points: pointsReducer,\n});\n","import type { UUIDAction } from './actions';\nimport {\n SET_UNIQUE_ID,\n UNIQUE_ID_FETCH_ERROR,\n SET_MESSAGING_UNIQUE_ID,\n SET_MAUID,\n MESSAGING_UNIQUE_ID_FETCH_ERROR,\n MAUID_FETCH_ERROR,\n} from './types';\n\ntype UUIDState = {\n +uniqueId: ?string,\n +messagingUniqueId: ?string,\n +mauid: ?string,\n};\n\nconst defaultState: UUIDState = {\n uniqueId: undefined,\n messagingUniqueId: undefined,\n mauid: undefined,\n uniqueIdError: undefined,\n messagingUniqueIdError: undefined,\n mauidError: undefined,\n};\n\nconst UUIDReducer = (\n state: UUIDState = defaultState,\n action: UUIDAction = {}\n): UUIDState => {\n if (action.type === SET_UNIQUE_ID) {\n return {\n ...defaultState,\n uniqueId: action.payload,\n };\n }\n if (action.type === SET_MESSAGING_UNIQUE_ID) {\n return {\n ...defaultState,\n messagingUniqueId: action.payload,\n };\n } else if (action.type === SET_MAUID) {\n return {\n ...defaultState,\n mauid: action.payload,\n };\n } else if (action.type === MESSAGING_UNIQUE_ID_FETCH_ERROR) {\n return {\n ...defaultState,\n messagingUniqueIdError: action.error,\n };\n } else if (action.type === MAUID_FETCH_ERROR) {\n return {\n ...defaultState,\n mauidError: action.error,\n };\n } else if (action.type === UNIQUE_ID_FETCH_ERROR) {\n return {\n ...defaultState,\n uniqueIdError: action.error,\n };\n }\n\n return state;\n};\n\nexport { UUIDReducer };\n","import { combineReducers } from 'redux';\n\nimport { FileDownloadReducer } from './filedownload/reducers';\nimport HomeStateReducer from './home/reducers';\nimport {\n HostEnvironmentInfoReducer,\n SecureStorageStatusReducer,\n} from './landing/reducers';\nimport MessageReducer from './message/reducers';\nimport { PermissionsReducer } from './permissions/reducers';\nimport storageReducer from './secure-storage/reducers';\nimport userReducer from './user/reducers';\nimport { UUIDReducer } from './uuid/reducers';\n\nexport default combineReducers({\n message: MessageReducer,\n home: HomeStateReducer,\n permissions: PermissionsReducer,\n user: userReducer,\n uuid: UUIDReducer,\n info: HostEnvironmentInfoReducer,\n file: FileDownloadReducer,\n secureStorage: storageReducer,\n secureStorageStatus: SecureStorageStatusReducer,\n});\n","import { createStore, applyMiddleware } from 'redux';\nimport thunk from 'redux-thunk';\n\nimport reducers from './reducers';\n\nexport default createStore(reducers, applyMiddleware(thunk));\n","import { createTheme } from '@material-ui/core';\nimport { grey } from '@material-ui/core/colors';\n\nexport default createTheme({\n palette: {\n primary: {\n main: '#bf0000',\n },\n secondary: grey,\n },\n color: {\n primary: '#bf0000',\n secondary: 'lightgrey',\n },\n});\n","import React from 'react';\n\nimport { makeStyles, ThemeProvider } from '@material-ui/core';\nimport { Provider } from 'react-redux';\n\nimport Home from './pages/home';\nimport store from './services/store';\nimport Theme from './theme';\n\nconst useStyles = makeStyles((theme) => ({\n App: {\n width: '100%',\n textAlign: 'center',\n },\n}));\n\nfunction App() {\n const classes = useStyles();\n return (\n \n \n
\n \n
\n
\n
\n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport './index.css';\nimport App from './App';\n//$FlowFixMe\nimport * as serviceWorker from './serviceWorker';\n\nconst container = document.getElementById('root');\nconst root = createRoot(container);\nroot.render(\n \n \n \n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","!function(r){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=r();else if(\"function\"==typeof define&&define.amd)define([],r);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).MiniApp=r()}}((function(){var r,e,t,n=(r=function(r,t){(function(r){(function(){\"use strict\";function r(r){if(r>2147483647)throw new RangeError('The value \"'+r+'\" is invalid for option \"size\"');var e=new Uint8Array(r);return e.__proto__=n.prototype,e}function n(r,e,t){if(\"number\"==typeof r){if(\"string\"==typeof e)throw new TypeError('The \"string\" argument must be of type string. Received type number');return u(r)}return o(r,e,t)}function o(e,t,o){if(\"string\"==typeof e)return function(e,t){if(\"string\"==typeof t&&\"\"!==t||(t=\"utf8\"),!n.isEncoding(t))throw new TypeError(\"Unknown encoding: \"+t);var o=0|c(e,t),i=r(o),u=i.write(e,t);return u!==o&&(i=i.slice(0,u)),i}(e,t);if(ArrayBuffer.isView(e))return a(e);if(null==e)throw TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof e);if(F(e,ArrayBuffer)||e&&F(e.buffer,ArrayBuffer))return function(r,e,t){if(e<0||r.byteLength=2147483647)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+2147483647..toString(16)+\" bytes\");return 0|r}function c(r,e){if(n.isBuffer(r))return r.length;if(ArrayBuffer.isView(r)||F(r,ArrayBuffer))return r.byteLength;if(\"string\"!=typeof r)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof r);var t=r.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===t)return 0;for(var i=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return t;case\"utf8\":case\"utf-8\":return U(r).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*t;case\"hex\":return t>>>1;case\"base64\":return x(r).length;default:if(i)return o?-1:U(r).length;e=(\"\"+e).toLowerCase(),i=!0}}function p(r,e,t){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===t||t>this.length)&&(t=this.length),t<=0)return\"\";if((t>>>=0)<=(e>>>=0))return\"\";for(r||(r=\"utf8\");;)switch(r){case\"hex\":return O(this,e,t);case\"utf8\":case\"utf-8\":return b(this,e,t);case\"ascii\":return P(this,e,t);case\"latin1\":case\"binary\":return w(this,e,t);case\"base64\":return S(this,e,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return M(this,e,t);default:if(n)throw new TypeError(\"Unknown encoding: \"+r);r=(r+\"\").toLowerCase(),n=!0}}function f(r,e,t){var n=r[e];r[e]=r[t],r[t]=n}function l(r,e,t,o,i){if(0===r.length)return-1;if(\"string\"==typeof t?(o=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),L(t=+t)&&(t=i?0:r.length-1),t<0&&(t=r.length+t),t>=r.length){if(i)return-1;t=r.length-1}else if(t<0){if(!i)return-1;t=0}if(\"string\"==typeof e&&(e=n.from(e,o)),n.isBuffer(e))return 0===e.length?-1:d(r,e,t,o,i);if(\"number\"==typeof e)return e&=255,\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.call(r,e,t):d(r,[e],t,o,i);throw new TypeError(\"val must be string, number or Buffer\")}function d(r,e,t,n,o){var i,u=1,a=r.length,s=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(r.length<2||e.length<2)return-1;u=2,a/=2,s/=2,t/=2}function c(r,e){return 1===u?r[e]:r.readUInt16BE(e*u)}if(o){var p=-1;for(i=t;ia&&(t=a-s),i=t;i>=0;i--){for(var f=!0,l=0;lo&&(n=o):n=o;var i=e.length;n>i/2&&(n=i/2);for(var u=0;u>8,o=t%256,i.push(o),i.push(n);return i}(e,r.length-t),r,t,n)}function S(r,e,t){return 0===e&&t===r.length?q.fromByteArray(r):q.fromByteArray(r.slice(e,t))}function b(r,e,t){t=Math.min(r.length,t);for(var n=[],o=e;o239?4:c>223?3:c>191?2:1;if(o+f<=t)switch(f){case 1:c<128&&(p=c);break;case 2:128==(192&(i=r[o+1]))&&(s=(31&c)<<6|63&i)>127&&(p=s);break;case 3:i=r[o+1],u=r[o+2],128==(192&i)&&128==(192&u)&&(s=(15&c)<<12|(63&i)<<6|63&u)>2047&&(s<55296||s>57343)&&(p=s);break;case 4:i=r[o+1],u=r[o+2],a=r[o+3],128==(192&i)&&128==(192&u)&&128==(192&a)&&(s=(15&c)<<18|(63&i)<<12|(63&u)<<6|63&a)>65535&&s<1114112&&(p=s)}null===p?(p=65533,f=1):p>65535&&(p-=65536,n.push(p>>>10&1023|55296),p=56320|1023&p),n.push(p),o+=f}return function(r){var e=r.length;if(e<=A)return String.fromCharCode.apply(String,r);for(var t=\"\",n=0;ne&&(r+=\" ... \"),\"\"},n.prototype.compare=function(r,e,t,o,i){if(F(r,Uint8Array)&&(r=n.from(r,r.offset,r.byteLength)),!n.isBuffer(r))throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+typeof r);if(void 0===e&&(e=0),void 0===t&&(t=r?r.length:0),void 0===o&&(o=0),void 0===i&&(i=this.length),e<0||t>r.length||o<0||i>this.length)throw new RangeError(\"out of range index\");if(o>=i&&e>=t)return 0;if(o>=i)return-1;if(e>=t)return 1;if(this===r)return 0;for(var u=(i>>>=0)-(o>>>=0),a=(t>>>=0)-(e>>>=0),s=Math.min(u,a),c=this.slice(o,i),p=r.slice(e,t),f=0;f>>=0,isFinite(t)?(t>>>=0,void 0===n&&(n=\"utf8\")):(n=t,t=void 0)}var o=this.length-e;if((void 0===t||t>o)&&(t=o),r.length>0&&(t<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var i=!1;;)switch(n){case\"hex\":return h(this,r,e,t);case\"utf8\":case\"utf-8\":return g(this,r,e,t);case\"ascii\":return y(this,r,e,t);case\"latin1\":case\"binary\":return E(this,r,e,t);case\"base64\":return v(this,r,e,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return m(this,r,e,t);default:if(i)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),i=!0}},n.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function P(r,e,t){var n=\"\";t=Math.min(r.length,t);for(var o=e;oo)&&(t=o);for(var i=\"\",u=e;ut)throw new RangeError(\"Trying to access beyond buffer length\")}function _(r,e,t,o,i,u){if(!n.isBuffer(r))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||er.length)throw new RangeError(\"Index out of range\")}function C(r,e,t,n,o,i){if(t+n>r.length)throw new RangeError(\"Index out of range\");if(t<0)throw new RangeError(\"Index out of range\")}function j(r,e,t,n,o){return e=+e,t>>>=0,o||C(r,0,t,4),$.write(r,e,t,n,23,4),t+4}function B(r,e,t,n,o){return e=+e,t>>>=0,o||C(r,0,t,8),$.write(r,e,t,n,52,8),t+8}n.prototype.slice=function(r,e){var t=this.length;(r=~~r)<0?(r+=t)<0&&(r=0):r>t&&(r=t),(e=void 0===e?t:~~e)<0?(e+=t)<0&&(e=0):e>t&&(e=t),e>>=0,e>>>=0,t||I(r,e,this.length);for(var n=this[r],o=1,i=0;++i>>=0,e>>>=0,t||I(r,e,this.length);for(var n=this[r+--e],o=1;e>0&&(o*=256);)n+=this[r+--e]*o;return n},n.prototype.readUInt8=function(r,e){return r>>>=0,e||I(r,1,this.length),this[r]},n.prototype.readUInt16LE=function(r,e){return r>>>=0,e||I(r,2,this.length),this[r]|this[r+1]<<8},n.prototype.readUInt16BE=function(r,e){return r>>>=0,e||I(r,2,this.length),this[r]<<8|this[r+1]},n.prototype.readUInt32LE=function(r,e){return r>>>=0,e||I(r,4,this.length),(this[r]|this[r+1]<<8|this[r+2]<<16)+16777216*this[r+3]},n.prototype.readUInt32BE=function(r,e){return r>>>=0,e||I(r,4,this.length),16777216*this[r]+(this[r+1]<<16|this[r+2]<<8|this[r+3])},n.prototype.readIntLE=function(r,e,t){r>>>=0,e>>>=0,t||I(r,e,this.length);for(var n=this[r],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*e)),n},n.prototype.readIntBE=function(r,e,t){r>>>=0,e>>>=0,t||I(r,e,this.length);for(var n=e,o=1,i=this[r+--n];n>0&&(o*=256);)i+=this[r+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*e)),i},n.prototype.readInt8=function(r,e){return r>>>=0,e||I(r,1,this.length),128&this[r]?-1*(255-this[r]+1):this[r]},n.prototype.readInt16LE=function(r,e){r>>>=0,e||I(r,2,this.length);var t=this[r]|this[r+1]<<8;return 32768&t?4294901760|t:t},n.prototype.readInt16BE=function(r,e){r>>>=0,e||I(r,2,this.length);var t=this[r+1]|this[r]<<8;return 32768&t?4294901760|t:t},n.prototype.readInt32LE=function(r,e){return r>>>=0,e||I(r,4,this.length),this[r]|this[r+1]<<8|this[r+2]<<16|this[r+3]<<24},n.prototype.readInt32BE=function(r,e){return r>>>=0,e||I(r,4,this.length),this[r]<<24|this[r+1]<<16|this[r+2]<<8|this[r+3]},n.prototype.readFloatLE=function(r,e){return r>>>=0,e||I(r,4,this.length),$.read(this,r,!0,23,4)},n.prototype.readFloatBE=function(r,e){return r>>>=0,e||I(r,4,this.length),$.read(this,r,!1,23,4)},n.prototype.readDoubleLE=function(r,e){return r>>>=0,e||I(r,8,this.length),$.read(this,r,!0,52,8)},n.prototype.readDoubleBE=function(r,e){return r>>>=0,e||I(r,8,this.length),$.read(this,r,!1,52,8)},n.prototype.writeUIntLE=function(r,e,t,n){r=+r,e>>>=0,t>>>=0,n||_(this,r,e,t,Math.pow(2,8*t)-1,0);var o=1,i=0;for(this[e]=255&r;++i>>=0,t>>>=0,n||_(this,r,e,t,Math.pow(2,8*t)-1,0);var o=t-1,i=1;for(this[e+o]=255&r;--o>=0&&(i*=256);)this[e+o]=r/i&255;return e+t},n.prototype.writeUInt8=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,1,255,0),this[e]=255&r,e+1},n.prototype.writeUInt16LE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,2,65535,0),this[e]=255&r,this[e+1]=r>>>8,e+2},n.prototype.writeUInt16BE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,2,65535,0),this[e]=r>>>8,this[e+1]=255&r,e+2},n.prototype.writeUInt32LE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,4,4294967295,0),this[e+3]=r>>>24,this[e+2]=r>>>16,this[e+1]=r>>>8,this[e]=255&r,e+4},n.prototype.writeUInt32BE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,4,4294967295,0),this[e]=r>>>24,this[e+1]=r>>>16,this[e+2]=r>>>8,this[e+3]=255&r,e+4},n.prototype.writeIntLE=function(r,e,t,n){if(r=+r,e>>>=0,!n){var o=Math.pow(2,8*t-1);_(this,r,e,t,o-1,-o)}var i=0,u=1,a=0;for(this[e]=255&r;++i>0)-a&255;return e+t},n.prototype.writeIntBE=function(r,e,t,n){if(r=+r,e>>>=0,!n){var o=Math.pow(2,8*t-1);_(this,r,e,t,o-1,-o)}var i=t-1,u=1,a=0;for(this[e+i]=255&r;--i>=0&&(u*=256);)r<0&&0===a&&0!==this[e+i+1]&&(a=1),this[e+i]=(r/u>>0)-a&255;return e+t},n.prototype.writeInt8=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,1,127,-128),r<0&&(r=255+r+1),this[e]=255&r,e+1},n.prototype.writeInt16LE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,2,32767,-32768),this[e]=255&r,this[e+1]=r>>>8,e+2},n.prototype.writeInt16BE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,2,32767,-32768),this[e]=r>>>8,this[e+1]=255&r,e+2},n.prototype.writeInt32LE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,4,2147483647,-2147483648),this[e]=255&r,this[e+1]=r>>>8,this[e+2]=r>>>16,this[e+3]=r>>>24,e+4},n.prototype.writeInt32BE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,4,2147483647,-2147483648),r<0&&(r=4294967295+r+1),this[e]=r>>>24,this[e+1]=r>>>16,this[e+2]=r>>>8,this[e+3]=255&r,e+4},n.prototype.writeFloatLE=function(r,e,t){return j(this,r,e,!0,t)},n.prototype.writeFloatBE=function(r,e,t){return j(this,r,e,!1,t)},n.prototype.writeDoubleLE=function(r,e,t){return B(this,r,e,!0,t)},n.prototype.writeDoubleBE=function(r,e,t){return B(this,r,e,!1,t)},n.prototype.copy=function(r,e,t,o){if(!n.isBuffer(r))throw new TypeError(\"argument should be a Buffer\");if(t||(t=0),o||0===o||(o=this.length),e>=r.length&&(e=r.length),e||(e=0),o>0&&o=this.length)throw new RangeError(\"Index out of range\");if(o<0)throw new RangeError(\"sourceEnd out of bounds\");o>this.length&&(o=this.length),r.length-e=0;--u)r[u+e]=this[u+t];else Uint8Array.prototype.set.call(r,this.subarray(t,o),e);return i},n.prototype.fill=function(r,e,t,o){if(\"string\"==typeof r){if(\"string\"==typeof e?(o=e,e=0,t=this.length):\"string\"==typeof t&&(o=t,t=this.length),void 0!==o&&\"string\"!=typeof o)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof o&&!n.isEncoding(o))throw new TypeError(\"Unknown encoding: \"+o);if(1===r.length){var i=r.charCodeAt(0);(\"utf8\"===o&&i<128||\"latin1\"===o)&&(r=i)}}else\"number\"==typeof r&&(r&=255);if(e<0||this.length>>=0,t=void 0===t?this.length:t>>>0,r||(r=0),\"number\"==typeof r)for(u=e;u55295&&t<57344){if(!o){if(t>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(u+1===n){(e-=3)>-1&&i.push(239,191,189);continue}o=t;continue}if(t<56320){(e-=3)>-1&&i.push(239,191,189),o=t;continue}t=65536+(o-55296<<10|t-56320)}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,t<128){if((e-=1)<0)break;i.push(t)}else if(t<2048){if((e-=2)<0)break;i.push(t>>6|192,63&t|128)}else if(t<65536){if((e-=3)<0)break;i.push(t>>12|224,t>>6&63|128,63&t|128)}else{if(!(t<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;i.push(t>>18|240,t>>12&63|128,t>>6&63|128,63&t|128)}}return i}function x(r){return q.toByteArray(function(r){if((r=(r=r.split(\"=\")[0]).trim().replace(T,\"\")).length<2)return\"\";for(;r.length%4!=0;)r+=\"=\";return r}(r))}function N(r,e,t,n){for(var o=0;o=e.length||o>=r.length);++o)e[o+t]=r[o];return o}function F(r,e){return r instanceof e||null!=r&&null!=r.constructor&&null!=r.constructor.name&&r.constructor.name===e.name}function L(r){return r!=r}}).call(this)}).call(this,n({}).Buffer)},function(t){return e||r(e={exports:{},parent:t},e.exports),e.exports}),o={};Object.defineProperty(o,\"__esModule\",{value:!0}),o.MiniAppSecureStorageEvents=void 0,(t=o.MiniAppSecureStorageEvents||(o.MiniAppSecureStorageEvents={})).onReady=\"miniappsecurestorageready\",t.onLoadError=\"miniappsecurestorageloaderror\";var i={};Object.defineProperty(i,\"__esModule\",{value:!0}),i.AccessTokenData=void 0;i.AccessTokenData=function(r){this.token=r.token,this.validUntil=new Date(r.validUntil),this.scopes=new a(r.scopes)};var u,a=function(r){this.audience=r.audience,this.scopes=r.scopes},s={},c=this&&this.__extends||(u=function(r,e){return(u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])})(r,e)},function(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function t(){this.constructor=r}u(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)});Object.defineProperty(s,\"__esModule\",{value:!0}),s.MiniAppError=void 0;var p=function(r){function e(t){var n=r.call(this)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.name=t.type,n.message=t.message,n}return c(e,r),e}(Error);s.MiniAppError=p;var f,l,d={},h=this&&this.__extends||(f=function(r,e){return(f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])})(r,e)},function(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function t(){this.constructor=r}f(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)});Object.defineProperty(d,\"__esModule\",{value:!0}),d.parseAuthError=d.AuthorizationFailureError=d.ScopesNotSupportedError=d.AudienceNotSupportedError=void 0,function(r){r.AudienceNotSupportedError=\"AudienceNotSupportedError\",r.ScopesNotSupportedError=\"ScopesNotSupportedError\",r.AuthorizationFailureError=\"AuthorizationFailureError\"}(l||(l={}));var g=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"The value passed for 'audience' is not supported.\",n}return h(e,r),e}(s.MiniAppError);d.AudienceNotSupportedError=g;var y=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"The value passed for 'scopes' is not supported.\",n}return h(e,r),e}(s.MiniAppError);d.ScopesNotSupportedError=y;var E=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n}return h(e,r),e}(s.MiniAppError);d.AuthorizationFailureError=E,d.parseAuthError=function(r){switch(l[r.type]){case l.AuthorizationFailureError:return new E(r);case l.AudienceNotSupportedError:return new g(r);case l.ScopesNotSupportedError:return new y(r);default:return}};var v,m,S={},b=this&&this.__extends||(v=function(r,e){return(v=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])})(r,e)},function(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function t(){this.constructor=r}v(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)});Object.defineProperty(S,\"__esModule\",{value:!0}),S.parseDownloadError=S.DownloadHttpError=S.SaveFailureError=S.InvalidUrlError=S.DownloadFailedError=void 0,function(r){r.DownloadFailedError=\"DownloadFailedError\",r.InvalidUrlError=\"InvalidUrlError\",r.SaveFailureError=\"SaveFailureError\",r.DownloadHttpError=\"DownloadHttpError\"}(m||(m={}));var A=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Failed to download the file.\",n}return b(e,r),e}(s.MiniAppError);S.DownloadFailedError=A;var P=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"The provided URL is invalid.\",n}return b(e,r),e}(s.MiniAppError);S.InvalidUrlError=P;var w=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Failed to save the file to the device.\",n}return b(e,r),e}(s.MiniAppError);S.SaveFailureError=w;var O=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.code=t.code,n.message=t.message,n}return b(e,r),e}(s.MiniAppError);S.DownloadHttpError=O,S.parseDownloadError=function(r){switch(m[r.type]){case m.DownloadFailedError:return new A(r);case m.InvalidUrlError:return new P(r);case m.SaveFailureError:return new w(r);case m.DownloadHttpError:return new O(r);default:return}};var M,I,_={},C=this&&this.__extends||(M=function(r,e){return(M=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])})(r,e)},function(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function t(){this.constructor=r}M(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)});Object.defineProperty(_,\"__esModule\",{value:!0}),_.parseStorageError=_.SecureStorageIOError=_.SecureStorageUnavailableError=_.SecureStorageBusyError=_.SecureStorageFullError=void 0,function(r){r.SecureStorageFullError=\"SecureStorageFullError\",r.SecureStorageBusyError=\"SecureStorageBusyError\",r.SecureStorageUnavailableError=\"SecureStorageUnavailableError\",r.SecureStorageIOError=\"SecureStorageIOError\"}(I||(I={}));var j=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Storage limit is exceeded or full already\",n}return C(e,r),e}(s.MiniAppError);_.SecureStorageFullError=j;var B=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Storage is busy, please try again\",n}return C(e,r),e}(s.MiniAppError);_.SecureStorageBusyError=B;var T=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Storage is not yet loaded or failed to load\",n}return C(e,r),e}(s.MiniAppError);_.SecureStorageUnavailableError=T;var U=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Unable to read/write changes in Storage.\",n}return C(e,r),e}(s.MiniAppError);_.SecureStorageIOError=U,_.parseStorageError=function(r){switch(I[r.type]){case I.SecureStorageFullError:return new j(r);case I.SecureStorageBusyError:return new B(r);case I.SecureStorageUnavailableError:return new T(r);case I.SecureStorageIOError:return new U(r);default:return}};var x,N,F={},L=this&&this.__extends||(x=function(r,e){return(x=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])})(r,e)},function(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function t(){this.constructor=r}x(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)});Object.defineProperty(F,\"__esModule\",{value:!0}),F.parseInAppPurchaseError=F.UserCancelledPurchaseError=F.ProductPurchasedAlreadyError=F.ProductNotFoundError=F.ConsumeFailedError=F.PurchaseFailedError=void 0,function(r){r.PurchaseFailedError=\"PurchaseFailedError\",r.ConsumeFailedError=\"ConsumeFailedError\",r.ProductNotFoundError=\"ProductNotFoundError\",r.ProductPurchasedAlreadyError=\"ProductPurchasedAlreadyError\",r.UserCancelledPurchaseError=\"UserCancelledPurchaseError\"}(N||(N={}));var D=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Product Purchase failed, please try again later\",n}return L(e,r),e}(s.MiniAppError);F.PurchaseFailedError=D;var R=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Unable to consume the product, please make sure the product is purchased already\",n}return L(e,r),e}(s.MiniAppError);F.ConsumeFailedError=R;var k=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Unable to find the ProductId. Please make sure that the productId is registered in Google Play\",n}return L(e,r),e}(s.MiniAppError);F.ProductNotFoundError=k;var H=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"This Product is purchased already\",n}return L(e,r),e}(s.MiniAppError);F.ProductPurchasedAlreadyError=H;var z=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"User cancelled the purchase\",n}return L(e,r),e}(s.MiniAppError);F.UserCancelledPurchaseError=z,F.parseInAppPurchaseError=function(r){switch(N[r.type]){case N.PurchaseFailedError:return new D(r);case N.ConsumeFailedError:return new R(r);case N.ProductNotFoundError:return new k(r);case N.ProductPurchasedAlreadyError:return new H(r);case N.UserCancelledPurchaseError:return new z(r);default:return}};var K={};Object.defineProperty(K,\"__esModule\",{value:!0}),K.UserCancelledPurchaseError=K.ProductPurchasedAlreadyError=K.ProductNotFoundError=K.ConsumeFailedError=K.PurchaseFailedError=K.SecureStorageIOError=K.SecureStorageUnavailableError=K.SecureStorageBusyError=K.SecureStorageFullError=K.ScopesNotSupportedError=K.SaveFailureError=K.parseMiniAppError=K.MiniAppError=K.InvalidUrlError=K.DownloadHttpError=K.DownloadFailedError=K.AudienceNotSupportedError=K.AuthorizationFailureError=void 0,Object.defineProperty(K,\"AuthorizationFailureError\",{enumerable:!0,get:function(){return d.AuthorizationFailureError}}),Object.defineProperty(K,\"AudienceNotSupportedError\",{enumerable:!0,get:function(){return d.AudienceNotSupportedError}}),Object.defineProperty(K,\"ScopesNotSupportedError\",{enumerable:!0,get:function(){return d.ScopesNotSupportedError}}),Object.defineProperty(K,\"DownloadFailedError\",{enumerable:!0,get:function(){return S.DownloadFailedError}}),Object.defineProperty(K,\"DownloadHttpError\",{enumerable:!0,get:function(){return S.DownloadHttpError}}),Object.defineProperty(K,\"InvalidUrlError\",{enumerable:!0,get:function(){return S.InvalidUrlError}}),Object.defineProperty(K,\"SaveFailureError\",{enumerable:!0,get:function(){return S.SaveFailureError}}),Object.defineProperty(K,\"SecureStorageFullError\",{enumerable:!0,get:function(){return _.SecureStorageFullError}}),Object.defineProperty(K,\"SecureStorageBusyError\",{enumerable:!0,get:function(){return _.SecureStorageBusyError}}),Object.defineProperty(K,\"SecureStorageUnavailableError\",{enumerable:!0,get:function(){return _.SecureStorageUnavailableError}}),Object.defineProperty(K,\"SecureStorageIOError\",{enumerable:!0,get:function(){return _.SecureStorageIOError}}),Object.defineProperty(K,\"PurchaseFailedError\",{enumerable:!0,get:function(){return F.PurchaseFailedError}}),Object.defineProperty(K,\"ConsumeFailedError\",{enumerable:!0,get:function(){return F.ConsumeFailedError}}),Object.defineProperty(K,\"ProductNotFoundError\",{enumerable:!0,get:function(){return F.ProductNotFoundError}}),Object.defineProperty(K,\"ProductPurchasedAlreadyError\",{enumerable:!0,get:function(){return F.ProductPurchasedAlreadyError}}),Object.defineProperty(K,\"UserCancelledPurchaseError\",{enumerable:!0,get:function(){return F.UserCancelledPurchaseError}}),Object.defineProperty(K,\"MiniAppError\",{enumerable:!0,get:function(){return s.MiniAppError}}),K.parseMiniAppError=function(r){try{var t=JSON.parse(r);return(0,d.parseAuthError)(t)||(0,S.parseDownloadError)(t)||(0,_.parseStorageError)(t)||(0,F.parseInAppPurchaseError)(t)||new s.MiniAppError(t)}catch(e){return console.error(e),new s.MiniAppError({type:\"MiniAppError\",message:\"Failed to parse the error: \"+r})}};for(var q={toByteArray:function(r){var e,t,n=Z(r),o=n[0],i=n[1],u=new Y(function(r,e,t){return 3*(e+t)/4-t}(0,o,i)),a=0,s=i>0?o-4:o;for(t=0;t>16&255,u[a++]=e>>8&255,u[a++]=255&e;return 2===i&&(e=W[r.charCodeAt(t)]<<2|W[r.charCodeAt(t+1)]>>4,u[a++]=255&e),1===i&&(e=W[r.charCodeAt(t)]<<10|W[r.charCodeAt(t+1)]<<4|W[r.charCodeAt(t+2)]>>2,u[a++]=e>>8&255,u[a++]=255&e),u},fromByteArray:function(r){for(var e,t=r.length,n=t%3,o=[],i=0,u=t-n;iu?u:i+16383));return 1===n?(e=r[t-1],o.push(J[e>>2]+J[e<<4&63]+\"==\")):2===n&&(e=(r[t-2]<<8)+r[t-1],o.push(J[e>>10]+J[e>>4&63]+J[e<<2&63]+\"=\")),o.join(\"\")}},J=[],W=[],Y=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,V=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",G=0,X=V.length;G0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var t=r.indexOf(\"=\");return-1===t&&(t=e),[t,t===e?0:4-t%4]}function Q(r,e,t){for(var n,o,i=[],u=e;u>18&63]+J[o>>12&63]+J[o>>6&63]+J[63&o]);return i.join(\"\")}W[\"-\".charCodeAt(0)]=62,W[\"_\".charCodeAt(0)]=63;var $={read:function(r,e,t,n,o){var i,u,a=8*o-n-1,s=(1<>1,p=-7,f=t?o-1:0,l=t?-1:1,d=r[e+f];for(f+=l,i=d&(1<<-p)-1,d>>=-p,p+=a;p>0;i=256*i+r[e+f],f+=l,p-=8);for(u=i&(1<<-p)-1,i>>=-p,p+=n;p>0;u=256*u+r[e+f],f+=l,p-=8);if(0===i)i=1-c;else{if(i===s)return u?NaN:1/0*(d?-1:1);u+=Math.pow(2,n),i-=c}return(d?-1:1)*u*Math.pow(2,i-n)},write:function(r,e,t,n,o,i){var u,a,s,c=8*i-o-1,p=(1<>1,l=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,h=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,u=p):(u=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-u))<1&&(u--,s*=2),(e+=u+f>=1?l/s:l*Math.pow(2,1-f))*s>=2&&(u++,s/=2),u+f>=p?(a=0,u=p):u+f>=1?(a=(e*s-1)*Math.pow(2,o),u+=f):(a=e*Math.pow(2,f-1)*Math.pow(2,o),u=0));o>=8;r[t+d]=255&a,d+=h,a/=256,o-=8);for(u=u<0;r[t+d]=255&u,d+=h,u/=256,c-=8);r[t+d-h]|=128*g}},rr={};(function(r){(function(){\"use strict\";var e=this&&this.__assign||function(){return(e=Object.assign||function(r){for(var e,t=1,n=arguments.length;te?(null==r?void 0:r.substring(0,e-1))+\"\\u2026\":r}rr.MiniAppBridge=a;function p(e){var t=r.from(e,\"base64\").toString(\"utf8\"),n=t.replace(/\\\\(\\d{3})/g,(function(r,e){return String.fromCharCode(function(r){return Number.parseInt(r,8)}(e))})),o=JSON.stringify(n).replace(/\\\\\\\\/g,\"\\\\\");return JSON.parse(o)}}).call(this)}).call(this,n({}).Buffer);var er={};function tr(){if(\"undefined\"!=typeof window)return window.MiniAppSDKLogger}Object.defineProperty(er,\"__esModule\",{value:!0}),er.MiniAppSDKLogger=void 0;var nr=function(){function r(r){this.logger=r}return r.prototype.logOnConsole=function(r,e){ir(r).apply(null,e)},r.prototype.log=function(r,e){this.lastLog={icon:r.icon,messageType:r.type,message:e},this.logger.log(r.icon,r.type,e),this.logOnConsole(r,e)},r}();er.MiniAppSDKLogger=nr;var or=function(){function r(r,e){this.type=r,this.icon=e}return r.debug=new r(\"debug\",\"\\ud83d\\udcd8\"),r.log=new r(\"log\",\"\\ud83d\\udcd7\"),r.warn=new r(\"warning\",\"\\ud83d\\udcd9\"),r.error=new r(\"error\",\"\\ud83d\\udcd5\"),r}();function ir(r){switch(r){case or.debug:return cr;case or.warn:return ar;case or.error:return sr;default:return ur}}var ur=console.log,ar=console.warn,sr=console.error,cr=console.debug;function pr(r,e){var t=tr();void 0!==t?t.log(r,e):ir(r).apply(null,e)}console.log=function(){for(var r=[],e=0;e-1?c({type:"PERMISSION_FAILURE",permissionDenied:!0}):e.getAccessToken(m.audience,m.scopes).then((function(e){c({type:"TOKEN_FETCH_SUCCESS"})})).catch((function(e){c({type:"TOKEN_FETCH_FAILURE",error:e})}))):c({type:"PERMISSION_FAILURE",permissionDenied:!0})})).catch((function(e){c({type:"PERMISSION_FAILURE",permissionDenied:!0})}))}function b(e){i.isLoading||(e.preventDefault(),c({type:"TOKEN_FETCH_INIT"}),h())}return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Auth Token","Screen","Page","")})),a.a.createElement(ve,{height:"auto",className:s.card},a.a.createElement(se.a,null,a.a.createElement(we.a,{column:"true",classes:{root:s.rootFormGroup}},a.a.createElement(n.Fragment,null,a.a.createElement(Me.a,{className:s.formControl},a.a.createElement(pe.a,{id:"audience",label:"Audience",className:s.fields,onChange:function(e){g(Object(ce.a)({},m,{audience:e.target.value}))},value:m.audience})),a.a.createElement(Me.a,{className:s.formControl},a.a.createElement(pe.a,{id:"scopes",label:"Scopes",className:s.fields,onChange:function(e){g(Object(ce.a)({},m,{scopes:e.target.value.split(", ")}))},value:m.scopes.join(", ")}))),a.a.createElement("div",{className:s.wrapper},a.a.createElement(me.a,{onClick:b,variant:"contained",color:"primary",className:E,disabled:i.isLoading,"data-testid":"authButton"},"Authentication"),i.isLoading&&a.a.createElement(le.a,{size:20,className:s.buttonProgress})),!i.isLoading&&i.isSuccess&&!i.isError&&!i.permissionDenied&&e.accessToken&&a.a.createElement("div",null,a.a.createElement(ue.a,{variant:"body1",className:s.success},"Token: ",e.accessToken.token),a.a.createElement(ue.a,{variant:"body1",className:s.success},"Valid until: ",e.accessToken.validUntil.toLocaleDateString("ja-JP"))),!i.isLoading&&i.isError&&!i.permissionDenied&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.error),!i.isLoading&&i.permissionDenied&&a.a.createElement(ue.a,{variant:"body1",className:s.red},"ACCESS_TOKEN Permission is denied by the user"))))})),Qe=Object(i.a)((function(e){return{root:{height:"90%",width:"100%"},grid:{display:"flex",height:"20%",flexDirection:"column",justifyContent:"center",padding:"20px"},table:{minWidth:"80%"},content:{height:"50%",justifyContent:"space-between",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},contentSection:{height:"30%",padding:"10px"},label:{display:"block",fontSize:12,width:"100%",color:e.color.primary},imageBox:{height:"250px",margin:"20px"},imageBoxContent:{height:"250px",objectFit:"contain"}}})),Ye=function(){var e=Qe(),t=Object(n.useState)(null),r=Object(u.a)(t,2),o=r[0],i=r[1],c=Object(n.useState)(void 0),s=Object(u.a)(c,1)[0],l=Object(n.useRef)(null);Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Camera","Screen","Page","")}));return a.a.createElement(be.a,{className:e.root},a.a.createElement(be.a,{id:"imageBox",className:e.imageBox,hidden:null==o},a.a.createElement("img",{id:"imageBoxContent",alt:"CapturedPicture",className:e.imageBoxContent,src:o})),a.a.createElement(Ne.a,{className:e.grid,align:"center"},a.a.createElement("div",{className:e.contentSection},a.a.createElement("label",{className:e.label},"Pick Image"),a.a.createElement("input",{id:"cameraBack",type:"file",accept:".jpg,.jpeg,.png,.svg,.gif",onChange:function(e){var t=e.target.files;!t&&t.length>0||i(URL.createObjectURL(e.target.files[0]))},"data-testid":"file-input-image-back",capture:"environment",value:s,ref:l})),a.a.createElement("div",{className:e.contentSection},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){return i(null),void(null!==l.current&&(l.current.value=""))}},"Clear"))))},Ke=r(447),Xe=Object(i.a)((function(e){return{content:{height:"25%",justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},card:{marginTop:"40px"},actions:{justifyContent:"center",flexDirection:"column"},button:{marginTop:"20px",width:"80%",maxWidth:280},textfield:{width:"80%",maxWidth:300,"& input":{color:e.color.primary,lineHeight:"1.5em",fontSize:"1.2em",background:"white"}}}}));var Je=function(){var e=Xe();return Object(n.useEffect)((function(){try{Ee.a.miniappUtils.getHostAppThemeColors().then((function(e){document.getElementById("primaryChip").style.backgroundColor=e.primaryColor,document.getElementById("secondaryChip").style.backgroundColor=e.secondaryColor,console.log("getColorTheme SUCCESS: ",e)})).catch((function(e){console.log("getColorTheme ERROR: ",e)}))}catch(e){console.log(e)}})),a.a.createElement("div",{className:e.card},a.a.createElement(Ke.a,{label:"primary",id:"primaryChip"}),a.a.createElement("br",null),a.a.createElement("br",null),a.a.createElement(Ke.a,{label:"secondary",id:"secondaryChip"}))},Ze=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},actions:{justifyContent:"center"},content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0},info:{fontSize:16,lineBreak:"anywhere",wordBreak:"break-all",color:e.color.primary,marginTop:0,paddingBottom:10},formInput:{width:"90%",marginTop:10,marginBottom:10,background:"white"}}})),ze=function(){var e=Ze(),t=Object(n.useState)(0),r=Object(u.a)(t,2),o=r[0],i=r[1],c=Object(n.useState)(0),s=Object(u.a)(c,2),l=s[0],p=s[1],d=Object(n.useState)(0),m=Object(u.a)(d,2),f=m[0],g=m[1],E=Object(n.useState)(0),h=Object(u.a)(E,2),b=h[0],y=h[1],v=Object(n.useState)(0),S=Object(u.a)(v,2),A=S[0],C=S[1],O=Object(n.useState)(0),w=Object(u.a)(O,2),N=w[0],P=w[1];return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Event Listener","Screen","Page","")})),window.addEventListener(ge.MiniAppEvents.EXTERNAL_WEBVIEW_CLOSE,(function(e){var t=e.detail.message;console.log(t),o++,i(o)})),window.addEventListener(ge.MiniAppEvents.PAUSE,(function(e){var t=e.detail.message;console.log(t),l++,p(l)})),window.addEventListener(ge.MiniAppEvents.RESUME,(function(e){var t=e.detail.message;console.log(t),f++,g(f)})),window.addEventListener(ge.MiniAppKeyboardEvents.KEYBOARDSHOWN,(function(e){var t=e.detail.message,r=e.detail.navigationBarHeight,n=e.detail.screenHeight,a=e.detail.keyboardHeight;console.log(t+", "+r+", "+A+", "+N),b=r,A=n,N=a,y(r),C(n),P(a)})),window.addEventListener(ge.MiniAppKeyboardEvents.KEYBOARDHIDDEN,(function(e){var t=e.detail.message,r=e.detail.navigationBarHeight,n=e.detail.screenHeight,a=e.detail.keyboardHeight;console.log(t+", "+r+", "+n+", "+a),b=r,A=n,N=a,y(r),C(n),P(a)})),a.a.createElement("div",{className:e.scrollable},a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},a.a.createElement("p",null,"Event Listener")),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){var e=new URL("https://www.google.com");window.location.href=e}},"Open External Webview")),a.a.createElement("div",{className:e.info},a.a.createElement("p",null,"External Webview Closed: ",o),a.a.createElement("p",null,"Mini App Paused: ",l),a.a.createElement("p",null,"Mini App Resumed: ",f)),a.a.createElement("hr",null),a.a.createElement("div",null,a.a.createElement("p",null,"Keyboard Events"),a.a.createElement(pe.a,{className:e.formInput,variant:"outlined",placeholder:"Toggle Keyboard..."}),a.a.createElement("p",null,"Navigation Bar Height: ",b),a.a.createElement("p",null,"Screen Height: ",A),a.a.createElement("p",null,"Keyboard Height: ",N))))},_e="data:image/png;base64,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",$e=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},actions:{justifyContent:"center",paddingBottom:16},content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0},info:{fontSize:16,lineBreak:"anywhere",wordBreak:"break-all",color:e.color.primary,marginTop:0,paddingBottom:10},formInput:{width:"90%",marginTop:10,marginBottom:10},buttonProgress:{position:"absolute",top:"calc(50% - 10px)",left:"calc(50% - 10px)"}}})),et=Object(s.b)((function(e){return{permissions:e.permissions,filename:e.file.filename,error:e.file.error,isLoading:e.file.isLoading}}),(function(e){return{requestPermissions:function(t){return e(De(t))},downloadFile:function(t,r,n){return e(function(e,t,r){return function(n){return n({type:"FILE_DOWNLOAD_INIT"}),Ee.a.downloadFile(e,t,r).then((function(e){return n({type:"FILE_DOWNLOAD_SUCCESS",filename:e}),Promise.resolve(e)})).catch((function(e){throw console.log("requestDownloadFile: CATCH BLOCK: ",e),n({type:"FILE_DOWNLOAD_FAILURE",error:e}),e}))}}(t,r,n))}}}))((function(e){var t=$e(),r=Object(n.useState)(!0),o=Object(u.a)(r,2),i=o[0],c=o[1],s=Object(n.useState)(_e),l=Object(u.a)(s,2),p=l[0],d=l[1];function m(t,r){var n=[{name:ge.CustomPermissionName.FILE_DOWNLOAD,description:"We would like to get the permission to download files."}];e.requestPermissions(n).then((function(e){return e.filter((function(e){return e.status===ge.CustomPermissionStatus.ALLOWED})).map((function(e){return e.name}))})).then((function(n){return a=ge.CustomPermissionName.FILE_DOWNLOAD,(n||e.permissions||[]).indexOf(a)>-1?function(t,r){return c(!0),e.downloadFile(r,t,{token:"test"}).then((function(t){console.log("FileDownloadRsponse THEN:",t),e.downloadedFile=t})).catch((function(t){console.log("FileDownloadErrors CATCH:",t),e.error=t,e.isLoading=!1}))}(t,r):c(!1);var a})).catch((function(e){c(!1),console.error(e)}))}function f(t,r){e.isLoading||function(e,t){m(e,t)}(t,r)}function g(e,r,n){return a.a.createElement(de.a,{className:t.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:n,id:r},e))}return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"File Download","Screen","Page","")})),a.a.createElement("div",{className:t.scrollable},a.a.createElement(ve,{className:t.card},a.a.createElement(se.a,{className:t.content},"Download Files"),a.a.createElement("div",{className:t.info},a.a.createElement("p",null,!i&&'"FILE_DOWNLOAD" permission not granted.',e.error&&"Download failed: "+e.error.message,e.downloadedFile&&"File Downloaded:"+e.downloadedFile)),function(){return a.a.createElement(pe.a,{variant:"outlined",disabled:!0,className:t.formInput,id:"input-points-term",label:"Filename (last download)",value:(r=e.filename,void 0!==r&&e.filename&&e.filename.length>0?r:"-")});var r}(),e.isLoading&&a.a.createElement(le.a,{size:20,className:t.buttonProgress}),g("Download Image","button-download-image",(function(){f("https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg","sample.jpg")})),g("Download ZIP","button-download-zip",(function(){f("https://file-examples.com/wp-content/storage/2017/02/zip_2MB.zip","sample.zip")})),g("Download MP3","button-download-mp3",(function(){f("https://filesamples.com/samples/audio/mp3/sample3.mp3","sample.mp3")})),g("Download CSV","button-download-csv",(function(){f("https://filesamples.com/samples/document/csv/sample4.csv","sample.csv")})),g("Download MOV","button-download-mov",(function(){f("https://filesamples.com/samples/video/mov/sample_960x540.mov","sample.mov")})),g("Download Image - Dot","button-download-image",(function(){f("https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg","sample.jun-2022.test.jpg")})),a.a.createElement(pe.a,{variant:"outlined",className:t.formInput,id:"input-base64",label:"Base64 data string",value:p,onChange:function(e){return d(e.target.value)}}),g("Download Base64 Data","button-download-base64",(function(){f(p,"panda.png")}))))})),tt=r(405),rt=r(406),nt=r(407),at=r(408),ot=r(409),it=r(410),ct=Object(i.a)((function(e){return{root:{height:"90%",width:"100%"},grid:{display:"flex",height:"20%",flexDirection:"column",justifyContent:"center"},table:{minWidth:"80%"},content:{height:"50%",justifyContent:"space-between",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},uploader:{height:"30%"},label:{fontSize:12,width:"100%",color:e.color.primary}}})),st=function(){var e=ct(),t=Object(n.useState)([]),r=Object(u.a)(t,2),o=r[0],i=r[1];Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"File Upload","Screen","Page","")}));var c=function(e){var t=e.target.files;t&&i(Array.from(t).map((function(e){return{name:e.name,size:e.size,type:e.type}})))};return a.a.createElement(be.a,{className:e.root},a.a.createElement(Ne.a,{className:e.grid,align:"center",justify:"center"},a.a.createElement("div",{className:e.uploader},a.a.createElement("label",{className:e.label,for:"files"},"(general)"),a.a.createElement("input",{type:"file",onChange:c,"data-testid":"file-input-general",multiple:!0})),a.a.createElement("div",{className:e.uploader},a.a.createElement("label",{className:e.label,for:"files"},"(images)"),a.a.createElement("input",{type:"file",accept:".jpg,.jpeg,.png,.svg,.gif",onChange:c,"data-testid":"file-input-image",multiple:!0})),a.a.createElement("div",{className:e.uploader},a.a.createElement("label",{className:e.label,for:"files"},"(pdf)"),a.a.createElement("input",{type:"file",accept:".pdf",onChange:c,"data-testid":"file-input-pdf",multiple:!0}))),a.a.createElement(se.a,{className:e.content},a.a.createElement(tt.a,{component:fe.a,"data-testid":"file-table"},a.a.createElement(rt.a,{className:e.table,"aria-label":"simple table"},a.a.createElement(nt.a,null,a.a.createElement(at.a,null,a.a.createElement(ot.a,null,"Name"),a.a.createElement(ot.a,{align:"left"},"Type"),a.a.createElement(ot.a,{align:"right"},"Size(Bytes)"),a.a.createElement(ot.a,{align:"right"}))),a.a.createElement(it.a,null,o.map((function(e){return a.a.createElement(at.a,{key:e.name},a.a.createElement(ot.a,{component:"th",scope:"row"},e.name),a.a.createElement(ot.a,{align:"left"},e.type),a.a.createElement(ot.a,{align:"right"},e.size.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")))})))))))},lt=r(411),ut=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},grid:{position:"relative",paddingBottom:15},greyCard:{marginTop:"1rem"},typography:{marginTop:"1rem"}}}));var pt=function(){Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"App Close alert","Screen","Page","")}));var e=ut(),t=[{label:"Loop Count: Once",iconSrc:r(263),altLabel:"road"},{label:"Loop Count: Infinite",iconSrc:r(264),altLabel:"infinite_road"},{label:"Loop Count: Infinite (WebP)",iconSrc:r(265),altLabel:"infinite_road_webp"}];return a.a.createElement("div",{className:e.scrollable},a.a.createElement(Ne.a,{container:!0,direction:"column",justify:"flex-start",alignItems:"center",className:e.grid},t.map((function(t,r){return a.a.createElement(a.a.Fragment,{item:!0,key:r},a.a.createElement(ve,{height:"auto",className:"".concat(e.greyCard)},a.a.createElement(ue.a,{className:"app-typography ".concat(e.typography)},t.label),a.a.createElement(se.a,null,a.a.createElement(lt.a,{component:"img",className:e.gif,src:t.iconSrc,alt:t.altLabel}))))}))))},dt=r(316),mt=r(412),ft=r(432),gt=r(453),Et=r(429),ht=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},root:{background:e.color.secondary,width:"85vw",maxWidth:500},wrapper:{position:"relative",marginTop:10},buttonSuccess:{backgroundColor:ke.a[500],"&:hover":{backgroundColor:ke.a[700]}},buttonFailure:{backgroundColor:Pe.a[500],"&:hover":{backgroundColor:Pe.a[700]}},buttonProgress:{position:"absolute",top:"calc(50% - 10px)",left:"calc(50% - 10px)"},error:{color:Pe.a[500],marginTop:10},success:{color:ke.a[500],marginTop:20},rootUserGroup:{alignItems:"center"},formInput:{width:"90%",marginTop:10},rootCardActions:{justifyContent:"center"},caseSelector:{marginTop:5},button:{marginBottom:15},dataFormsWrapper:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},paper:{width:"100%",paddingBottom:10,marginBottom:20,"&:last-child":{marginBottom:0}},red:{color:Pe.a[500]},displayInlineBlock:{display:"inline-block"},purchaseButtonContainer:{textAlign:"center",display:"flex",flexDirection:"row",justifyContent:"space-evenly"},purchaseButton:{margin:"15px"},listItemStyle:{overflowWrap:"anywhere"}}})),bt={isLoading:!1,isError:!1,error:null},yt=function(e,t){switch(t.type){case"PURCHASE_FETCH_INIT":return{isLoading:!0,isError:!1,error:null};case"PURCHASE_FETCH_SUCCESS":return Object(ce.a)({},e,{isLoading:!1,isError:!1,error:null,productInfo:t.productInfo});case"PURCHASE_FETCH_FAILURE":return Object(ce.a)({},e,{isLoading:!1,isError:!1,error:null,productInfo:null});case"PURCHASE_PRODUCT_INIT":return{isLoading:!0,isError:!1,error:null};case"PURCHASE_PRODUCT_SUCCESS":return Object(ce.a)({},e,{isLoading:!1,isError:!1,error:null,purchasedProductInfo:t.purchasedProduct});case"PURCHASE_PRODUCT_FAILURE":return Object(ce.a)({},bt,{isLoading:!1,isError:!0,purchasedProductInfo:null,error:("string"==typeof t.miniAppError?t.miniAppError:t.miniAppError.message)||""});case"CONSUME_PRODUCT_SUCCESS":return Object(ce.a)({},e,{isLoading:!1,isError:!1,error:null,consumeProductResponse:t.consumeProductResponse});case"CONSUME_PRODUCT_FAILURE":return Object(ce.a)({},bt,{isLoading:!1,isError:!0,consumeProductResponse:null,error:("string"==typeof t.miniAppError?t.miniAppError:t.miniAppError.message)||"Product is not purchased yet"});default:throw Error("Unknown action type")}};function vt(){var e;Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"In-App-Purchase","Screen","Page","")}));var t=Object(n.useReducer)(yt,bt),r=Object(u.a)(t,2),o=r[0],i=r[1],c=Object(n.useReducer)(yt,bt),s=Object(u.a)(c,2),p=s[0],d=s[1],m=a.a.useState(!1),g=Object(u.a)(m,2),E=g[0],h=g[1],b=ht(),y=Object(f.a)((e={},Object(l.a)(e,b.buttonFailure,o.isError),Object(l.a)(e,b.buttonSuccess,!o.isError),e)),v=function(e,t){h(!1)};function S(e){o.isLoading||(d({type:"PURCHASE_FETCH_INIT",miniAppError:null}),Ee.a.purchaseService.getAllProducts().then((function(e){console.log("getAllProducts SUCCESS: ",e),d({type:"PURCHASE_FETCH_SUCCESS",miniAppError:null,productInfo:e})})).catch((function(e){console.log("getAllProducts Error: ",e),d({type:"PURCHASE_FETCH_FAILURE",miniAppError:e})})))}function A(e){var t;o.isLoading||(i({type:"PURCHASE_PRODUCT_INIT",miniAppError:null}),t=e.currentTarget.value,console.log("BuyProduct: ",t),Ee.a.purchaseService.purchaseProductWith(t).then((function(e){console.log("BuyProduct - SUCCESS: ",e),i({type:"PURCHASE_PRODUCT_SUCCESS",miniAppError:null,purchasedProduct:e}),C(e.productInfo.id,e)})).catch((function(e){console.log("Buy Product ERROR: ",e),i({type:"PURCHASE_PRODUCT_FAILURE",miniAppError:e})})))}function C(e,t){window.localStorage.setItem(e,JSON.stringify(t))}function O(e){null===e.currentTarget.value||void 0===e.currentTarget.value?(i({type:"CONSUME_PRODUCT_FAILURE"}),console.log("CONSUME_PRODUCT_FAILURE: ",e.currentTarget.value)):function(e,t){console.log("ConsumeProduct PRODUCT: ",e),console.log("ConsumeProduct TRANSACTION: ",t),Ee.a.purchaseService.consumePurchaseWith(e,t).then((function(t){console.log("SUCCESS - ConsumeProduct",t),h(!0),i({type:"CONSUME_PRODUCT_SUCCESS",miniAppError:null,consumeProductResponse:t}),C(e,"")})).catch((function(e){console.log("Consume Product Error: ",e),i({type:"CONSUME_PRODUCT_FAILURE",miniAppError:e})}))}(e.currentTarget.value,function(e){var t=window.localStorage.getItem(e);return JSON.parse(t).transactionId}(e.currentTarget.value)),o.isLoading||i({type:"PURCHASE_PRODUCT_INIT",miniAppError:null})}return a.a.createElement("div",{className:b.scrollable},a.a.createElement(de.a,{classes:{root:b.rootCardActions}},a.a.createElement(we.a,{column:"true",className:b.rootUserGroup},a.a.createElement("div",null,a.a.createElement("div",{className:b.wrapper},a.a.createElement(me.a,{onClick:S,variant:"contained",color:"primary",classes:{root:b.button},className:y,disabled:o.isLoading,"data-testid":"buyProduct"},"Fetch Products"),o.isLoading&&a.a.createElement(le.a,{size:20,className:b.buttonProgress}))),!o.isLoading&&o.isError&&a.a.createElement(ue.a,{variant:"body1",className:b.red},o.error),!o.isLoading&&o.consumeProductResponse&&a.a.createElement("div",null,a.a.createElement(a.a.Fragment,null,a.a.createElement(Et.a,{open:E,autoHideDuration:2e3,onClose:v},a.a.createElement(ft.a,{severity:"success",onClose:v},a.a.createElement(gt.a,null,o.consumeProductResponse.title),o.consumeProductResponse.description)))))),a.a.createElement(ve,{className:b.card},!p.isLoading&&p.productInfo&&a.a.createElement(se.a,null,(console.log("ShowProductDetails: ",p),a.a.createElement(a.a.Fragment,null,p.productInfo&&p.productInfo.map((function(e){return a.a.createElement(dt.a,{divider:!0,className:b.displayInlineBlock,key:e.id},a.a.createElement(mt.a,{className:b.listItemStyle,primary:"Title: "+e.title,secondary:a.a.createElement(a.a.Fragment,null,a.a.createElement(ue.a,null,e.description&&""!==e.description&&a.a.createElement("span",null,"Description: "+e.description)),a.a.createElement(ue.a,null,e.id&&""!==e.id&&a.a.createElement("span",null,"Product ID: "+e.id)),a.a.createElement(ue.a,null,e.id&&""!==e.id&&a.a.createElement("span",null,"Price : "+e.productPriceInfo.price+" "+e.productPriceInfo.currencyCode)))}),a.a.createElement("div",{className:b.purchaseButtonContainer},a.a.createElement("div",null,a.a.createElement(me.a,{onClick:A,variant:"contained",color:"primary",classes:{root:b.button},className:y,disabled:o.isLoading,"data-testid":"buyProduct",value:e.id},"Buy")),a.a.createElement("div",null,a.a.createElement(me.a,{onClick:O,variant:"contained",color:"primary",classes:{root:b.button},className:y,disabled:o.isLoading,"data-testid":"consumeProduct",value:e.id},"Consume"),o.isLoading&&a.a.createElement(le.a,{size:20,className:b.buttonProgress}))),o.purchasedProductInfo&&o.purchasedProductInfo.productInfo.id===e.id&&a.a.createElement("div",null,function(){var e=new Date(o.purchasedProductInfo.transactionDate);return a.a.createElement(a.a.Fragment,null,a.a.createElement(ue.a,{variant:"body1",className:b.success,align:"left",style:{overflowWrap:"break-word"}},"Transaction ID: ",o.purchasedProductInfo.transactionId,a.a.createElement("br",null),"Transaction Date: ",e.toLocaleDateString(),a.a.createElement("br",null),"Transaction Time: ",e.toLocaleTimeString(),a.a.createElement("br",null)))}()))})))))))}var St=r(192),At=r.n(St),Ct=r(198),Ot=r.n(Ct),wt=r(190),Nt=r.n(wt),Pt=r(195),Lt=r.n(Pt),It=r(196),Tt=r.n(It),jt=r(194),Ut=r.n(jt),Ft=r(193),Rt=r.n(Ft),xt=r(197),Wt=r.n(xt),Bt=r(191),Mt=r.n(Bt),kt=r(441),Dt=r(450),Ht=r(436),Gt=r(451),Vt=r(452),qt=function(){return function(e){Ee.a.getHostEnvironmentInfo().then((function(t){e({type:"REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS",info:t})})).catch((function(t){e({type:"REQUEST_HOST_ENVIRONMENT_INFO_ERROR",error:t})}))}},Qt=Object(i.a)((function(e){return{card:{display:"flex",alignItems:"center",justifyContent:"center",marginTop:"40px"},content:{height:"100%",width:"100%",justifyContent:"left",display:"flex",flexDirection:"column",alignItems:"stretch",fontSize:18,color:e.color.primary,fontWeight:"bold","& p":{lineHeight:1.5},overflowY:"auto"},info:{fontSize:16,lineBreak:"anywhere",wordBreak:"break-all",marginTop:0},button:{minHeight:40,margin:0},paddingTop50:{marginTop:"50px"}}}));var Yt=Object(s.b)((function(e,t){return Object(ce.a)({},t,{platform:e.info.platform,platformVersion:e.info.platformVersion,hostVersion:e.info.hostVersion,sdkVersion:e.info.sdkVersion,hostLocale:e.info.hostLocale,infoError:e.info.infoError,secureStorageStatus:(e.secureStorageStatus.isReady?"Ready":e.secureStorageStatus.error)||"Not Ready"})}),(function(e){return{getHostInfo:function(){return e(qt())},onSecureStorageReady:function(){return e((function(e){return new Promise((function(t){Ee.a.secureStorageService.onReady((function(){return e({type:"ON_SECURE_STORAGE_READY_SUCCESS"}),t()})),Ee.a.secureStorageService.onLoadError((function(r){return e({type:"ON_SECURE_STORAGE_READY_FAILURE",error:r}),t(r)}))}))}))}}}))((function(e){var t,r,o,i,c,s,l=Qt(),p=Object(n.useState)(!1),d=Object(u.a)(p,2),m=d[0],f=d[1];return Object(n.useEffect)((function(){try{he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Home","Screen","Page",""),e.getHostInfo(),function(e){e.onSecureStorageReady().then((function(e){console.log("Page - checkSecureStorageStorageReady - Success",e)})).catch((function(e){console.log("Page - checkSecureStorageStorageReady - Error: ",e)}))}(e),Ee.a.miniappUtils.isDarkMode().then((function(e){f(e)})).catch((function(e){console.log("getDarkMode - Error: ",e)}))}catch(t){console.log(t)}}),[e]),a.a.createElement(se.a,{className:l.content},a.a.createElement(Dt.a,{sx:{width:"100%",maxWidth:360,bgcolor:"background.paper"}},a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Nt.a,null))),a.a.createElement(Vt.a,{primary:"Platform",secondary:null!==(t=null!==(r=e.platform)&&void 0!==r?r:e.infoError)&&void 0!==t?t:"Unknown"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Mt.a,null))),a.a.createElement(Vt.a,{primary:"Platform Version",secondary:null!==(o=e.platformVersion)&&void 0!==o?o:"-"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(At.a,null))),a.a.createElement(Vt.a,{primary:"Host Version",secondary:null!==(i=e.hostVersion)&&void 0!==i?i:"-"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Rt.a,null))),a.a.createElement(Vt.a,{primary:"SDK Version",secondary:null!==(c=e.sdkVersion)&&void 0!==c?c:"-"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Ut.a,null))),a.a.createElement(Vt.a,{primary:"Host Locale:",secondary:null!==(s=e.hostLocale)&&void 0!==s?s:"-"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Lt.a,null))),a.a.createElement(Vt.a,{style:{wordBreak:"break-word"},primary:"Query Parameters",secondary:window.location.search||"None"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Tt.a,null))),a.a.createElement(Vt.a,{primary:"URL Fragment",secondary:window.location.hash||"None"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Wt.a,null))),a.a.createElement(Vt.a,{primary:"Secure Storage Status",secondary:e.secureStorageStatus})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Ot.a,null))),a.a.createElement(Vt.a,{primary:"Dark mode",secondary:String(m)}))))}));var Kt=function(e,t){var r=Object(n.useState)((function(){try{var r=window.localStorage.getItem(e);return r?JSON.parse(r):t}catch(n){throw n}})),a=Object(u.a)(r,2),o=a[0],i=a[1];return[o,function(t){try{i(t),window.localStorage.setItem(e,JSON.stringify(t))}catch(r){throw r}}]},Xt=Object(i.a)((function(e){return{content:{height:"25%",justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},card:{marginTop:"40px"},actions:{justifyContent:"center",flexDirection:"column"},button:{marginTop:"20px",width:"80%",maxWidth:280},textfield:{width:"80%",maxWidth:300,"& input":{color:e.color.primary,lineHeight:"1.5em",fontSize:"1.2em",background:"white"}}}}));var Jt=function(){var e=Xt(),t=Object(n.useState)(""),r=Object(u.a)(t,2),o=r[0],i=r[1],c=Kt("input-value",""),s=Object(u.a)(c,2),l=s[0],p=s[1];return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Local Storage","Screen","Page","")})),a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{type:"text",className:e.textfield,value:o,onChange:function(e){e.preventDefault(),i(e.currentTarget.value)},variant:"outlined",color:"primary",inputProps:{"data-testid":"input-field"}})),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{color:"primary",className:e.button,onClick:function(){i(l)},variant:"contained"},"Load text from Local Storage"),a.a.createElement(me.a,{color:"primary",className:e.button,onClick:function(){p(o)},variant:"contained"},"Save text to Local Storage")))},Zt=r(154),zt=Object(i.a)((function(e){return{card:{height:"auto",marginTop:"40px"},content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0},actions:{justifyContent:"center",paddingBottom:16}}})),_t=function(e){var t=e.ref;console.log(t),t.on("fullscreenchange",(function(e){t.isFullscreen()?Ee.a.setScreenOrientation(ge.ScreenOrientation.LOCK_LANDSCAPE).then((function(e){console.log(e)})).catch((function(e){console.error(e)})):Ee.a.setScreenOrientation(ge.ScreenOrientation.LOCK_RELEASE).then((function(e){console.log(e)})).catch((function(e){console.error(e)}))}))},$t=function(){var e=Object(n.useState)(!1),t=Object(u.a)(e,2),r=t[0],o=t[1],i=zt();return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Media","Screen","Page","")})),a.a.createElement(ve,{className:i.card},a.a.createElement(se.a,{className:i.content},"Autoplay Fullscreen Video"),a.a.createElement(se.a,{className:i.content},a.a.createElement(Zt.a,{accountId:"1752604059001",videoId:"5819230967001",onSuccess:_t})),a.a.createElement(se.a,{className:i.content},"Normal Video"),a.a.createElement(de.a,{className:i.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){return o(!r)}},r?"Hide":"Show"," Video")),r&&a.a.createElement(se.a,{className:i.content},a.a.createElement(Zt.a,{accountId:"1752604059001",videoId:"5819230967001",onSuccess:function(e){_t(e),e.ref.requestFullscreen()},options:{autoplay:!0}})))},er=r(446),tr=r(433),rr=r(413),nr=r(414),ar=r(415),or=r(416),ir=r(417),cr=r(418),sr=r(132),lr=r.n(sr),ur=r(199),pr=1,dr=2,mr=3,fr=[{name:ge.CustomPermissionName.SEND_MESSAGE,description:"We would like to send message from this mini app."}],gr=new Map;gr.set(pr,"Single contact"),gr.set(dr,"Specific contact ID"),gr.set(mr,"Multiple contact");var Er="https://one.rakuten.co.jp/miniapp/preview/".concat("404e46b4-263d-4768-b2ec-8a423224bead"),hr=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},formControl:{margin:e.spacing(1),minWidth:"100%"},fields:{color:e.color.primary,"& div":{color:e.color.primary}},actions:{justifyContent:"center"},errorMessage:{fontSize:12,color:"indianred"}}})),br=Object(s.b)((function(e,t){return Object(ce.a)({},t,{messageTypes:e.message.messageTypes})}),(function(e){return{getBots:function(){return e({type:"GET_MESSAGE_TYPE",payload:[{id:1,name:"Send a message to a single contact"},{id:2,name:"Send a message to a specific contact"},{id:3,name:"Send a message to multiple contacts"}]})},sendMessageToContact:function(t,r,n,a,o){return e(function(e,t,r,n,a){return function(o){var i={text:t,image:e,caption:r,action:n,bannerMessage:a};return Ee.a.chatService.sendMessageToContact(i)}}(t,r,n,a,o))},sendMessageToContactId:function(t,r,n,a,o){return e(function(e,t,r,n,a){return function(){var o=Object(ur.a)(lr.a.mark((function o(i){var c,s;return lr.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return c=Ee.a.requestCustomPermissions(fr).then((function(e){return e[0].status===ge.CustomPermissionStatus.ALLOWED})),o.next=3,c;case 3:if(!0!==o.sent){o.next=7;break}return s={text:r,image:t,caption:n,action:a},o.abrupt("return",Ee.a.chatService.sendMessageToContactId(e,s));case 7:case"end":return o.stop()}}),o)})));return function(e){return o.apply(this,arguments)}}()}(t,r,n,a,o))},sendMessageToMultipleContacts:function(t,r,n,a,o){return e(function(e,t,r,n,a){return function(o){var i={text:t,image:e,caption:r,action:n,bannerMessage:a};return Ee.a.chatService.sendMessageToMultipleContacts(i)}}(t,r,n,a,o))}}}))((function(e){var t=hr(),r=e.messageTypes,o=Object(n.useState)({id:void 0!==r[0]?r[0].id:-1,contactId:"",image:_e,text:gr.get(pr),caption:"Open JS miniapp",action:Er,bannerMessage:"Win 30 coins from every friends who joins from your invite"}),i=Object(u.a)(o,2),c=i[0],s=i[1],l=Object(n.useState)({error:!1,message:""}),p=Object(u.a)(l,2),d=p[0],m=p[1],f=Object(n.useState)({show:!1,response:""}),g=Object(u.a)(f,2),E=g[0],h=g[1];Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Message","Screen","Page","")}));var b=function(){h({show:!1,response:""})};return a.a.createElement("div",{className:t.scrollable},a.a.createElement(n.Fragment,null,a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(er.a,{id:"chatbotLabel"},"Send Message Type"),a.a.createElement(tr.a,{labelId:"chatbotLabel",id:"message",placeholder:"Select Chatbot",value:c.id,className:t.fields,onChange:function(e){c.text=gr.get(e.target.value),c.action=Er,c.caption="Open JS miniapp",s(Object(ce.a)({},c,{id:e.target.value}))}},r.map((function(e){return a.a.createElement(rr.a,{key:e.id,value:e.id},e.name)})))),c.id===dr&&a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"contactId",label:"Contact ID",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{contactId:e.target.value}))},placeholder:"Input contact id receiving a message",value:c.contactId})),a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"image",label:"Image",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{image:e.target.value}))},placeholder:"Image url or Base64 string",value:c.image})),a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"text",label:"Text",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{text:e.target.value}))},value:c.text,multiline:!0,rowsMax:"4"})),c.id!==dr&&a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"bannerMessage",label:"Banner message",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{bannerMessage:e.target.value}))},value:c.bannerMessage})),a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"caption",label:"Caption",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{caption:e.target.value}))},value:c.caption})),a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"action",label:"Action",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{action:e.target.value}))},value:c.action})),d.error&&a.a.createElement("div",{"data-testid":"validation-error",className:t.errorMessage},d.message),a.a.createElement(de.a,{className:t.actions},a.a.createElement(me.a,{"data-testid":"send-message",variant:"contained",color:"primary",fullWidth:!0,onClick:function(){var t,n,a,o;if(-1===r.map((function(e){return e.id})).findIndex((function(e){return e===c.id}))?(m({error:!0,message:"select message"}),0):void 0===c.text||0===c.text.trim().length?(m({error:!0,message:"text cannot be empty"}),0):2!==c.id||void 0!==c.contactId&&0!==c.contactId.trim().length?(m({error:!1,message:""}),1):(m({error:!0,message:"contact id cannot be empty"}),0))if(c.id===pr)e.sendMessageToContact(null!==(t=c.image.trim())&&void 0!==t?t:"",void 0!==c.text?c.text.trim():"",null!==(n=c.caption.trim())&&void 0!==n?n:"",null!==(a=c.action.trim())&&void 0!==a?a:"",null!==(o=c.bannerMessage.trim())&&void 0!==o?o:"").then((function(e){var t="Message not sent";null!==e&&(t="Message is sent to contact Id: "+e),h({show:!0,response:t})})).catch((function(e){h({show:!0,response:e})}));else if(c.id===dr){var i,s,l;e.sendMessageToContactId(c.contactId.trim(),null!==(i=c.image.trim())&&void 0!==i?i:"",void 0!==c.text?c.text.trim():"",null!==(s=c.caption.trim())&&void 0!==s?s:"",null!==(l=c.action.trim())&&void 0!==l?l:"").then((function(e){var t="Message not sent";null!==e&&void 0!==e&&(t="Message is sent to contact Id: "+e),h({show:!0,response:t})})).catch((function(e){h({show:!0,response:e})}))}else if(c.id===mr){var u,p,d,f;e.sendMessageToMultipleContacts(null!==(u=c.image.trim())&&void 0!==u?u:"",void 0!==c.text?c.text.trim():"",null!==(p=c.caption.trim())&&void 0!==p?p:"",null!==(d=c.action.trim())&&void 0!==d?d:"",null!==(f=c.bannerMessage.trim())&&void 0!==f?f:"").then((function(e){var t="Message not sent";null!==e&&(t=e.length+" contacts sent"),h({show:!0,response:t})})).catch((function(e){h({show:!0,response:e})}))}}},"SEND MESSAGE")),a.a.createElement(nr.a,{"data-testid":"message-response-dialog",open:E.show,onClose:b,"aria-labelledby":"max-width-dialog-title"},a.a.createElement(ar.a,{id:"max-width-dialog-title"},"Response"),a.a.createElement(or.a,null,a.a.createElement(ir.a,null,E.response)),a.a.createElement(cr.a,null,a.a.createElement(me.a,{onClick:b,color:"primary"},"Close")))))})),yr=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},root:{background:e.color.secondary,width:"85vw",maxWidth:500,color:Pe.a},wrapperContainer:{height:"100%",display:"flex",flexDirection:"column",paddingLeft:0},wrapper:{position:"relative",marginTop:10},buttonSuccess:{backgroundColor:ke.a[500],"&:hover":{backgroundColor:ke.a[700]}},buttonFailure:{backgroundColor:Pe.a[500],"&:hover":{backgroundColor:Pe.a[700]}},buttonProgress:{position:"absolute",top:"calc(50% - 10px)",left:"calc(50% - 10px)"},error:{color:Pe.a[500],marginTop:10},success:{color:ke.a[500],marginTop:20},rootUserGroup:{alignItems:"center"},formInput:{width:"90%",marginTop:10},rootCardActions:{justifyContent:"center"},caseSelector:{marginTop:5},button:{marginBottom:15},dataFormsWrapper:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},paper:{width:"100%",paddingBottom:10,marginBottom:20,"&:last-child":{marginBottom:0}},red:{color:Pe.a[500]},padding10:{padding:10}}})),vr={isLoading:!1,isError:!1,error:null,isSuccess:!1,inputError:null,isStorageCleaned:!1},Sr=function(e,t){switch(t.type){case"FETCH_INIT":return Object(ce.a)({},e,{isLoading:!0,isError:!1,error:null,isSuccess:!1,inputError:null,isStorageCleaned:!1});case"FETCH_SUCCESS":return Object(ce.a)({},e,{isLoading:!1,isError:!1,error:null,isSuccess:!0,inputError:null,isStorageCleaned:!1});case"FETCH_FAILURE":return Object(ce.a)({},vr,{isLoading:!1,isError:!0,error:("string"==typeof t.miniAppError?t.miniAppError:t.miniAppError.message)||"",isSuccess:!1,inputError:null,isStorageCleaned:!1});case"INPUT_FAILURE":return Object(ce.a)({},vr,{isLoading:!1,isError:!0,error:null,isSuccess:!1,inputError:t.inputError,isStorageCleaned:!1});case"RESET":return Object(ce.a)({},vr,{isLoading:!1,isError:!1,error:null,isSuccess:!1,inputError:null,isStorageCleaned:!1});case"STORAGE_CLEAR_SUCCESS":return Object(ce.a)({},vr,{isLoading:!1,isError:!1,error:null,isSuccess:!1,inputError:null,isStorageCleaned:!0});default:throw Error("Unknown action type")}};var Ar=Object(s.b)((function(e){return{setItems:e.secureStorage.setItems,getItems:e.secureStorage.getItem,size:e.secureStorage.size,storageError:e.error}}),(function(e){return{requestSetItems:function(t){return e(function(e){return function(t){return Ee.a.secureStorageService.setItems(JSON.parse(e)).then((function(){return console.log("setItems Success: "),t({type:"SET_SECURE_STORAGE_SUCCESS"}),Promise.resolve(void 0)})).catch((function(e){throw console.log("SetItems Error: ",e),t({type:"SET_SECURE_STORAGE_FAILURE",error:e}),e}))}}(t))},requestGetItem:function(t){return e(function(e){return function(t){return Ee.a.secureStorageService.getItem(e).then((function(e){return console.log("getItems SuccessAction: ",e),t({type:"GET_SECURE_STORAGE_SUCCESS",item:e}),Promise.resolve(e)})).catch((function(e){throw console.log("getItems Error: ",e),t({type:"GET_SECURE_STORAGE_FAILURE",error:e}),e}))}}(t))},requestRemoveItems:function(t){return e(function(e){return function(t){return Ee.a.secureStorageService.removeItems(e).then((function(){return console.log("removeItems SuccessAction: "),t({type:"REMOVE_ITEMS_SECURE_STORAGE_SUCCESS"}),Promise.resolve(void 0)})).catch((function(e){throw console.log("removeItems Error: ",e),t({type:"REMOVE_ITEMS_SECURE_STORAGE_FAILURE",error:e}),e}))}}(t))},requestClear:function(){return e((function(e){return Ee.a.secureStorageService.clear().then((function(t){return console.log("clear SuccessAction: ",t),e({type:"CLEAR_SECURE_STORAGE_SUCCESS"}),Promise.resolve(t)})).catch((function(t){throw console.log("clear Error: ",t),e({type:"CLEAR_SECURE_STORAGE_FAILURE",error:t}),t}))}))},requestSize:function(){return e((function(e){return Ee.a.secureStorageService.size().then((function(t){return console.log("size SuccessAction: ",t),e({type:"GET_SIZE_SECURE_STORAGE_SUCCESS",size:t}),Promise.resolve(t)})).catch((function(t){throw console.log("size Error: ",t),e({type:"GET_SIZE_SECURE_STORAGE_FAILURE",error:t}),t}))}))}}}))((function(e){var t,r=Object(n.useReducer)(Sr,vr),o=Object(u.a)(r,2),i=o[0],c=o[1],s=yr(),p=Object(n.useState)(""),d=Object(u.a)(p,2),g=d[0],E=d[1],h=Object(n.useState)(""),b=Object(u.a)(h,2),y=b[0],v=b[1],S=Object(n.useState)(""),A=Object(u.a)(S,2),C=A[0],O=A[1],w=Object(n.useState)(""),N=Object(u.a)(w,2),P=N[0],L=N[1],I=Object(n.useState)(""),T=Object(u.a)(I,2),j=T[0],U=T[1],F=Object(n.useState)(""),R=Object(u.a)(F,2),x=R[0],W=R[1],B=Object(n.useState)(""),M=Object(u.a)(B,2),k=M[0],D=M[1],H=Object(f.a)((t={},Object(l.a)(t,s.buttonFailure,i.isError),Object(l.a)(t,s.buttonSuccess,!i.isError),t));function G(e){return!e||0===e.trim().length}function V(t){X(g,y)&&X(C,P)?c({type:"INPUT_FAILURE",miniAppError:null,inputError:"Please enter Key and Value"}):J(g,y)&&J(C,P)?(c({type:"RESET",miniAppError:null,inputError:null}),function(){if(!i.isLoading){c({type:"FETCH_INIT",miniAppError:null,inputError:null});var t={};t[g]=y,t[C]=P,Object.keys(t).forEach((function(e){t[e]||delete t[e]})),function(t){e.requestSetItems(JSON.stringify(t)).then((function(e){console.log("Page - SetItems - Success",e),c({type:"FETCH_SUCCESS",miniAppError:null,inputError:null})})).catch((function(e){console.log("Page - SetItems - Error: ",e),c({type:"FETCH_FAILURE",miniAppError:e,inputError:null})}))}(t)}}()):(console.log("ERROR"),c({type:"INPUT_FAILURE",miniAppError:null,inputError:"Please enter both Key and Value"}))}function q(t){G(j)?c({type:"INPUT_FAILURE",miniAppError:null,inputError:"Key cannot be empty"}):i.isLoading||(c({type:"FETCH_INIT",miniAppError:null,inputError:null}),e.requestGetItem(j).then((function(e){console.log("Page - GetItems - Success",e),c({type:"FETCH_SUCCESS",miniAppError:null,inputError:null})})).catch((function(e){console.log("Page - GetItems - Error: ",e),c({type:"FETCH_FAILURE",miniAppError:e,inputError:null})})))}function Q(t){var r=[x,k].filter((function(e){return!1===G(e)}));i.isLoading||(c({type:"FETCH_INIT",miniAppError:null,inputError:null}),e.requestRemoveItems(r).then((function(e){console.log("Page - RemoveItems - Success",e),c({type:"FETCH_SUCCESS",miniAppError:null,inputError:null})})).catch((function(e){console.log("Page - RemoveItems - Error: ",e),c({type:"FETCH_FAILURE",miniAppError:e,inputError:null})})))}function Y(t){i.isLoading||(c({type:"FETCH_INIT",miniAppError:null,inputError:null}),e.requestSize().then((function(e){console.log("Page - Size - Success",e),c({type:"FETCH_SUCCESS",miniAppError:null,inputError:null})})).catch((function(e){console.log("Page - Size - Error: ",e),c({type:"FETCH_FAILURE",miniAppError:e,inputError:null})})))}function K(t){i.isLoading||(c({type:"FETCH_INIT",miniAppError:null,inputError:null}),e.requestClear().then((function(e){console.log("Page - clearStorageItems - Success",e),c({type:"STORAGE_CLEAR_SUCCESS",miniAppError:null,inputError:null})})).catch((function(e){console.log("Page - clearSecureStorageItems - Error: ",e),c({type:"FETCH_FAILURE",miniAppError:e,inputError:null})})))}function X(e,t){return G(e)&&G(t)}function J(e,t){return!(G(e)&&!G(t))&&!(!G(e)&&G(t))}var Z=a.a.useState("1"),z=Object(u.a)(Z,2),_=z[0],$=z[1];return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Secure storage","Screen","Page","")})),a.a.createElement(m.a,{className:s.wrapperContainer},a.a.createElement(Te.a,{value:_},a.a.createElement(je.a,{variant:"scrollable",onChange:function(e,t){c({type:"RESET",miniAppError:null,inputError:null}),$(t)},"aria-label":"simple tabs example"},a.a.createElement(Ie.a,{label:"Set",value:"1"}),a.a.createElement(Ie.a,{label:"Get",value:"2"}),a.a.createElement(Ie.a,{label:"Remove",value:"3"}),a.a.createElement(Ie.a,{label:"Others",value:"4"})),a.a.createElement(Ue.a,{value:"1"},a.a.createElement(we.a,{column:"true",className:s.rootUserGroup},a.a.createElement(n.Fragment,null,a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Key",value:g,onChange:function(e){return E(e.target.value)}}),a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Value",value:y,onChange:function(e){return v(e.target.value)}})),a.a.createElement("br",null),a.a.createElement(n.Fragment,null,a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Key",value:C,onChange:function(e){return O(e.target.value)}}),a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Value",value:P,onChange:function(e){return L(e.target.value)}})),a.a.createElement("br",null),a.a.createElement("br",null),a.a.createElement(me.a,{onClick:V,variant:"contained",color:"primary",classes:{root:s.button},className:H,disabled:i.isLoading,"data-testid":"setSecureStorage"},"Set Secure Storage"),i.isLoading&&a.a.createElement(le.a,{size:20,className:s.buttonProgress}),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.inputError),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.error),!i.isLoading&&i.isSuccess&&a.a.createElement(ue.a,{variant:"body1",className:s.red},"Items stored Successfully"))),a.a.createElement(Ue.a,{value:"2"},a.a.createElement(we.a,{column:"true",className:s.rootUserGroup},a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Key",value:j,onChange:function(e){return U(e.target.value)}}),a.a.createElement("br",null),a.a.createElement(me.a,{onClick:q,variant:"contained",color:"primary",classes:{root:s.button},className:H,disabled:i.isLoading,"data-testid":"getSecureStorage"},"Get Secure Storage"),i.isLoading&&a.a.createElement(le.a,{size:20,className:s.buttonProgress}),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.inputError),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.error),!i.isLoading&&!i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},e.getItems))),a.a.createElement(Ue.a,{value:"3"},a.a.createElement(we.a,{column:"true",className:s.rootUserGroup},a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Key",value:x,onChange:function(e){return W(e.target.value)}}),a.a.createElement("br",null),a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Key",value:k,onChange:function(e){return D(e.target.value)}}),a.a.createElement("br",null),a.a.createElement("br",null),a.a.createElement(me.a,{onClick:Q,variant:"contained",color:"primary",classes:{root:s.button},className:H,disabled:i.isLoading,"data-testid":"removeSecureStorage"},"Remove Items"),i.isLoading&&a.a.createElement(le.a,{size:20,className:s.buttonProgress}),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.inputError),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.error),!i.isLoading&&i.isSuccess&&a.a.createElement(ue.a,{variant:"body1",className:s.red},"Items removed Successfully"))),a.a.createElement(Ue.a,{value:"4"},a.a.createElement(we.a,{column:"true",className:s.rootUserGroup},a.a.createElement(me.a,{onClick:Y,variant:"contained",color:"primary",classes:{root:s.button},className:H,disabled:i.isLoading,"data-testid":"getSizeSecureStorage"},"Get Size"),a.a.createElement("br",null),a.a.createElement(me.a,{onClick:K,variant:"contained",color:"primary",classes:{root:s.button},className:H,disabled:i.isLoading,"data-testid":"clearSecureStorage"},"Clear Storage"),i.isLoading&&a.a.createElement(le.a,{size:20,className:s.buttonProgress}),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.inputError),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.error),!i.isLoading&&!i.isError&&i.isSuccess&&e.size&&a.a.createElement(ue.a,{variant:"body1",className:s.red},a.a.createElement("div",null,"Maximum Size: ",e.size.max),a.a.createElement("div",null,"Used Space: ",e.size.used),a.a.createElement("div",null,"Available: ",e.size.max-e.size.used)),!i.isLoading&&!i.isError&&i.isStorageCleaned&&a.a.createElement(ue.a,{variant:"body1",className:s.red},"Storage Cleared Successfully")))))})),Cr=Object(i.a)((function(e){return{card:{marginTop:"40px"},content:{height:"50%",justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},actions:{justifyContent:"center"},textfield:{width:"80%",maxWidth:300,background:"white","& input":{color:e.color.primary,lineHeight:"1.5em",fontSize:"1.2em"}}}}));var Or=function(){var e=Cr(),t="This is JS-SDK-Sample.";return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Share","Screen","Page","")})),a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{type:"text",className:e.textfield,onChange:function(e){e.preventDefault(),t=e.currentTarget.value},placeholder:"Content",defaultValue:"This is JS-SDK-Sample.",variant:"outlined",color:"primary",multiline:"true",rowsMax:"5",inputProps:{"data-testid":"input-field"}})),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{color:"primary",className:e.button,onClick:function(){var e={content:t};Ee.a.shareInfo(e).then((function(e){console.log(e)})).catch((function(e){console.error(e)}))},variant:"contained"},"Share")))},wr=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},actions:{justifyContent:"center"},content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0},sendInput:{width:"90%",marginTop:10,marginBottom:10,background:"white"},receiveInput:{width:"90%",marginTop:10,marginBottom:10,disabled:"disabled",caretColor:"transparent"},formInput:{marginTop:10,marginBottom:10,background:"white",width:"90%"},success:{color:ke.a[500],marginTop:20,textAlign:"center",wordBreak:"break-all"},faliure:{color:Pe.a[500]}}})),Nr=function(){var e=wr(),t=Object(n.useState)('{"data":"This is a sample json information"}'),r=Object(u.a)(t,2),o=r[0],i=r[1],c=Object(n.useState)(),s=Object(u.a)(c,2),l=s[0],p=s[1],d=Object(n.useState)(),m=Object(u.a)(d,2),f=m[0],g=m[1],E=Object(n.useState)(),h=Object(u.a)(E,2),b=h[0],y=h[1],v=Object(n.useState)(""),S=Object(u.a)(v,2),A=S[0],C=S[1],O=Object(n.useState)(""),w=Object(u.a)(O,2),N=w[0],P=w[1];Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Universal Bridge","Screen","Page","")})),window.addEventListener(ge.HostAppEvents.RECEIVE_JSON_INFO,(function(e){var t=e.detail.message;console.log(t),A=t,C(t)}));return a.a.createElement("div",{className:e.scrollable},a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},a.a.createElement("p",null,"Send JSON/String to HostApp"),a.a.createElement("div",null,""===N?a.a.createElement("div",null):"SUCCESS"===N?a.a.createElement(ue.a,{variant:"body2",className:e.success},'"',N,'"'):a.a.createElement(ue.a,{variant:"body2",className:e.red},'"Error: ',N,'"'))),a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{type:"text",className:e.sendInput,onChange:function(e){e.preventDefault(),i(e.currentTarget.value)},placeholder:"Input JSON/String here...",value:o,variant:"outlined",color:"primary",multiline:"true",inputProps:{"data-testid":"input-field"}})),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{color:"primary",className:e.button,onClick:function(){var e={content:o};Ee.a.universalBridge.sendJsonToHostapp(e).then((function(e){console.log(e),P("SUCCESS")})).catch((function(e){console.error(e),P(e.message)}))},variant:"contained"},"Send Json"),a.a.createElement(me.a,{className:e.button,onClick:function(){i("")},variant:"contained"},"Clear")),a.a.createElement("hr",{style:{borderColor:"primary"}}),a.a.createElement("div",null,a.a.createElement(pe.a,{variant:"outlined",className:e.formInput,id:"input-name",label:"Key",value:l,onChange:function(e){return p(e.target.value)}}),a.a.createElement(pe.a,{variant:"outlined",className:e.formInput,id:"input-name",label:"Value",value:f,onChange:function(e){return g(e.target.value)}}),a.a.createElement(pe.a,{variant:"outlined",className:e.formInput,id:"input-name",label:"Description",value:b,onChange:function(e){return y(e.target.value)}})),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{color:"primary",className:e.button,onClick:function(){var e={key:l,value:f,description:b};Ee.a.universalBridge.sendInfoToHostapp(e).then((function(e){console.log(e),P("SUCCESS")})).catch((function(e){console.error(e),P(e.message)}))},variant:"contained"},"Send Info"),a.a.createElement(me.a,{className:e.button,onClick:function(){p(""),g(""),y("")},variant:"contained"},"Clear")),a.a.createElement("hr",{style:{borderColor:"primary"}}),a.a.createElement(se.a,{className:e.content},a.a.createElement("p",null,"Receive JSON/String from HostApp")),a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{type:"text",className:e.receiveInput,placeholder:"Received JSON/String here",value:A,variant:"outlined",color:"primary",multiline:"true"}))))},Pr=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},actions:{justifyContent:"center",paddingBottom:16},content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0},textfield:{width:"100%"}}})),Lr=Object(i.a)((function(e){return{content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0,height:"50px"},card:{width:"100%",height:"100px"},actions:{justifyContent:"center",paddingBottom:16}}})),Ir=function(){var e=Pr(),t=Lr(),r=Object(n.useState)("?testSendParam=someValue&test2=test2"),o=Object(u.a)(r,2),i=o[0],c=o[1],s=Object(n.useState)("".concat(window.location.protocol,"//").concat(window.location.host,"/index.html")),l=Object(u.a)(s,2),p=l[0],d=l[1],m=Object(n.useState)(""),f=Object(u.a)(m,2),g=f[0],E=f[1];function h(e){window.location.href=e}return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"URI Schemes","Screen","Page","")})),a.a.createElement("div",{className:e.scrollable},a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},"tel: scheme"),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",href:"tel:+1-123-456-7890"},"+1-123-456-7890")),a.a.createElement(se.a,{className:e.content},"tel:// scheme"),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",href:"tel://+1-123-456-7890"},"+1-123-456-7890")),a.a.createElement(se.a,{className:e.content},"mailto:"),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",href:"mailto:mail@example.com?cc=ccmail@example.com, ccmail2@example.com, &bcc=bccmail@example.com&subject=Sample subject&body=Sample body."},"Address / cc / bcc / subject / body")),a.a.createElement(se.a,{className:e.content},"External Webview Params & Callback"),a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{className:e.textfield,onChange:function(e){return c(e.currentTarget.value)},value:i,label:"Params to pass",variant:"outlined",color:"primary",inputProps:{"data-testid":"input-field"}})),a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{className:e.textfield,onChange:function(e){return d(e.currentTarget.value)},value:p,label:"Mini App Return URL",variant:"outlined",color:"primary",inputProps:{"data-testid":"callback-input-field"}})),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){if(!i||function(e){return e.startsWith("?")&&e.indexOf("=")>=0}(i)){var e=new URL("https://htmlpreview.github.io/?https://raw.githubusercontent.com/rakutentech/js-miniapp/master/js-miniapp-sample/external-webview/index.html"+i);e.search=e.search.concat(e.search?"&":"?").concat("callbackUrl=".concat(encodeURIComponent(p))),h(e)}else window.alert("Invalid params. Please input params in the format ?param1=value1¶m2=value2")}},"Open"))),a.a.createElement("br",null),a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},"URL or Deep Link"),a.a.createElement(se.a,{className:t.content},a.a.createElement(pe.a,{className:e.textfield,onChange:function(e){return E(e.currentTarget.value)},value:g,label:"Deep Link URL",variant:"outlined",color:"primary",inputProps:{"data-testid":"deeplink-input-field"}})),a.a.createElement(de.a,{className:t.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){return g&&h(g)}},"Open"))))},Tr=r(394),jr=r(448),Ur=r(419),Fr=r(420),Rr=r(421),xr=r(200),Wr=r.n(xr),Br=r(201),Mr=r.n(Br),kr=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},root:{background:e.color.secondary,width:"85vw",maxWidth:500},wrapperContainer:{height:"100%",display:"flex",flexDirection:"column",paddingLeft:0},wrapper:{position:"relative",marginTop:10},buttonSuccess:{backgroundColor:ke.a[500],"&:hover":{backgroundColor:ke.a[700]}},buttonFailure:{backgroundColor:Pe.a[500],"&:hover":{backgroundColor:Pe.a[700]}},buttonProgress:{position:"absolute",top:"calc(50% - 10px)",left:"calc(50% - 10px)"},error:{color:Pe.a[500],marginTop:10},success:{color:ke.a[500],marginTop:20},rootUserGroup:{alignItems:"center"},formInput:{width:"90%",marginTop:10},rootCardActions:{justifyContent:"center"},caseSelector:{marginTop:5},button:{marginBottom:15},dataFormsWrapper:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},paper:{width:"100%",paddingBottom:10,marginBottom:20,"&:last-child":{marginBottom:0}},profilePhoto:{height:100,width:100},profilePhotoOuter:{display:"flex",justifyContent:"center"},userProfile:{maxHeight:125,overflow:"auto"},contactsList:{maxHeight:320,overflow:"auto"},red:{color:Pe.a[500]}}})),Dr={isNamePhotoLoading:!1,isNamePhottoError:!1,hasRequestedNamePhotoPermissions:!1,isContactsLoading:!1,isContactsError:!1,hasRequestedContactsPermissions:!1,isPointsLoading:!1,isPointsError:!1,hasRequestedPointPermissions:!1},Hr=function(e,t){switch(t.type){case"NAME_PHOTO_FETCH_INIT":return Object(ce.a)({},e,{isNamePhotoLoading:!0,isNamePhotoError:!1,hasRequestedNamePhotoPermissions:!1});case"NAME_PHOTO_FETCH_SUCCESS":return Object(ce.a)({},e,{isNamePhotoLoading:!1,isNamePhotoError:!1,hasRequestedNamePhotoPermissions:!0});case"NAME_PHOTO_FETCH_FAILURE":return Object(ce.a)({},Dr,{isNamePhotoLoading:!1,isNamePhotoError:!0});case"CONTACTS_FETCH_INIT":return Object(ce.a)({},e,{isContactsLoading:!0,isContactsError:!1,hasRequestedContactsPermissions:!1});case"CONTACTS_FETCH_SUCCESS":return Object(ce.a)({},e,{isContactsLoading:!1,isContactsError:!1,hasRequestedContactsPermissions:!0});case"CONTACTS_FETCH_FAILURE":return Object(ce.a)({},Dr,{isContactsLoading:!1,isContactsError:!0});case"POINTS_FETCH_INIT":return Object(ce.a)({},e,{isPointsLoading:!0,isPointsError:!1,hasRequestedPointPermissions:!1});case"POINTS_FETCH_SUCCESS":return Object(ce.a)({},e,{isPointsLoading:!1,isPointsError:!1,hasRequestedPointPermissions:!0});case"POINTS_FETCH_FAILURE":return Object(ce.a)({},Dr,{isPointsLoading:!1,isPointsError:!0});default:throw Error("Unknown action type")}};var Gr=Object(s.b)((function(e){return{permissions:e.permissions,userName:e.user.userName,profilePhoto:e.user.profilePhoto,contactList:e.user.contactList,points:e.user.points}}),(function(e){return{getUserName:function(){return e((function(e){return Ee.a.user.getUserName().then((function(t){e({type:"REQUEST_USER_NAME_SUCCESS",userName:t})})).catch((function(t){e({type:"REQUEST_USER_NAME_FAILURE"})}))}))},getProfilePhoto:function(){return e((function(e){return Ee.a.user.getProfilePhoto().then((function(t){e({type:"REQUEST_PROFILE_PHOTO_SUCCESS",url:t})})).catch((function(t){e({type:"REQUEST_PROFILE_PHOTO_FAILURE"})}))}))},getContacts:function(){return e((function(e){return Ee.a.user.getContacts().then((function(t){return e({type:"REQUEST_CONTACT_LIST_SUCCESS",contacts:t}),Promise.resolve(t)})).catch((function(t){e({type:"REQUEST_CONTACT_LIST_FAILURE"})}))}))},getPoints:function(){return e((function(e){return Ee.a.user.getPoints().then((function(t){return e({type:"REQUEST_POINTS_SUCCESS",points:t}),Promise.resolve(t)})).catch((function(t){throw e({type:"REQUEST_POINTS_FAILURE"}),t}))}))},requestPermissions:function(t){return e(De(t))}}}))((function(e){var t,r,o=Object(n.useReducer)(Hr,Dr),i=Object(u.a)(o,2),c=i[0],s=i[1],p=kr(),d=L(c.isNamePhotoError),g=L(c.isContactsError),E=L(c.isPointsError),h=Object(n.useState)("none"),b=Object(u.a)(h,2),y=b[0],v=b[1],S=Object(n.useState)(""),A=Object(u.a)(S,2),C=A[0],O=A[1],w=(t=C,r=e.contactList,t?r.filter((function(e){return e.name.toLocaleLowerCase().includes(t.toLowerCase())})).map((function(e){return e})):r),N=function(e){v(""===e.target.value?"none":"flex"),O(e.target.value)},P=function(){O(""),v("none")};function L(e){var t;return Object(f.a)((t={},Object(l.a)(t,p.buttonFailure,e),Object(l.a)(t,p.buttonSuccess,!e),t))}function I(e){return e.filter((function(e){return e.status===ge.CustomPermissionStatus.ALLOWED})).map((function(e){return e.name}))}function T(t){c.isNamePhotoLoading||(t.preventDefault(),s({type:"NAME_PHOTO_FETCH_INIT"}),function(){var t=[{name:ge.CustomPermissionName.USER_NAME,description:"We would like to display your Username on your profile page."},{name:ge.CustomPermissionName.PROFILE_PHOTO,description:"We would like to display your Profile Photo on your profile page."}];e.requestPermissions(t).then((function(e){return I(e)})).then((function(t){return Promise.all([R(ge.CustomPermissionName.USER_NAME,t)?void e.getUserName().then((function(e){s({type:"NAME_PHOTO_FETCH_SUCCESS"})})).catch((function(e){s({type:"NAME_PHOTO_FETCH_FAILURE",error:e})})):null,R(ge.CustomPermissionName.PROFILE_PHOTO,t)?void e.getProfilePhoto().then((function(e){s({type:"NAME_PHOTO_FETCH_SUCCESS"})})).catch((function(e){s({type:"NAME_PHOTO_FETCH_FAILURE",error:e})})):null])})).then((function(){return s({type:"NAME_PHOTO_FETCH_SUCCESS"})})).catch((function(e){console.error(e),s({type:"NAME_PHOTO_FETCH_FAILURE"})}))}())}function j(t){c.isContactsLoading||(t.preventDefault(),s({type:"CONTACTS_FETCH_INIT"}),function(){var t=[{name:ge.CustomPermissionName.CONTACT_LIST,description:"We would like to send messages to your contacts."}];e.requestPermissions(t).then((function(e){return I(e)})).then((function(t){return Promise.all([R(ge.CustomPermissionName.CONTACT_LIST,t)?e.getContacts():null])})).then((function(){return s({type:"CONTACTS_FETCH_SUCCESS"})})).catch((function(e){console.error(e),s({type:"CONTACTS_FETCH_FAILURE"})}))}())}function U(t){c.isPointsLoading||(t.preventDefault(),s({type:"POINTS_FETCH_INIT"}),function(){var t=[{name:ge.CustomPermissionName.POINTS,description:"We would like to display your Points on your profile page."}];e.points=void 0,e.requestPermissions(t).then((function(e){return I(e)})).then((function(t){return Promise.all([R(ge.CustomPermissionName.POINTS,t)?e.getPoints():null])})).then((function(){return s({type:"POINTS_FETCH_SUCCESS"})})).catch((function(e){console.error(e),s({type:"POINTS_FETCH_FAILURE"})}))}())}function F(){return c.hasRequestedPointPermissions&&!R(ge.CustomPermissionName.POINTS)}function R(t,r){return void 0!==(r=r||e.permissions||[]).indexOf?r.indexOf(t)>-1:void 0!==r.permissions.indexOf&&r.permissions.indexOf(t)>-1}Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"User details","Screen","Page","")}));var x=a.a.useState("1"),W=Object(u.a)(x,2),B=W[0],M=W[1];return a.a.createElement(m.a,{className:p.wrapperContainer},a.a.createElement(Te.a,{value:B},a.a.createElement(je.a,{variant:"scrollable",onChange:function(e,t){M(t)},"aria-label":"user details tabs"},a.a.createElement(Ie.a,{label:"Profile",value:"1"}),a.a.createElement(Ie.a,{label:"Contacts",value:"2"}),a.a.createElement(Ie.a,{label:"Points",value:"3"})),a.a.createElement(Ue.a,{value:"1"},function(){var t=c.hasRequestedNamePhotoPermissions&&R(ge.CustomPermissionName.PROFILE_PHOTO),r=c.hasRequestedNamePhotoPermissions&&R(ge.CustomPermissionName.USER_NAME);return a.a.createElement(we.a,{column:"true"},a.a.createElement(fe.a,{className:p.paper},a.a.createElement(Tr.a,{className:p.userProfile},c.hasRequestedNamePhotoPermissions&&!t&&a.a.createElement(dt.a,null,a.a.createElement(mt.a,{primary:'"Profile Photo" permission not granted.',className:p.red,key:"avatar-error"})),t&&a.a.createElement("div",{className:p.profilePhotoOuter},a.a.createElement(jr.a,{src:e.profilePhoto,className:p.profilePhoto,key:"avatar"}))),a.a.createElement(Ur.a,{subheader:"User Details"}),a.a.createElement(pe.a,{variant:"outlined",disabled:!0,className:p.formInput,id:"input-name",error:c.isNamePhotoError&&c.hasRequestedNamePhotoPermissions,label:"User Name",value:!r&&c.hasRequestedNamePhotoPermissions?'"User Name" permission not granted.':e.userName||" "})),a.a.createElement("div",{className:p.wrapper},a.a.createElement(me.a,{onClick:T,variant:"contained",color:"primary",classes:{root:p.button},className:d,disabled:c.isNamePhotoLoading,"data-testid":"fetchNamePhotoButton"},"Fetch User Name and Photo"),c.isNamePhotoLoading&&a.a.createElement(le.a,{size:20,className:p.buttonProgress})),c.isNamePhotoError&&a.a.createElement(ue.a,{variant:"body1",className:p.error},"Error fetching the user name and photo"))}()),a.a.createElement(Ue.a,{value:"2"},a.a.createElement(we.a,{column:"true"},a.a.createElement("div",{className:p.wrapper},a.a.createElement(me.a,{onClick:j,variant:"contained",color:"primary",classes:{root:p.button},className:g,disabled:c.isContactsLoading,"data-testid":"fetchContactsButton"},"Fetch Contacts"),c.isContactsLoading&&a.a.createElement(le.a,{size:20,className:p.buttonProgress})),a.a.createElement(pe.a,{size:"small",variant:"outlined",onChange:N,value:C,InputProps:{startAdornment:a.a.createElement(Fr.a,{position:"start"},a.a.createElement(Wr.a,null)),endAdornment:a.a.createElement(Fr.a,{position:"end",style:{display:y},onClick:P},a.a.createElement(Mr.a,null))}}),a.a.createElement(fe.a,{className:p.paper},e.contactList&&a.a.createElement(Ur.a,{subheader:"Contact List: "+e.contactList.length}),a.a.createElement(Tr.a,{className:p.contactsList},c.hasRequestedContactsPermissions&&!1,e.contactList&&w.map((function(e){return a.a.createElement(dt.a,{divider:!0},a.a.createElement(Rr.a,null,a.a.createElement(jr.a,{className:p.contactIcon})),a.a.createElement(mt.a,{primary:e.id,secondary:a.a.createElement(a.a.Fragment,null,a.a.createElement(ue.a,null,e.name&&""!==e.name&&a.a.createElement("span",null,"Name: "+e.name)),a.a.createElement(ue.a,null,e.email&&""!==e.email&&a.a.createElement("span",null,"Email: "+e.email)),a.a.createElement(ue.a,null,e.allEmailList&&e.allEmailList.length>0&&a.a.createElement("span",null,"Email list: "+e.allEmailList.join(", "))))}))})))),c.isContactsError&&a.a.createElement(ue.a,{variant:"body1",className:p.error},"Error fetching the contacts"))),a.a.createElement(Ue.a,{value:"3"},a.a.createElement(we.a,{column:"true"},a.a.createElement(fe.a,{className:p.paper},a.a.createElement(Ur.a,{subheader:"Points"}),a.a.createElement(pe.a,{variant:"outlined",disabled:!0,className:p.formInput,id:"input-points-standard",error:c.isPointsError||F(),label:"Points (Standard)",value:F()?'"Points" permission not granted.':void 0!==e.points&&void 0!==e.points.standard?e.points.standard.toString():"-"}),a.a.createElement(pe.a,{variant:"outlined",disabled:!0,className:p.formInput,id:"input-points-term",error:c.isPointsError||F(),label:"Points (Time-Limited)",value:F()?'"Points" permission not granted.':void 0!==e.points&&void 0!==e.points.term?e.points.term.toString():"-"}),a.a.createElement(pe.a,{variant:"outlined",disabled:!0,className:p.formInput,id:"input-points-cash",error:c.isPointsError||F(),label:"Points (Rakuten Cash)",value:F()?'"Points" permission not granted.':void 0!==e.points&&void 0!==e.points.cash?e.points.cash.toString():"-"})),a.a.createElement("div",{className:p.wrapper},a.a.createElement(me.a,{onClick:U,variant:"contained",color:"primary",classes:{root:p.button},className:E,disabled:c.isPointsLoading,"data-testid":"fetchPointsButton"},"Fetch Points"),c.isPointsLoading&&a.a.createElement(le.a,{size:20,className:p.buttonProgress})),c.isPointsError&&a.a.createElement(ue.a,{variant:"body1",className:p.error},"Error fetching the points")))))})),Vr=r(439),qr=r(138),Qr=Object(i.a)((function(e){return{card:{width:"100%",height:"auto",marginTop:"40px",display:"grid"},content:{height:"auto",justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",wordBreak:"break-word"},actions:{justifyContent:"center"},uuidNotFound:{width:200}}})),Yr=Object(s.b)((function(e,t){return Object(ce.a)({},t,{uniqueId:e.uuid.uniqueId,uniqueIdError:e.uuid.uniqueIdError,messagingUniqueId:e.uuid.messagingUniqueId,messagingUniqueIdError:e.uuid.messagingUniqueIdError,mauid:e.uuid.mauid,mauidError:e.uuid.mauidError})}),(function(e){return{getUniqueId:function(){return e((function(e){Ee.a.getUniqueId().then((function(t){e({type:"SET_UNIQUE_ID",payload:t})})).catch((function(t){e({type:"UNIQUE_ID_FETCH_ERROR",error:t})}))}))},getMessagingUniqueId:function(){return e((function(e){Ee.a.getMessagingUniqueId().then((function(t){e({type:"SET_MESSAGING_UNIQUE_ID",payload:t})})).catch((function(t){e({type:"MESSAGING_UNIQU_ID_FETCH_ERROR",error:t})}))}))},getMauid:function(){return e((function(e){Ee.a.getMauid().then((function(t){e({type:"SET_MAUID",payload:t})})).catch((function(t){e({type:"MAUID_FETCH_ERROR",error:t})}))}))}}}))((function(e){var t,r,o,i,c,s,l=Qr(),p=Object(n.useState)({success:!1,error:!1}),d=Object(u.a)(p,2),m=d[0],f=d[1];function g(e,t){f(t?{success:!0,error:!1}:{success:!1,error:!0})}return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Unique ID","Screen","Page","")})),a.a.createElement(ve,{className:l.card},a.a.createElement(se.a,{className:l.content},null!==(t=null!==(r=e.uniqueId)&&void 0!==r?r:e.uniqueIdError)&&void 0!==t?t:"Not Available"),a.a.createElement(de.a,{className:l.actions},a.a.createElement(me.a,{"data-testid":"get-unique-id",variant:"contained",color:"primary",fullWidth:!0,onClick:e.getUniqueId},"GET UNIQUE ID"),a.a.createElement(qr.CopyToClipboard,{disabled:!e.uniqueId,text:e.uniqueId,onCopy:g},a.a.createElement(me.a,{disabled:!e.uniqueId,"data-testid":"clipboard-copy",variant:"contained",color:"primary"},"Copy")),a.a.createElement(Vr.a,{open:m.success,autoHideDuration:3e3,onClose:function(){f({success:!1,error:!1})},message:"Copied to clipboard !!"}),a.a.createElement(Vr.a,{open:m.error,autoHideDuration:3e3,onClose:function(){f({success:!1,error:!1})},message:"Failed to copy!"})),a.a.createElement(se.a,{className:l.content},null!==(o=null!==(i=e.messagingUniqueId)&&void 0!==i?i:e.messagingUniqueIdError)&&void 0!==o?o:"Not Available"),a.a.createElement(de.a,{className:l.actions},a.a.createElement(me.a,{"data-testid":"get-messaging-unique-id",variant:"contained",color:"primary",fullWidth:!0,onClick:e.getMessagingUniqueId},"GET MESSAGING UNIQUE ID"),a.a.createElement(qr.CopyToClipboard,{disabled:!e.messagingUniqueId,text:e.messagingUniqueId,onCopy:g},a.a.createElement(me.a,{disabled:!e.messagingUniqueId,"data-testid":"clipboard-copy",variant:"contained",color:"primary"},"Copy")),a.a.createElement(Vr.a,{open:m.success,autoHideDuration:3e3,onClose:function(){f({success:!1,error:!1})},message:"Copied to clipboard !!"}),a.a.createElement(Vr.a,{open:m.error,autoHideDuration:3e3,onClose:function(){f({success:!1,error:!1})},message:"Failed to copy!"})),a.a.createElement(se.a,{className:l.content},null!==(c=null!==(s=e.mauid)&&void 0!==s?s:e.mauidError)&&void 0!==c?c:"Not Available"),a.a.createElement(de.a,{className:l.actions},a.a.createElement(me.a,{"data-testid":"get-mauid",variant:"contained",color:"primary",fullWidth:!0,onClick:e.getMauid},"GET MAUID"),a.a.createElement(qr.CopyToClipboard,{disabled:!e.mauid,text:e.mauid,onCopy:g},a.a.createElement(me.a,{disabled:!e.mauid,"data-testid":"clipboard-copy",variant:"contained",color:"primary"},"Copy"))))})),Kr=r(203),Xr=r.n(Kr),Jr=r(202),Zr=r.n(Jr),zr=function(){var e=Object(n.useState)({isWatching:!1,isLoading:!1}),t=Object(u.a)(e,2),r=t[0],a=t[1];return[r,function(){return Ee.a.requestLocationPermission("We would like to display the location of your device.").then((function(){a({isWatching:!0,isLoading:!0});var e=setTimeout((function(){a({isWatching:!1,isLoading:!1,error:"Timeout"})}),6e3);navigator.geolocation.getCurrentPosition((function(t){clearTimeout(e);var r=t.coords,n=r.longitude,o=r.latitude;a({isWatching:!0,isLoading:!1,location:{latitude:o,longitude:n}})}),(function(t){clearTimeout(e),a({isWatching:!1,isLoading:!1,error:"Location Disabled"})}),{enableHighAccuracy:!0})})).catch((function(e){return a({isWatching:!1,isLoading:!1,error:e})}))},function(){a({isWatching:!1})}]},_r=Object(i.a)((function(e){return{card:{alignItems:"center",justifyContent:"center",marginTop:"40px"},content:{height:"50%",justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},locationContainer:{height:"70%",display:"flex",flexDirection:"column",justifyContent:"space-around","& div .label":{display:"inline",padding:".2em .6em .3em",fontSize:"75%",fontWeight:700,lineHeight:1,textAlign:"center",whiteSpace:"nowrap",verticalAlign:"baseline",borderRadius:".25em"}},actions:{justifyContent:"center"},button:{},disabled:{opacity:.5,color:"#fff !important",backgroundColor:"".concat(e.color.primary," !important")},buttonProgress:{position:"absolute",top:"calc(50% - 10px)",left:"calc(50% - 10px)"}}})),$r=function(e){var t=_r(),r=zr(),o=Object(u.a)(r,3),i=o[0],c=o[1],s=o[2];return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Location","Screen","Page","")})),a.a.createElement(ve,{className:t.card},a.a.createElement(se.a,{className:t.content},i.error&&a.a.createElement("div",null,"Error: ",i.error),i.isLoading&&a.a.createElement(le.a,{size:20,className:t.buttonProgress}),i.location&&i.isWatching&&a.a.createElement("div",{className:t.locationContainer,"data-testid":"location-container"},a.a.createElement("div",null,a.a.createElement("span",{className:"label"},"Longitude:"),i.location.longitude),a.a.createElement("div",null,a.a.createElement("span",{className:"label"},"Latitude:"),i.location.latitude))),a.a.createElement(de.a,{className:t.actions},a.a.createElement(me.a,{"data-testid":"turn-on",startIcon:a.a.createElement(Zr.a,null),variant:"contained",color:"primary",disabled:i.isWatching,className:Object(f.a)(t.button,Object(l.a)({},t.disabled,i.isWatching)),onClick:c},"TURN ON"),a.a.createElement(me.a,{"data-testid":"turn-off",startIcon:a.a.createElement(Xr.a,null),variant:"contained",color:"primary",onClick:s,disabled:!i.isWatching,className:Object(f.a)(t.button,Object(l.a)({},t.disabled,!i.isWatching))},"TURN OFF")))},en=Object(i.a)((function(e){return{root:{height:300,width:"100%"},content:{height:"50%",justifyContent:"space-between",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"}}})),tn=function(){var e=en();return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Window actions","Screen","Page","")})),a.a.createElement(be.a,{className:e.root},a.a.createElement(se.a,{className:e.content},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){window.alert("This is window alert!")}},"Show Window Alert"),a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){window.confirm("This is window confirm!")}},"Show Window Confirm"),a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){window.prompt("This is window prompt!","sure!")}},"Show Window Prompt")))},rn={navLink:"/landing",label:"Home"},nn={navLink:"/local_storage",label:"Local Storage"},an={navLink:"/fetch_id",label:"Fetch Unique ID"},on={navLink:"/device_location",label:"Device Location"},cn={navLink:"/auth_token",label:"Auth token"},sn={navLink:"/user_detail",label:"User Details"},ln={navLink:"/chatbot",label:"Message"},un={navLink:"/window_actions",label:"Window Actions"},pn={navLink:"/uri_schemes",label:"URI Schemes"},dn={navLink:"/event_listener",label:"Event Listener"},mn={navLink:"/media",label:"Media"},fn={navLink:"/share",label:"Share"},gn={navLink:"/ads",label:"Ads"},En={navLink:"/camera",label:"Camera"},hn={navLink:"/file_download",label:"File Download"},bn={navLink:"/file_upload",label:"File Upload"},yn={navLink:"/gifs",label:"GIF's & WebP"},vn={navLink:"/secure-storage",label:"SecureStorage"},Sn={navLink:"/close-confirm-alert",label:"Close Feature"},An={navLink:"/universal-bridge",label:"Universal Bridge"},Cn={navLink:"/in-app-purchase",label:"Purchase"},On={navLink:"/color-theme",label:"Color Theme"},wn=[{navLink:"/index.html",label:"Home"},{navLink:"/miniapp/index.html",label:"Home"},{navLink:"/",label:"Home"},rn,nn,an,on,cn,sn,ln,un,pn,dn,mn,fn,gn,En,hn,bn,yn,vn,Sn,An,Cn,On],Nn=[{icon:a.a.createElement(T.a,null),label:rn.label,navLink:rn.navLink,element:a.a.createElement(Yt,null)}],Pn=[{icon:a.a.createElement(ae.a,null),label:nn.label,navLink:nn.navLink,element:a.a.createElement(Jt,null)},{icon:a.a.createElement(N.a,null),label:an.label,navLink:an.navLink,element:a.a.createElement(Yr,null)},{icon:a.a.createElement(M.a,null),label:on.label,navLink:on.navLink,element:a.a.createElement($r,null)},{icon:a.a.createElement(ie.a,null),label:cn.label,navLink:cn.navLink,element:a.a.createElement(qe,null)},{icon:a.a.createElement(Y.a,null),label:sn.label,navLink:sn.navLink,element:a.a.createElement(Gr,null)},{icon:a.a.createElement(v.a,null),label:ln.label,navLink:ln.navLink,element:a.a.createElement(br,null)},{icon:a.a.createElement(U.a,null),label:un.label,navLink:un.navLink,element:a.a.createElement(tn,null)},{icon:a.a.createElement(R.a,null),label:pn.label,navLink:pn.navLink,element:a.a.createElement(Ir,null)},{icon:a.a.createElement(O.a,null),label:dn.label,navLink:dn.navLink,element:a.a.createElement(ze,null)},{icon:a.a.createElement(D.a,null),label:mn.label,navLink:mn.navLink,element:a.a.createElement($t,null)},{icon:a.a.createElement(ee.a,null),label:fn.label,navLink:fn.navLink,element:a.a.createElement(Or,null)},{icon:a.a.createElement(W.a,null),label:gn.label,navLink:gn.navLink,element:a.a.createElement(Oe,null)},{icon:a.a.createElement(X.a,null),label:En.label,navLink:En.navLink,element:a.a.createElement(Ye,null)},{icon:a.a.createElement(A.a,null),label:hn.label,navLink:hn.navLink,element:a.a.createElement(et,null)},{icon:a.a.createElement(b.a,null),label:bn.label,navLink:bn.navLink,element:a.a.createElement(st,null)},{icon:a.a.createElement(L.a,null),label:yn.label,navLink:yn.navLink,element:a.a.createElement(pt,null)},{icon:a.a.createElement(Z.a,null),label:vn.label,navLink:vn.navLink,element:a.a.createElement(Ar,null)},{icon:a.a.createElement(G.a,null),label:Sn.label,navLink:Sn.navLink,element:a.a.createElement(Be,null)},{icon:a.a.createElement(_.a,null),label:An.label,navLink:An.navLink,element:a.a.createElement(Nr,null)},{icon:a.a.createElement(re.a,null),label:Cn.label,navLink:Cn.navLink,element:a.a.createElement(vt,null)},{icon:a.a.createElement(q.a,null),label:On.label,navLink:On.navLink,element:a.a.createElement(Je,null)}],Ln=Nn.concat(Pn.sort((function(e,t){return e.label.localeCompare(t.label)}))),In=r(425),Tn=r(427),jn=r(426),Un=r(229),Fn=r.n(Un),Rn=r(230),xn=r.n(Rn),Wn=r(449),Bn=r(437),Mn=r(424),kn=r(423),Dn=r(435),Hn=r(228),Gn=r.n(Hn),Vn=r(227),qn=r.n(Vn),Qn=r(155),Yn=r.n(Qn),Kn=Object(i.a)((function(e){return{drawer:{},drawerPaper:Object(l.a)({},e.breakpoints.up("sm"),{height:"calc(100% - 64px)",top:"64px !important"}),drawerPaperContent:{height:"100%",width:250,display:"flex",flexDirection:"column",justifyContent:"space-between"},drawerPaperContentTopList:Object(l.a)({height:"calc(100% - 70px)",overflowY:"scroll"},e.breakpoints.down("xs"),{height:"100%"}),drawerPaperShrink:{width:"70px",overflowX:"hidden"},shrinkedListItem:{paddingLeft:"24px"},NavListRoot:{paddingTop:1},tooltip:{backgroundColor:e.color.primary},tooltipArrow:{color:e.color.primary},navLink:{height:56},activeNavLink:{backgroundColor:e.color.primary,color:"white","& .icon":{color:"white"}}}})),Xn=Object(s.b)((function(e,t){return Object(ce.a)({},t,{sdkVersion:e.info.sdkVersion})}),(function(e){return{changeTitle:function(t){return e(function(e){return{type:"SET_CURRENT_PAGE_TITLE",payload:e}}(t))},getHostInfo:function(){return e(qt())}}}))((function(e){Object(n.useEffect)((function(){try{e.getHostInfo()}catch(t){console.log(t)}}),[e]);var t=Kn(),r=Object(p.a)(),o=Object(d.a)(r.breakpoints.down("xs"));o&&(e=Object(ce.a)({},e,{shrinked:!1}));return a.a.createElement(Dn.a,{className:t.drawer,classes:{paper:t.drawerPaper},anchor:"left",variant:o?"temporary":"persistent",open:e.show,onClose:function(t){return e.onOpenClose(t)},onOpen:function(t){return e.onOpenClose(t)}},a.a.createElement("div",{className:Object(f.a)(t.drawerPaperContent,Object(l.a)({},t.drawerPaperShrink,e.shrinked)),role:"presentation"},a.a.createElement(Tr.a,{className:Object(f.a)(t.drawerPaperContentTopList),classes:{root:t.NavListRoot}},e.show&&e.navItems.map((function(r){return function(t,r){var n=e.sdkVersion||"0.0.1";return t=t||"0.0.1",r=r||"10000.0.0",Yn.a.gte(n,t)&&Yn.a.lte(n,r)}(r.supportedAboveSdkVersion,r.supportedBelowSdkVersion)&&a.a.createElement(Wn.a,{key:r.label,arrow:!0,title:e.shrinked?r.label:"",placement:"right",enterDelay:100,classes:{tooltip:t.tooltip,arrow:t.tooltipArrow}},a.a.createElement(dt.a,{button:!0,onClick:function(){e.changeTitle(r.label),o&&e.onOpenClose(void 0)},component:g.b,to:r.navLink,key:r.label,activeclassname:t.activeNavLink,className:Object(f.a)(t.navLink,Object(l.a)({},t.shrinkedListItem,e.shrinked))},a.a.createElement(kn.a,{className:"icon"},r.icon),a.a.createElement(mt.a,{primary:e.shrinked?" ":r.label})))}))),a.a.createElement(Bn.a,{only:["xs"]},a.a.createElement(Tr.a,null,a.a.createElement(Mn.a,null),a.a.createElement(Wn.a,{arrow:!0,title:e.shrinked?"Expand":"",placement:"right",enterDelay:1e3,classes:{tooltip:t.tooltip,arrow:t.tooltipArrow}},a.a.createElement(dt.a,{button:!0,onClick:function(){e.onShrink()},className:Object(f.a)(Object(l.a)({},t.shrinkedListItem,e.shrinked))},a.a.createElement(kn.a,null,e.shrinked?a.a.createElement(qn.a,null):a.a.createElement(Gn.a,null)),a.a.createElement(mt.a,{primary:e.shrinked?"Expand":"Shrink"})))))))})),Jn=Object(i.a)((function(e){return{root:{flexGrow:1},menuButton:{marginRight:e.spacing(2)},title:{}}}));var Zn,zn=Object(s.b)((function(e,t){return Object(ce.a)({},t)}))((Zn=function(e){var t,r=Jn(),o=Object(n.useState)(null!==(t=e.showDrawer)&&void 0!==t&&t),i=Object(u.a)(o,2),c=i[0],s=i[1],l=Object(E.e)(),p=Object(n.useState)(""),d=Object(u.a)(p,2),m=d[0],f=d[1];Object(n.useEffect)((function(){var e,t=null!==(e=wn.find((function(e){return e.navLink===l.pathname})))&&void 0!==e?e:{navLink:l.pathname,label:"Sample MiniApp"};f(t.label)}),[l.pathname]),Object(n.useEffect)((function(){s(e.showDrawer)}),[e.showDrawer]);var g=Object(n.useState)(!1),h=Object(u.a)(g,2),b=h[0],y=h[1],v=function(){var t=!c;e.onDrawerToggle(t),s(t)};return a.a.createElement(n.Fragment,null,a.a.createElement(In.a,{position:"sticky"},a.a.createElement(jn.a,null,a.a.createElement(Tn.a,{edge:"start",className:r.menuButton,color:"inherit","aria-label":"menu",onClick:v,"data-testid":"drawer-toggle-button"},c?a.a.createElement(Fn.a,{"data-testid":"close-icon"}):a.a.createElement(xn.a,{"data-testid":"menu-icon"})),a.a.createElement(ue.a,{variant:"h6",className:r.title},m),a.a.createElement("div",{className:"actions"},e.actions))),a.a.createElement(Xn,{show:c,shrinked:b,onOpenClose:function(e){(!e||"keydown"!==e.type||"Tab"!==e.key&&"Shift"!==e.key)&&v()},onShrink:function(){var t=!b;e.onShrinkToggle(t),y(t)},navItems:e.navItems}))},function(e){var t=Object(E.e)(),r=Object(E.f)(),n=Object(E.g)();return a.a.createElement(Zn,Object.assign({},e,{router:{location:t,navigate:r,params:n}}))})),_n=Object(i.a)((function(e){return{mainContent:{width:"100%",height:"calc(100% - 64px)"},mainContentMobile:{height:"calc(100% - 56px)"},wrapperContainer:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"initial",alignItems:"center"},drawerClosed:{width:"100% !important",marginLeft:"0 !important"},drawerOpen:{width:"calc(100% - ".concat("250px",")"),marginLeft:"250px",transition:e.transitions.create(["margin","width"],{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.enteringScreen})},drawerOpenShrink:{width:"calc(100% - ".concat("70px",")"),marginLeft:"70px",transition:e.transitions.create(["margin","width"],{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.enteringScreen})}}})),$n=function(e){var t,r=_n(),o=Object(p.a)(),i=Object(d.a)(o.breakpoints.down("xs")),c=Object(n.useState)(!1),s=Object(u.a)(c,2),h=s[0],b=s[1],y=Object(n.useState)(!i),v=Object(u.a)(y,2),S=v[0],A=v[1];Object(n.useEffect)((function(){A(!i)}),[i]);return a.a.createElement(g.a,null,a.a.createElement(zn,{showDrawer:S,onDrawerToggle:function(e){A(e)},onShrinkToggle:function(e){b(e)},navItems:Ln}),a.a.createElement("main",{"data-testid":"homepage-main-content",className:Object(f.a)(r.mainContent,(t={},Object(l.a)(t,r.mainContentMobile,i),Object(l.a)(t,r.drawerOpen,!i&&S),Object(l.a)(t,r.drawerClosed,!i&&!S),Object(l.a)(t,r.drawerOpenShrink,!i&&h),t))},a.a.createElement(m.a,{className:r.wrapperContainer},a.a.createElement(E.c,null,Ln.map((function(e){var t;return a.a.createElement(E.a,{key:e.navLink,path:e.navLink,element:null!==(t=e.element)&&void 0!==t?t:function(){return a.a.createElement("div",{"data-testid":"nav-routes",style:{fontSize:"32px",textAlign:"center"}},e.label)}})})),a.a.createElement(E.a,{path:"*",element:Ln[0].element})))))},ea=r(74),ta=r(231),ra={filename:void 0,error:void 0,isLoading:!1},na={title:"Home"},aa={},oa={messageTypes:[{id:pr,name:"Send a message to a single contact"},{id:dr,name:"Send a message to a specific contact"},{id:mr,name:"Send a message to multiple contacts"}]},ia={type:void 0,permissions:[],error:null},ca=Object(ea.b)({setItems:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_SECURE_STORAGE_SUCCESS":return t.type;default:return e}},getItem:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"GET_SECURE_STORAGE_SUCCESS":return t.item;default:return e}},removeItems:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REMOVE_ITEMS_SECURE_STORAGE_SUCCESS":return t.type;default:return e}},size:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"GET_SIZE_SECURE_STORAGE_SUCCESS":return t.size;default:return e}},clear:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"CLEAR_SECURE_STORAGE_SUCCESS":return t.type;default:return e}}}),sa={},la=Object(ea.b)({userName:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_USER_NAME_SUCCESS":return t.userName;default:return e}},profilePhoto:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_PROFILE_PHOTO_SUCCESS":return t.url;default:return e}},contactList:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_CONTACT_LIST_SUCCESS":return t.contacts;default:return e}},accessToken:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_ACCESS_TOKEN_SUCCESS":return t.token;default:return e}},points:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:sa,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_POINTS_SUCCESS":return t.points;default:return e}}}),ua={uniqueId:void 0,messagingUniqueId:void 0,mauid:void 0,uniqueIdError:void 0,messagingUniqueIdError:void 0,mauidError:void 0},pa=Object(ea.b)({message:function(e,t){return"GET_MESSAGE_TYPE"===t.type?Object(ce.a)({},e,{messageTypes:t.payload}):oa},home:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:na,t=arguments.length>1?arguments[1]:void 0;return void 0!==t&&"SET_CURRENT_PAGE_TITLE"===t.type?Object(ce.a)({},e,{title:t.payload}):e},permissions:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ia,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_PERMISSIONS_SUCCESS":var r=t.permissions.filter((function(e){return e.status===ge.CustomPermissionStatus.DENIED})).map((function(e){return e.name})),n=t.permissions.filter((function(e){return e.status===ge.CustomPermissionStatus.ALLOWED})).map((function(e){return e.name})),a=e.permissions.concat(n).filter((function(e){return r.indexOf(e)<=-1}));return{type:"REQUEST_PERMISSIONS_SUCCESS",permissions:a,error:t.error};case"REQUEST_PERMISSIONS_FAILURE":return Object(ce.a)({},ia,{error:t.error});default:return e}},user:la,uuid:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ua,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"SET_UNIQUE_ID"===t.type?Object(ce.a)({},ua,{uniqueId:t.payload}):"SET_MESSAGING_UNIQUE_ID"===t.type?Object(ce.a)({},ua,{messagingUniqueId:t.payload}):"SET_MAUID"===t.type?Object(ce.a)({},ua,{mauid:t.payload}):"MESSAGING_UNIQU_ID_FETCH_ERROR"===t.type?Object(ce.a)({},ua,{messagingUniqueIdError:t.error}):"MAUID_FETCH_ERROR"===t.type?Object(ce.a)({},ua,{mauidError:t.error}):"UNIQUE_ID_FETCH_ERROR"===t.type?Object(ce.a)({},ua,{uniqueIdError:t.error}):e},info:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:aa,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS":return t.info;default:return e}},file:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ra,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"FILE_DOWNLOAD_INIT"===t.type?Object(ce.a)({},ra,{isLoading:!0}):"FILE_DOWNLOAD_SUCCESS"===t.type?Object(ce.a)({},ra,{filename:t.filename}):"FILE_DOWNLOAD_FAILURE"===t.type?Object(ce.a)({},ra,{error:t.error}):e},secureStorage:ca,secureStorageStatus:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"ON_SECURE_STORAGE_READY_SUCCESS":return{isReady:!0,error:null};case"ON_SECURE_STORAGE_READY_FAILURE":return Object(ce.a)({isReady:!1,error:t.error},e);default:return Object(ce.a)({isReady:!1,error:null},e)}}}),da=Object(ea.c)(pa,Object(ea.a)(ta.a)),ma=r(232),fa=r(134),ga=Object(ma.a)({palette:{primary:{main:"#bf0000"},secondary:fa.a},color:{primary:"#bf0000",secondary:"lightgrey"}}),Ea=Object(i.a)((function(e){return{App:{width:"100%",textAlign:"center"}}}));var ha=function(){var e=Ea();return a.a.createElement(s.a,{store:da},a.a.createElement(c.a,{theme:ga},a.a.createElement("div",{className:e.App},a.a.createElement($n,null))))};Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var ba=document.getElementById("root");Object(o.createRoot)(ba).render(a.a.createElement(a.a.StrictMode,null,a.a.createElement(ha,null))),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))},4:function(e,t,r){e.exports=function(){var e,t,r,n=(e=function(e,r){(function(e){(function(){"use strict";function e(e){if(e>2147483647)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return t.__proto__=n.prototype,t}function n(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return i(e)}return a(e,t,r)}function a(t,r,a){if("string"==typeof t)return function(t,r){if("string"==typeof r&&""!==r||(r="utf8"),!n.isEncoding(r))throw new TypeError("Unknown encoding: "+r);var a=0|l(t,r),o=e(a),i=o.write(t,r);return i!==a&&(o=o.slice(0,i)),o}(t,r);if(ArrayBuffer.isView(t))return c(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(W(t,ArrayBuffer)||t&&W(t.buffer,ArrayBuffer))return function(e,t,r){if(t<0||e.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|e}function l(e,t){if(n.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||W(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var r=e.length,a=arguments.length>2&&!0===arguments[2];if(!a&&0===r)return 0;for(var o=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return R(e).length;default:if(o)return a?-1:F(e).length;t=(""+t).toLowerCase(),o=!0}}function u(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return w(this,t,r);case"utf8":case"utf-8":return S(this,t,r);case"ascii":return C(this,t,r);case"latin1":case"binary":return O(this,t,r);case"base64":return v(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function p(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function d(e,t,r,a,o){if(0===e.length)return-1;if("string"==typeof r?(a=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),B(r=+r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=n.from(t,a)),n.isBuffer(t))return 0===t.length?-1:m(e,t,r,a,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):m(e,[t],r,a,o);throw new TypeError("val must be string, number or Buffer")}function m(e,t,r,n,a){var o,i=1,c=e.length,s=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,c/=2,s/=2,r/=2}function l(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(a){var u=-1;for(o=r;oc&&(r=c-s),o=r;o>=0;o--){for(var p=!0,d=0;da&&(n=a):n=a;var o=t.length;n>o/2&&(n=o/2);for(var i=0;i>8,a=r%256,o.push(a),o.push(n);return o}(t,e.length-r),e,r,n)}function v(e,t,r){return 0===t&&r===e.length?q.fromByteArray(e):q.fromByteArray(e.slice(t,r))}function S(e,t,r){r=Math.min(e.length,r);for(var n=[],a=t;a239?4:l>223?3:l>191?2:1;if(a+p<=r)switch(p){case 1:l<128&&(u=l);break;case 2:128==(192&(o=e[a+1]))&&(s=(31&l)<<6|63&o)>127&&(u=s);break;case 3:o=e[a+1],i=e[a+2],128==(192&o)&&128==(192&i)&&(s=(15&l)<<12|(63&o)<<6|63&i)>2047&&(s<55296||s>57343)&&(u=s);break;case 4:o=e[a+1],i=e[a+2],c=e[a+3],128==(192&o)&&128==(192&i)&&128==(192&c)&&(s=(15&l)<<18|(63&o)<<12|(63&i)<<6|63&c)>65535&&s<1114112&&(u=s)}null===u?(u=65533,p=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),a+=p}return function(e){var t=e.length;if(t<=A)return String.fromCharCode.apply(String,e);for(var r="",n=0;nt&&(e+=" ... "),""},n.prototype.compare=function(e,t,r,a,o){if(W(e,Uint8Array)&&(e=n.from(e,e.offset,e.byteLength)),!n.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===a&&(a=0),void 0===o&&(o=this.length),t<0||r>e.length||a<0||o>this.length)throw new RangeError("out of range index");if(a>=o&&t>=r)return 0;if(a>=o)return-1;if(t>=r)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(a>>>=0),c=(r>>>=0)-(t>>>=0),s=Math.min(i,c),l=this.slice(a,o),u=e.slice(t,r),p=0;p>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var a=this.length-t;if((void 0===r||r>a)&&(r=a),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return f(this,e,t,r);case"utf8":case"utf-8":return g(this,e,t,r);case"ascii":return E(this,e,t,r);case"latin1":case"binary":return h(this,e,t,r);case"base64":return b(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return y(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},n.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function C(e,t,r){var n="";r=Math.min(e.length,r);for(var a=t;aa)&&(r=a);for(var o="",i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,r,a,o,i){if(!n.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function I(e,t,r,n,a,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function T(e,t,r,n,a){return t=+t,r>>>=0,a||I(e,0,r,4),_.write(e,t,r,n,23,4),r+4}function j(e,t,r,n,a){return t=+t,r>>>=0,a||I(e,0,r,8),_.write(e,t,r,n,52,8),r+8}n.prototype.slice=function(e,t){var r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||P(e,t,this.length);for(var n=this[e],a=1,o=0;++o>>=0,t>>>=0,r||P(e,t,this.length);for(var n=this[e+--t],a=1;t>0&&(a*=256);)n+=this[e+--t]*a;return n},n.prototype.readUInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),this[e]},n.prototype.readUInt16LE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]|this[e+1]<<8},n.prototype.readUInt16BE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]<<8|this[e+1]},n.prototype.readUInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},n.prototype.readUInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},n.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||P(e,t,this.length);for(var n=this[e],a=1,o=0;++o=(a*=128)&&(n-=Math.pow(2,8*t)),n},n.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||P(e,t,this.length);for(var n=t,a=1,o=this[e+--n];n>0&&(a*=256);)o+=this[e+--n]*a;return o>=(a*=128)&&(o-=Math.pow(2,8*t)),o},n.prototype.readInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},n.prototype.readInt16LE=function(e,t){e>>>=0,t||P(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},n.prototype.readInt16BE=function(e,t){e>>>=0,t||P(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},n.prototype.readInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},n.prototype.readInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},n.prototype.readFloatLE=function(e,t){return e>>>=0,t||P(e,4,this.length),_.read(this,e,!0,23,4)},n.prototype.readFloatBE=function(e,t){return e>>>=0,t||P(e,4,this.length),_.read(this,e,!1,23,4)},n.prototype.readDoubleLE=function(e,t){return e>>>=0,t||P(e,8,this.length),_.read(this,e,!0,52,8)},n.prototype.readDoubleBE=function(e,t){return e>>>=0,t||P(e,8,this.length),_.read(this,e,!1,52,8)},n.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||L(this,e,t,r,Math.pow(2,8*r)-1,0);var a=1,o=0;for(this[t]=255&e;++o>>=0,r>>>=0,n||L(this,e,t,r,Math.pow(2,8*r)-1,0);var a=r-1,o=1;for(this[t+a]=255&e;--a>=0&&(o*=256);)this[t+a]=e/o&255;return t+r},n.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,1,255,0),this[t]=255&e,t+1},n.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},n.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},n.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},n.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},n.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var a=Math.pow(2,8*r-1);L(this,e,t,r,a-1,-a)}var o=0,i=1,c=0;for(this[t]=255&e;++o>0)-c&255;return t+r},n.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var a=Math.pow(2,8*r-1);L(this,e,t,r,a-1,-a)}var o=r-1,i=1,c=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===c&&0!==this[t+o+1]&&(c=1),this[t+o]=(e/i>>0)-c&255;return t+r},n.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},n.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},n.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},n.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},n.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},n.prototype.writeFloatLE=function(e,t,r){return T(this,e,t,!0,r)},n.prototype.writeFloatBE=function(e,t,r){return T(this,e,t,!1,r)},n.prototype.writeDoubleLE=function(e,t,r){return j(this,e,t,!0,r)},n.prototype.writeDoubleBE=function(e,t,r){return j(this,e,t,!1,r)},n.prototype.copy=function(e,t,r,a){if(!n.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),a||0===a||(a=this.length),t>=e.length&&(t=e.length),t||(t=0),a>0&&a=this.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,a),t);return o},n.prototype.fill=function(e,t,r,a){if("string"==typeof e){if("string"==typeof t?(a=t,t=0,r=this.length):"string"==typeof r&&(a=r,r=this.length),void 0!==a&&"string"!=typeof a)throw new TypeError("encoding must be a string");if("string"==typeof a&&!n.isEncoding(a))throw new TypeError("Unknown encoding: "+a);if(1===e.length){var o=e.charCodeAt(0);("utf8"===a&&o<128||"latin1"===a)&&(e=o)}}else"number"==typeof e&&(e&=255);if(t<0||this.length>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&r<57344){if(!a){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&o.push(239,191,189);continue}a=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),a=r;continue}r=65536+(a-55296<<10|r-56320)}else a&&(t-=3)>-1&&o.push(239,191,189);if(a=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function R(e){return q.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function x(e,t,r,n){for(var a=0;a=t.length||a>=e.length);++a)t[a+r]=e[a];return a}function W(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function B(e){return e!=e}}).call(this)}).call(this,n({}).Buffer)},function(r){return t||e(t={exports:{},parent:r},t.exports),t.exports}),a={};Object.defineProperty(a,"__esModule",{value:!0}),a.MiniAppSecureStorageEvents=void 0,(r=a.MiniAppSecureStorageEvents||(a.MiniAppSecureStorageEvents={})).onReady="miniappsecurestorageready",r.onLoadError="miniappsecurestorageloaderror";var o={};Object.defineProperty(o,"__esModule",{value:!0}),o.AccessTokenData=void 0,o.AccessTokenData=function(e){this.token=e.token,this.validUntil=new Date(e.validUntil),this.scopes=new c(e.scopes)};var i,c=function(e){this.audience=e.audience,this.scopes=e.scopes},s={},l=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(s,"__esModule",{value:!0}),s.MiniAppError=void 0;var u=function(e){function t(r){var n=e.call(this)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.name=r.type,n.message=r.message,n}return l(t,e),t}(Error);s.MiniAppError=u;var p,d,m={},f=this&&this.__extends||(p=function(e,t){return(p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(m,"__esModule",{value:!0}),m.parseAuthError=m.AuthorizationFailureError=m.ScopesNotSupportedError=m.AudienceNotSupportedError=void 0,function(e){e.AudienceNotSupportedError="AudienceNotSupportedError",e.ScopesNotSupportedError="ScopesNotSupportedError",e.AuthorizationFailureError="AuthorizationFailureError"}(d||(d={}));var g=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="The value passed for 'audience' is not supported.",n}return f(t,e),t}(s.MiniAppError);m.AudienceNotSupportedError=g;var E=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="The value passed for 'scopes' is not supported.",n}return f(t,e),t}(s.MiniAppError);m.ScopesNotSupportedError=E;var h=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n}return f(t,e),t}(s.MiniAppError);m.AuthorizationFailureError=h,m.parseAuthError=function(e){switch(d[e.type]){case d.AuthorizationFailureError:return new h(e);case d.AudienceNotSupportedError:return new g(e);case d.ScopesNotSupportedError:return new E(e);default:return}};var b,y,v={},S=this&&this.__extends||(b=function(e,t){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(v,"__esModule",{value:!0}),v.parseDownloadError=v.DownloadHttpError=v.SaveFailureError=v.InvalidUrlError=v.DownloadFailedError=void 0,function(e){e.DownloadFailedError="DownloadFailedError",e.InvalidUrlError="InvalidUrlError",e.SaveFailureError="SaveFailureError",e.DownloadHttpError="DownloadHttpError"}(y||(y={}));var A=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Failed to download the file.",n}return S(t,e),t}(s.MiniAppError);v.DownloadFailedError=A;var C=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="The provided URL is invalid.",n}return S(t,e),t}(s.MiniAppError);v.InvalidUrlError=C;var O=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Failed to save the file to the device.",n}return S(t,e),t}(s.MiniAppError);v.SaveFailureError=O;var w=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.code=r.code,n.message=r.message,n}return S(t,e),t}(s.MiniAppError);v.DownloadHttpError=w,v.parseDownloadError=function(e){switch(y[e.type]){case y.DownloadFailedError:return new A(e);case y.InvalidUrlError:return new C(e);case y.SaveFailureError:return new O(e);case y.DownloadHttpError:return new w(e);default:return}};var N,P,L={},I=this&&this.__extends||(N=function(e,t){return(N=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}N(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(L,"__esModule",{value:!0}),L.parseStorageError=L.SecureStorageIOError=L.SecureStorageUnavailableError=L.SecureStorageBusyError=L.SecureStorageFullError=void 0,function(e){e.SecureStorageFullError="SecureStorageFullError",e.SecureStorageBusyError="SecureStorageBusyError",e.SecureStorageUnavailableError="SecureStorageUnavailableError",e.SecureStorageIOError="SecureStorageIOError"}(P||(P={}));var T=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Storage limit is exceeded or full already",n}return I(t,e),t}(s.MiniAppError);L.SecureStorageFullError=T;var j=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Storage is busy, please try again",n}return I(t,e),t}(s.MiniAppError);L.SecureStorageBusyError=j;var U=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Storage is not yet loaded or failed to load",n}return I(t,e),t}(s.MiniAppError);L.SecureStorageUnavailableError=U;var F=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Unable to read/write changes in Storage.",n}return I(t,e),t}(s.MiniAppError);L.SecureStorageIOError=F,L.parseStorageError=function(e){switch(P[e.type]){case P.SecureStorageFullError:return new T(e);case P.SecureStorageBusyError:return new j(e);case P.SecureStorageUnavailableError:return new U(e);case P.SecureStorageIOError:return new F(e);default:return}};var R,x,W={},B=this&&this.__extends||(R=function(e,t){return(R=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}R(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(W,"__esModule",{value:!0}),W.parseInAppPurchaseError=W.UserCancelledPurchaseError=W.ProductPurchasedAlreadyError=W.ProductNotFoundError=W.ConsumeFailedError=W.PurchaseFailedError=void 0,function(e){e.PurchaseFailedError="PurchaseFailedError",e.ConsumeFailedError="ConsumeFailedError",e.ProductNotFoundError="ProductNotFoundError",e.ProductPurchasedAlreadyError="ProductPurchasedAlreadyError",e.UserCancelledPurchaseError="UserCancelledPurchaseError"}(x||(x={}));var M=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Product Purchase failed, please try again later",n}return B(t,e),t}(s.MiniAppError);W.PurchaseFailedError=M;var k=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Unable to consume the product, please make sure the product is purchased already",n}return B(t,e),t}(s.MiniAppError);W.ConsumeFailedError=k;var D=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Unable to find the ProductId. Please make sure that the productId is registered in Google Play",n}return B(t,e),t}(s.MiniAppError);W.ProductNotFoundError=D;var H=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="This Product is purchased already",n}return B(t,e),t}(s.MiniAppError);W.ProductPurchasedAlreadyError=H;var G=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="User cancelled the purchase",n}return B(t,e),t}(s.MiniAppError);W.UserCancelledPurchaseError=G,W.parseInAppPurchaseError=function(e){switch(x[e.type]){case x.PurchaseFailedError:return new M(e);case x.ConsumeFailedError:return new k(e);case x.ProductNotFoundError:return new D(e);case x.ProductPurchasedAlreadyError:return new H(e);case x.UserCancelledPurchaseError:return new G(e);default:return}};var V={};Object.defineProperty(V,"__esModule",{value:!0}),V.UserCancelledPurchaseError=V.ProductPurchasedAlreadyError=V.ProductNotFoundError=V.ConsumeFailedError=V.PurchaseFailedError=V.SecureStorageIOError=V.SecureStorageUnavailableError=V.SecureStorageBusyError=V.SecureStorageFullError=V.ScopesNotSupportedError=V.SaveFailureError=V.parseMiniAppError=V.MiniAppError=V.InvalidUrlError=V.DownloadHttpError=V.DownloadFailedError=V.AudienceNotSupportedError=V.AuthorizationFailureError=void 0,Object.defineProperty(V,"AuthorizationFailureError",{enumerable:!0,get:function(){return m.AuthorizationFailureError}}),Object.defineProperty(V,"AudienceNotSupportedError",{enumerable:!0,get:function(){return m.AudienceNotSupportedError}}),Object.defineProperty(V,"ScopesNotSupportedError",{enumerable:!0,get:function(){return m.ScopesNotSupportedError}}),Object.defineProperty(V,"DownloadFailedError",{enumerable:!0,get:function(){return v.DownloadFailedError}}),Object.defineProperty(V,"DownloadHttpError",{enumerable:!0,get:function(){return v.DownloadHttpError}}),Object.defineProperty(V,"InvalidUrlError",{enumerable:!0,get:function(){return v.InvalidUrlError}}),Object.defineProperty(V,"SaveFailureError",{enumerable:!0,get:function(){return v.SaveFailureError}}),Object.defineProperty(V,"SecureStorageFullError",{enumerable:!0,get:function(){return L.SecureStorageFullError}}),Object.defineProperty(V,"SecureStorageBusyError",{enumerable:!0,get:function(){return L.SecureStorageBusyError}}),Object.defineProperty(V,"SecureStorageUnavailableError",{enumerable:!0,get:function(){return L.SecureStorageUnavailableError}}),Object.defineProperty(V,"SecureStorageIOError",{enumerable:!0,get:function(){return L.SecureStorageIOError}}),Object.defineProperty(V,"PurchaseFailedError",{enumerable:!0,get:function(){return W.PurchaseFailedError}}),Object.defineProperty(V,"ConsumeFailedError",{enumerable:!0,get:function(){return W.ConsumeFailedError}}),Object.defineProperty(V,"ProductNotFoundError",{enumerable:!0,get:function(){return W.ProductNotFoundError}}),Object.defineProperty(V,"ProductPurchasedAlreadyError",{enumerable:!0,get:function(){return W.ProductPurchasedAlreadyError}}),Object.defineProperty(V,"UserCancelledPurchaseError",{enumerable:!0,get:function(){return W.UserCancelledPurchaseError}}),Object.defineProperty(V,"MiniAppError",{enumerable:!0,get:function(){return s.MiniAppError}}),V.parseMiniAppError=function(e){try{var r=JSON.parse(e);return(0,m.parseAuthError)(r)||(0,v.parseDownloadError)(r)||(0,L.parseStorageError)(r)||(0,W.parseInAppPurchaseError)(r)||new s.MiniAppError(r)}catch(t){return console.error(t),new s.MiniAppError({type:"MiniAppError",message:"Failed to parse the error: "+e})}};for(var q={toByteArray:function(e){var t,r,n=function(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}(e),a=n[0],o=n[1],i=new K(function(e,t,r){return 3*(t+r)/4-r}(0,a,o)),c=0,s=o>0?a-4:a;for(r=0;r>16&255,i[c++]=t>>8&255,i[c++]=255&t;return 2===o&&(t=Y[e.charCodeAt(r)]<<2|Y[e.charCodeAt(r+1)]>>4,i[c++]=255&t),1===o&&(t=Y[e.charCodeAt(r)]<<10|Y[e.charCodeAt(r+1)]<<4|Y[e.charCodeAt(r+2)]>>2,i[c++]=t>>8&255,i[c++]=255&t),i},fromByteArray:function(e){for(var t,r=e.length,n=r%3,a=[],o=0,i=r-n;oi?i:o+16383));return 1===n?(t=e[r-1],a.push(Q[t>>2]+Q[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],a.push(Q[t>>10]+Q[t>>4&63]+Q[t<<2&63]+"=")),a.join("")}},Q=[],Y=[],K="undefined"!=typeof Uint8Array?Uint8Array:Array,X="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",J=0,Z=X.length;J>18&63]+Q[a>>12&63]+Q[a>>6&63]+Q[63&a]);return o.join("")}Y["-".charCodeAt(0)]=62,Y["_".charCodeAt(0)]=63;var _={read:function(e,t,r,n,a){var o,i,c=8*a-n-1,s=(1<>1,u=-7,p=r?a-1:0,d=r?-1:1,m=e[t+p];for(p+=d,o=m&(1<<-u)-1,m>>=-u,u+=c;u>0;o=256*o+e[t+p],p+=d,u-=8);for(i=o&(1<<-u)-1,o>>=-u,u+=n;u>0;i=256*i+e[t+p],p+=d,u-=8);if(0===o)o=1-l;else{if(o===s)return i?NaN:1/0*(m?-1:1);i+=Math.pow(2,n),o-=l}return(m?-1:1)*i*Math.pow(2,o-n)},write:function(e,t,r,n,a,o){var i,c,s,l=8*o-a-1,u=(1<>1,d=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,m=n?0:o-1,f=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(c=isNaN(t)?1:0,i=u):(i=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-i))<1&&(i--,s*=2),(t+=i+p>=1?d/s:d*Math.pow(2,1-p))*s>=2&&(i++,s/=2),i+p>=u?(c=0,i=u):i+p>=1?(c=(t*s-1)*Math.pow(2,a),i+=p):(c=t*Math.pow(2,p-1)*Math.pow(2,a),i=0));a>=8;e[r+m]=255&c,m+=f,c/=256,a-=8);for(i=i<0;e[r+m]=255&i,m+=f,i/=256,l-=8);e[r+m-f]|=128*g}},$={};(function(e){(function(){"use strict";var t=this&&this.__assign||function(){return(t=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt?(null==e?void 0:e.substring(0,t-1))+"\u2026":e}function u(t){var r=e.from(t,"base64").toString("utf8").replace(/\\(\d{3})/g,(function(e,t){return String.fromCharCode(function(e){return Number.parseInt(e,8)}(t))})),n=JSON.stringify(r).replace(/\\\\/g,"\\");return JSON.parse(n)}$.MiniAppBridge=c}).call(this)}).call(this,n({}).Buffer);var ee={};Object.defineProperty(ee,"__esModule",{value:!0}),ee.MiniAppSDKLogger=void 0;var te=function(){function e(e){this.logger=e}return e.prototype.logOnConsole=function(e,t){ne(e).apply(null,t)},e.prototype.log=function(e,t){this.lastLog={icon:e.icon,messageType:e.type,message:t},this.logger.log(e.icon,e.type,t),this.logOnConsole(e,t)},e}();ee.MiniAppSDKLogger=te;var re=function(){function e(e,t){this.type=e,this.icon=t}return e.debug=new e("debug","\ud83d\udcd8"),e.log=new e("log","\ud83d\udcd7"),e.warn=new e("warning","\ud83d\udcd9"),e.error=new e("error","\ud83d\udcd5"),e}();function ne(e){switch(e){case re.debug:return ce;case re.warn:return oe;case re.error:return ie;default:return ae}}var ae=console.log,oe=console.warn,ie=console.error,ce=console.debug;function se(e,t){var r=function(){if("undefined"!=typeof window)return window.MiniAppSDKLogger}();void 0!==r?r.log(e,t):ne(e).apply(null,t)}console.log=function(){for(var e=[],t=0;t-1?c({type:"PERMISSION_FAILURE",permissionDenied:!0}):e.getAccessToken(m.audience,m.scopes).then((function(e){c({type:"TOKEN_FETCH_SUCCESS"})})).catch((function(e){c({type:"TOKEN_FETCH_FAILURE",error:e})}))):c({type:"PERMISSION_FAILURE",permissionDenied:!0})})).catch((function(e){c({type:"PERMISSION_FAILURE",permissionDenied:!0})}))}function b(e){i.isLoading||(e.preventDefault(),c({type:"TOKEN_FETCH_INIT"}),h())}return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Auth Token","Screen","Page","")})),a.a.createElement(ve,{height:"auto",className:s.card},a.a.createElement(se.a,null,a.a.createElement(we.a,{column:"true",classes:{root:s.rootFormGroup}},a.a.createElement(n.Fragment,null,a.a.createElement(Me.a,{className:s.formControl},a.a.createElement(pe.a,{id:"audience",label:"Audience",className:s.fields,onChange:function(e){g(Object(ce.a)({},m,{audience:e.target.value}))},value:m.audience})),a.a.createElement(Me.a,{className:s.formControl},a.a.createElement(pe.a,{id:"scopes",label:"Scopes",className:s.fields,onChange:function(e){g(Object(ce.a)({},m,{scopes:e.target.value.split(", ")}))},value:m.scopes.join(", ")}))),a.a.createElement("div",{className:s.wrapper},a.a.createElement(me.a,{onClick:b,variant:"contained",color:"primary",className:E,disabled:i.isLoading,"data-testid":"authButton"},"Authentication"),i.isLoading&&a.a.createElement(le.a,{size:20,className:s.buttonProgress})),!i.isLoading&&i.isSuccess&&!i.isError&&!i.permissionDenied&&e.accessToken&&a.a.createElement("div",null,a.a.createElement(ue.a,{variant:"body1",className:s.success},"Token: ",e.accessToken.token),a.a.createElement(ue.a,{variant:"body1",className:s.success},"Valid until: ",e.accessToken.validUntil.toLocaleDateString("ja-JP"))),!i.isLoading&&i.isError&&!i.permissionDenied&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.error),!i.isLoading&&i.permissionDenied&&a.a.createElement(ue.a,{variant:"body1",className:s.red},"ACCESS_TOKEN Permission is denied by the user"))))})),Qe=Object(i.a)((function(e){return{root:{height:"90%",width:"100%"},grid:{display:"flex",height:"20%",flexDirection:"column",justifyContent:"center",padding:"20px"},table:{minWidth:"80%"},content:{height:"50%",justifyContent:"space-between",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},contentSection:{height:"30%",padding:"10px"},label:{display:"block",fontSize:12,width:"100%",color:e.color.primary},imageBox:{height:"250px",margin:"20px"},imageBoxContent:{height:"250px",objectFit:"contain"}}})),Ye=function(){var e=Qe(),t=Object(n.useState)(null),r=Object(u.a)(t,2),o=r[0],i=r[1],c=Object(n.useState)(void 0),s=Object(u.a)(c,1)[0],l=Object(n.useRef)(null);Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Camera","Screen","Page","")}));return a.a.createElement(be.a,{className:e.root},a.a.createElement(be.a,{id:"imageBox",className:e.imageBox,hidden:null==o},a.a.createElement("img",{id:"imageBoxContent",alt:"CapturedPicture",className:e.imageBoxContent,src:o})),a.a.createElement(Ne.a,{className:e.grid,align:"center"},a.a.createElement("div",{className:e.contentSection},a.a.createElement("label",{className:e.label},"Pick Image"),a.a.createElement("input",{id:"cameraBack",type:"file",accept:".jpg,.jpeg,.png,.svg,.gif",onChange:function(e){var t=e.target.files;!t&&t.length>0||i(URL.createObjectURL(e.target.files[0]))},"data-testid":"file-input-image-back",capture:"environment",value:s,ref:l})),a.a.createElement("div",{className:e.contentSection},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){return i(null),void(null!==l.current&&(l.current.value=""))}},"Clear"))))},Ke=r(447),Xe=Object(i.a)((function(e){return{content:{height:"25%",justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},card:{marginTop:"40px"},actions:{justifyContent:"center",flexDirection:"column"},button:{marginTop:"20px",width:"80%",maxWidth:280},textfield:{width:"80%",maxWidth:300,"& input":{color:e.color.primary,lineHeight:"1.5em",fontSize:"1.2em",background:"white"}}}}));var Je=function(){var e=Xe();return Object(n.useEffect)((function(){try{Ee.a.miniappUtils.getHostAppThemeColors().then((function(e){document.getElementById("primaryChip").style.backgroundColor=e.primaryColor,document.getElementById("secondaryChip").style.backgroundColor=e.secondaryColor,console.log("getColorTheme SUCCESS: ",e)})).catch((function(e){console.log("getColorTheme ERROR: ",e)}))}catch(e){console.log(e)}})),a.a.createElement("div",{className:e.card},a.a.createElement(Ke.a,{label:"primary",id:"primaryChip"}),a.a.createElement("br",null),a.a.createElement("br",null),a.a.createElement(Ke.a,{label:"secondary",id:"secondaryChip"}))},Ze=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},actions:{justifyContent:"center"},content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0},info:{fontSize:16,lineBreak:"anywhere",wordBreak:"break-all",color:e.color.primary,marginTop:0,paddingBottom:10},formInput:{width:"90%",marginTop:10,marginBottom:10,background:"white"}}})),ze=function(){var e=Ze(),t=Object(n.useState)(0),r=Object(u.a)(t,2),o=r[0],i=r[1],c=Object(n.useState)(0),s=Object(u.a)(c,2),l=s[0],p=s[1],d=Object(n.useState)(0),m=Object(u.a)(d,2),f=m[0],g=m[1],E=Object(n.useState)(0),h=Object(u.a)(E,2),b=h[0],y=h[1],v=Object(n.useState)(0),S=Object(u.a)(v,2),A=S[0],C=S[1],O=Object(n.useState)(0),w=Object(u.a)(O,2),N=w[0],P=w[1];return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Event Listener","Screen","Page","")})),window.addEventListener(ge.MiniAppEvents.EXTERNAL_WEBVIEW_CLOSE,(function(e){var t=e.detail.message;console.log(t),o++,i(o)})),window.addEventListener(ge.MiniAppEvents.PAUSE,(function(e){var t=e.detail.message;console.log(t),l++,p(l)})),window.addEventListener(ge.MiniAppEvents.RESUME,(function(e){var t=e.detail.message;console.log(t),f++,g(f)})),window.addEventListener(ge.MiniAppKeyboardEvents.KEYBOARDSHOWN,(function(e){var t=e.detail.message,r=e.detail.navigationBarHeight,n=e.detail.screenHeight,a=e.detail.keyboardHeight;console.log(t+", "+r+", "+A+", "+N),b=r,A=n,N=a,y(r),C(n),P(a)})),window.addEventListener(ge.MiniAppKeyboardEvents.KEYBOARDHIDDEN,(function(e){var t=e.detail.message,r=e.detail.navigationBarHeight,n=e.detail.screenHeight,a=e.detail.keyboardHeight;console.log(t+", "+r+", "+n+", "+a),b=r,A=n,N=a,y(r),C(n),P(a)})),a.a.createElement("div",{className:e.scrollable},a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},a.a.createElement("p",null,"Event Listener")),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){var e=new URL("https://www.google.com");window.location.href=e}},"Open External Webview")),a.a.createElement("div",{className:e.info},a.a.createElement("p",null,"External Webview Closed: ",o),a.a.createElement("p",null,"Mini App Paused: ",l),a.a.createElement("p",null,"Mini App Resumed: ",f)),a.a.createElement("hr",null),a.a.createElement("div",null,a.a.createElement("p",null,"Keyboard Events"),a.a.createElement(pe.a,{className:e.formInput,variant:"outlined",placeholder:"Toggle Keyboard..."}),a.a.createElement("p",null,"Navigation Bar Height: ",b),a.a.createElement("p",null,"Screen Height: ",A),a.a.createElement("p",null,"Keyboard Height: ",N))))},_e="data:image/png;base64,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",$e=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},actions:{justifyContent:"center",paddingBottom:16},content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0},info:{fontSize:16,lineBreak:"anywhere",wordBreak:"break-all",color:e.color.primary,marginTop:0,paddingBottom:10},formInput:{width:"90%",marginTop:10,marginBottom:10},buttonProgress:{position:"absolute",top:"calc(50% - 10px)",left:"calc(50% - 10px)"}}})),et=Object(s.b)((function(e){return{permissions:e.permissions,filename:e.file.filename,error:e.file.error,isLoading:e.file.isLoading}}),(function(e){return{requestPermissions:function(t){return e(De(t))},downloadFile:function(t,r,n){return e(function(e,t,r){return function(n){return n({type:"FILE_DOWNLOAD_INIT"}),Ee.a.downloadFile(e,t,r).then((function(e){return n({type:"FILE_DOWNLOAD_SUCCESS",filename:e}),Promise.resolve(e)})).catch((function(e){throw console.log("requestDownloadFile: CATCH BLOCK: ",e),n({type:"FILE_DOWNLOAD_FAILURE",error:e}),e}))}}(t,r,n))}}}))((function(e){var t=$e(),r=Object(n.useState)(!0),o=Object(u.a)(r,2),i=o[0],c=o[1],s=Object(n.useState)(_e),l=Object(u.a)(s,2),p=l[0],d=l[1];function m(t,r){var n=[{name:ge.CustomPermissionName.FILE_DOWNLOAD,description:"We would like to get the permission to download files."}];e.requestPermissions(n).then((function(e){return e.filter((function(e){return e.status===ge.CustomPermissionStatus.ALLOWED})).map((function(e){return e.name}))})).then((function(n){return a=ge.CustomPermissionName.FILE_DOWNLOAD,(n||e.permissions||[]).indexOf(a)>-1?function(t,r){return c(!0),e.downloadFile(r,t,{token:"test"}).then((function(t){console.log("FileDownloadRsponse THEN:",t),e.downloadedFile=t})).catch((function(t){console.log("FileDownloadErrors CATCH:",t),e.error=t,e.isLoading=!1}))}(t,r):c(!1);var a})).catch((function(e){c(!1),console.error(e)}))}function f(t,r){e.isLoading||function(e,t){m(e,t)}(t,r)}function g(e,r,n){return a.a.createElement(de.a,{className:t.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:n,id:r},e))}return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"File Download","Screen","Page","")})),a.a.createElement("div",{className:t.scrollable},a.a.createElement(ve,{className:t.card},a.a.createElement(se.a,{className:t.content},"Download Files"),a.a.createElement("div",{className:t.info},a.a.createElement("p",null,!i&&'"FILE_DOWNLOAD" permission not granted.',e.error&&"Download failed: "+e.error.message,e.downloadedFile&&"File Downloaded:"+e.downloadedFile)),function(){return a.a.createElement(pe.a,{variant:"outlined",disabled:!0,className:t.formInput,id:"input-points-term",label:"Filename (last download)",value:(r=e.filename,void 0!==r&&e.filename&&e.filename.length>0?r:"-")});var r}(),e.isLoading&&a.a.createElement(le.a,{size:20,className:t.buttonProgress}),g("Download Image","button-download-image",(function(){f("https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg","sample.jpg")})),g("Download ZIP","button-download-zip",(function(){f("https://file-examples.com/wp-content/storage/2017/02/zip_2MB.zip","sample.zip")})),g("Download MP3","button-download-mp3",(function(){f("https://filesamples.com/samples/audio/mp3/sample3.mp3","sample.mp3")})),g("Download CSV","button-download-csv",(function(){f("https://filesamples.com/samples/document/csv/sample4.csv","sample.csv")})),g("Download MOV","button-download-mov",(function(){f("https://filesamples.com/samples/video/mov/sample_960x540.mov","sample.mov")})),g("Download Image - Dot","button-download-image",(function(){f("https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg","sample.jun-2022.test.jpg")})),a.a.createElement(pe.a,{variant:"outlined",className:t.formInput,id:"input-base64",label:"Base64 data string",value:p,onChange:function(e){return d(e.target.value)}}),g("Download Base64 Data","button-download-base64",(function(){f(p,"panda.png")}))))})),tt=r(405),rt=r(406),nt=r(407),at=r(408),ot=r(409),it=r(410),ct=Object(i.a)((function(e){return{root:{height:"90%",width:"100%"},grid:{display:"flex",height:"20%",flexDirection:"column",justifyContent:"center"},table:{minWidth:"80%"},content:{height:"50%",justifyContent:"space-between",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},uploader:{height:"30%"},label:{fontSize:12,width:"100%",color:e.color.primary}}})),st=function(){var e=ct(),t=Object(n.useState)([]),r=Object(u.a)(t,2),o=r[0],i=r[1];Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"File Upload","Screen","Page","")}));var c=function(e){var t=e.target.files;t&&i(Array.from(t).map((function(e){return{name:e.name,size:e.size,type:e.type}})))};return a.a.createElement(be.a,{className:e.root},a.a.createElement(Ne.a,{className:e.grid,align:"center",justify:"center"},a.a.createElement("div",{className:e.uploader},a.a.createElement("label",{className:e.label,for:"files"},"(general)"),a.a.createElement("input",{type:"file",onChange:c,"data-testid":"file-input-general",multiple:!0})),a.a.createElement("div",{className:e.uploader},a.a.createElement("label",{className:e.label,for:"files"},"(images)"),a.a.createElement("input",{type:"file",accept:".jpg,.jpeg,.png,.svg,.gif",onChange:c,"data-testid":"file-input-image",multiple:!0})),a.a.createElement("div",{className:e.uploader},a.a.createElement("label",{className:e.label,for:"files"},"(pdf)"),a.a.createElement("input",{type:"file",accept:".pdf",onChange:c,"data-testid":"file-input-pdf",multiple:!0}))),a.a.createElement(se.a,{className:e.content},a.a.createElement(tt.a,{component:fe.a,"data-testid":"file-table"},a.a.createElement(rt.a,{className:e.table,"aria-label":"simple table"},a.a.createElement(nt.a,null,a.a.createElement(at.a,null,a.a.createElement(ot.a,null,"Name"),a.a.createElement(ot.a,{align:"left"},"Type"),a.a.createElement(ot.a,{align:"right"},"Size(Bytes)"),a.a.createElement(ot.a,{align:"right"}))),a.a.createElement(it.a,null,o.map((function(e){return a.a.createElement(at.a,{key:e.name},a.a.createElement(ot.a,{component:"th",scope:"row"},e.name),a.a.createElement(ot.a,{align:"left"},e.type),a.a.createElement(ot.a,{align:"right"},e.size.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")))})))))))},lt=r(411),ut=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},grid:{position:"relative",paddingBottom:15},greyCard:{marginTop:"1rem"},typography:{marginTop:"1rem"}}}));var pt=function(){Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"App Close alert","Screen","Page","")}));var e=ut(),t=[{label:"Loop Count: Once",iconSrc:r(263),altLabel:"road"},{label:"Loop Count: Infinite",iconSrc:r(264),altLabel:"infinite_road"},{label:"Loop Count: Infinite (WebP)",iconSrc:r(265),altLabel:"infinite_road_webp"}];return a.a.createElement("div",{className:e.scrollable},a.a.createElement(Ne.a,{container:!0,direction:"column",justify:"flex-start",alignItems:"center",className:e.grid},t.map((function(t,r){return a.a.createElement(a.a.Fragment,{item:!0,key:r},a.a.createElement(ve,{height:"auto",className:"".concat(e.greyCard)},a.a.createElement(ue.a,{className:"app-typography ".concat(e.typography)},t.label),a.a.createElement(se.a,null,a.a.createElement(lt.a,{component:"img",className:e.gif,src:t.iconSrc,alt:t.altLabel}))))}))))},dt=r(316),mt=r(412),ft=r(432),gt=r(453),Et=r(429),ht=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},root:{background:e.color.secondary,width:"85vw",maxWidth:500},wrapper:{position:"relative",marginTop:10},buttonSuccess:{backgroundColor:ke.a[500],"&:hover":{backgroundColor:ke.a[700]}},buttonFailure:{backgroundColor:Pe.a[500],"&:hover":{backgroundColor:Pe.a[700]}},buttonProgress:{position:"absolute",top:"calc(50% - 10px)",left:"calc(50% - 10px)"},error:{color:Pe.a[500],marginTop:10},success:{color:ke.a[500],marginTop:20},rootUserGroup:{alignItems:"center"},formInput:{width:"90%",marginTop:10},rootCardActions:{justifyContent:"center"},caseSelector:{marginTop:5},button:{marginBottom:15},dataFormsWrapper:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},paper:{width:"100%",paddingBottom:10,marginBottom:20,"&:last-child":{marginBottom:0}},red:{color:Pe.a[500]},displayInlineBlock:{display:"inline-block"},purchaseButtonContainer:{textAlign:"center",display:"flex",flexDirection:"row",justifyContent:"space-evenly"},purchaseButton:{margin:"15px"},listItemStyle:{overflowWrap:"anywhere"}}})),bt={isLoading:!1,isError:!1,error:null},yt=function(e,t){switch(t.type){case"PURCHASE_FETCH_INIT":return{isLoading:!0,isError:!1,error:null};case"PURCHASE_FETCH_SUCCESS":return Object(ce.a)({},e,{isLoading:!1,isError:!1,error:null,productInfo:t.productInfo});case"PURCHASE_FETCH_FAILURE":return Object(ce.a)({},e,{isLoading:!1,isError:!1,error:null,productInfo:null});case"PURCHASE_PRODUCT_INIT":return{isLoading:!0,isError:!1,error:null};case"PURCHASE_PRODUCT_SUCCESS":return Object(ce.a)({},e,{isLoading:!1,isError:!1,error:null,purchasedProductInfo:t.purchasedProduct});case"PURCHASE_PRODUCT_FAILURE":return Object(ce.a)({},bt,{isLoading:!1,isError:!0,purchasedProductInfo:null,error:("string"==typeof t.miniAppError?t.miniAppError:t.miniAppError.message)||""});case"CONSUME_PRODUCT_SUCCESS":return Object(ce.a)({},e,{isLoading:!1,isError:!1,error:null,consumeProductResponse:t.consumeProductResponse});case"CONSUME_PRODUCT_FAILURE":return Object(ce.a)({},bt,{isLoading:!1,isError:!0,consumeProductResponse:null,error:("string"==typeof t.miniAppError?t.miniAppError:t.miniAppError.message)||"Product is not purchased yet"});default:throw Error("Unknown action type")}};function vt(){var e;Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"In-App-Purchase","Screen","Page","")}));var t=Object(n.useReducer)(yt,bt),r=Object(u.a)(t,2),o=r[0],i=r[1],c=Object(n.useReducer)(yt,bt),s=Object(u.a)(c,2),p=s[0],d=s[1],m=a.a.useState(!1),g=Object(u.a)(m,2),E=g[0],h=g[1],b=ht(),y=Object(f.a)((e={},Object(l.a)(e,b.buttonFailure,o.isError),Object(l.a)(e,b.buttonSuccess,!o.isError),e)),v=function(e,t){h(!1)};function S(e){o.isLoading||(d({type:"PURCHASE_FETCH_INIT",miniAppError:null}),Ee.a.purchaseService.getAllProducts().then((function(e){console.log("getAllProducts SUCCESS: ",e),d({type:"PURCHASE_FETCH_SUCCESS",miniAppError:null,productInfo:e})})).catch((function(e){console.log("getAllProducts Error: ",e),d({type:"PURCHASE_FETCH_FAILURE",miniAppError:e})})))}function A(e){var t;o.isLoading||(i({type:"PURCHASE_PRODUCT_INIT",miniAppError:null}),t=e.currentTarget.value,console.log("BuyProduct: ",t),Ee.a.purchaseService.purchaseProductWith(t).then((function(e){console.log("BuyProduct - SUCCESS: ",e),i({type:"PURCHASE_PRODUCT_SUCCESS",miniAppError:null,purchasedProduct:e}),C(e.productInfo.id,e)})).catch((function(e){console.log("Buy Product ERROR: ",e),i({type:"PURCHASE_PRODUCT_FAILURE",miniAppError:e})})))}function C(e,t){window.localStorage.setItem(e,JSON.stringify(t))}function O(e){null===e.currentTarget.value||void 0===e.currentTarget.value?(i({type:"CONSUME_PRODUCT_FAILURE"}),console.log("CONSUME_PRODUCT_FAILURE: ",e.currentTarget.value)):function(e,t){console.log("ConsumeProduct PRODUCT: ",e),console.log("ConsumeProduct TRANSACTION: ",t),Ee.a.purchaseService.consumePurchaseWith(e,t).then((function(t){console.log("SUCCESS - ConsumeProduct",t),h(!0),i({type:"CONSUME_PRODUCT_SUCCESS",miniAppError:null,consumeProductResponse:t}),C(e,"")})).catch((function(e){console.log("Consume Product Error: ",e),i({type:"CONSUME_PRODUCT_FAILURE",miniAppError:e})}))}(e.currentTarget.value,function(e){var t=window.localStorage.getItem(e);return JSON.parse(t).transactionId}(e.currentTarget.value)),o.isLoading||i({type:"PURCHASE_PRODUCT_INIT",miniAppError:null})}return a.a.createElement("div",{className:b.scrollable},a.a.createElement(de.a,{classes:{root:b.rootCardActions}},a.a.createElement(we.a,{column:"true",className:b.rootUserGroup},a.a.createElement("div",null,a.a.createElement("div",{className:b.wrapper},a.a.createElement(me.a,{onClick:S,variant:"contained",color:"primary",classes:{root:b.button},className:y,disabled:o.isLoading,"data-testid":"buyProduct"},"Fetch Products"),o.isLoading&&a.a.createElement(le.a,{size:20,className:b.buttonProgress}))),!o.isLoading&&o.isError&&a.a.createElement(ue.a,{variant:"body1",className:b.red},o.error),!o.isLoading&&o.consumeProductResponse&&a.a.createElement("div",null,a.a.createElement(a.a.Fragment,null,a.a.createElement(Et.a,{open:E,autoHideDuration:2e3,onClose:v},a.a.createElement(ft.a,{severity:"success",onClose:v},a.a.createElement(gt.a,null,o.consumeProductResponse.title),o.consumeProductResponse.description)))))),a.a.createElement(ve,{className:b.card},!p.isLoading&&p.productInfo&&a.a.createElement(se.a,null,(console.log("ShowProductDetails: ",p),a.a.createElement(a.a.Fragment,null,p.productInfo&&p.productInfo.map((function(e){return a.a.createElement(dt.a,{divider:!0,className:b.displayInlineBlock,key:e.id},a.a.createElement(mt.a,{className:b.listItemStyle,primary:"Title: "+e.title,secondary:a.a.createElement(a.a.Fragment,null,a.a.createElement(ue.a,null,e.description&&""!==e.description&&a.a.createElement("span",null,"Description: "+e.description)),a.a.createElement(ue.a,null,e.id&&""!==e.id&&a.a.createElement("span",null,"Product ID: "+e.id)),a.a.createElement(ue.a,null,e.id&&""!==e.id&&a.a.createElement("span",null,"Price : "+e.productPriceInfo.price+" "+e.productPriceInfo.currencyCode)))}),a.a.createElement("div",{className:b.purchaseButtonContainer},a.a.createElement("div",null,a.a.createElement(me.a,{onClick:A,variant:"contained",color:"primary",classes:{root:b.button},className:y,disabled:o.isLoading,"data-testid":"buyProduct",value:e.id},"Buy")),a.a.createElement("div",null,a.a.createElement(me.a,{onClick:O,variant:"contained",color:"primary",classes:{root:b.button},className:y,disabled:o.isLoading,"data-testid":"consumeProduct",value:e.id},"Consume"),o.isLoading&&a.a.createElement(le.a,{size:20,className:b.buttonProgress}))),o.purchasedProductInfo&&o.purchasedProductInfo.productInfo.id===e.id&&a.a.createElement("div",null,function(){var e=new Date(o.purchasedProductInfo.transactionDate);return a.a.createElement(a.a.Fragment,null,a.a.createElement(ue.a,{variant:"body1",className:b.success,align:"left",style:{overflowWrap:"break-word"}},"Transaction ID: ",o.purchasedProductInfo.transactionId,a.a.createElement("br",null),"Transaction Date: ",e.toLocaleDateString(),a.a.createElement("br",null),"Transaction Time: ",e.toLocaleTimeString(),a.a.createElement("br",null)))}()))})))))))}var St=r(192),At=r.n(St),Ct=r(198),Ot=r.n(Ct),wt=r(190),Nt=r.n(wt),Pt=r(195),Lt=r.n(Pt),It=r(196),Tt=r.n(It),jt=r(194),Ut=r.n(jt),Ft=r(193),Rt=r.n(Ft),xt=r(197),Wt=r.n(xt),Bt=r(191),Mt=r.n(Bt),kt=r(441),Dt=r(450),Ht=r(436),Gt=r(451),Vt=r(452),qt=function(){return function(e){Ee.a.getHostEnvironmentInfo().then((function(t){e({type:"REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS",info:t})})).catch((function(t){e({type:"REQUEST_HOST_ENVIRONMENT_INFO_ERROR",error:t})}))}},Qt=Object(i.a)((function(e){return{card:{display:"flex",alignItems:"center",justifyContent:"center",marginTop:"40px"},content:{height:"100%",width:"100%",justifyContent:"left",display:"flex",flexDirection:"column",alignItems:"stretch",fontSize:18,color:e.color.primary,fontWeight:"bold","& p":{lineHeight:1.5},overflowY:"auto"},info:{fontSize:16,lineBreak:"anywhere",wordBreak:"break-all",marginTop:0},button:{minHeight:40,margin:0},paddingTop50:{marginTop:"50px"}}}));var Yt=Object(s.b)((function(e,t){return Object(ce.a)({},t,{platform:e.info.platform,platformVersion:e.info.platformVersion,hostVersion:e.info.hostVersion,sdkVersion:e.info.sdkVersion,hostLocale:e.info.hostLocale,infoError:e.info.infoError,secureStorageStatus:(e.secureStorageStatus.isReady?"Ready":e.secureStorageStatus.error)||"Not Ready"})}),(function(e){return{getHostInfo:function(){return e(qt())},onSecureStorageReady:function(){return e((function(e){return new Promise((function(t){Ee.a.secureStorageService.onReady((function(){return e({type:"ON_SECURE_STORAGE_READY_SUCCESS"}),t()})),Ee.a.secureStorageService.onLoadError((function(r){return e({type:"ON_SECURE_STORAGE_READY_FAILURE",error:r}),t(r)}))}))}))}}}))((function(e){var t,r,o,i,c,s,l=Qt(),p=Object(n.useState)(!1),d=Object(u.a)(p,2),m=d[0],f=d[1];return Object(n.useEffect)((function(){try{he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Home","Screen","Page",""),e.getHostInfo(),function(e){e.onSecureStorageReady().then((function(e){console.log("Page - checkSecureStorageStorageReady - Success",e)})).catch((function(e){console.log("Page - checkSecureStorageStorageReady - Error: ",e)}))}(e),Ee.a.miniappUtils.isDarkMode().then((function(e){f(e)})).catch((function(e){console.log("getDarkMode - Error: ",e)}))}catch(t){console.log(t)}}),[e]),a.a.createElement(se.a,{className:l.content},a.a.createElement(Dt.a,{sx:{width:"100%",maxWidth:360,bgcolor:"background.paper"}},a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Nt.a,null))),a.a.createElement(Vt.a,{primary:"Platform",secondary:null!==(t=null!==(r=e.platform)&&void 0!==r?r:e.infoError)&&void 0!==t?t:"Unknown"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Mt.a,null))),a.a.createElement(Vt.a,{primary:"Platform Version",secondary:null!==(o=e.platformVersion)&&void 0!==o?o:"-"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(At.a,null))),a.a.createElement(Vt.a,{primary:"Host Version",secondary:null!==(i=e.hostVersion)&&void 0!==i?i:"-"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Rt.a,null))),a.a.createElement(Vt.a,{primary:"SDK Version",secondary:null!==(c=e.sdkVersion)&&void 0!==c?c:"-"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Ut.a,null))),a.a.createElement(Vt.a,{primary:"Host Locale:",secondary:null!==(s=e.hostLocale)&&void 0!==s?s:"-"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Lt.a,null))),a.a.createElement(Vt.a,{style:{wordBreak:"break-word"},primary:"Query Parameters",secondary:window.location.search||"None"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Tt.a,null))),a.a.createElement(Vt.a,{primary:"URL Fragment",secondary:window.location.hash||"None"})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Wt.a,null))),a.a.createElement(Vt.a,{primary:"Secure Storage Status",secondary:e.secureStorageStatus})),a.a.createElement(Ht.a,null,a.a.createElement(Gt.a,null,a.a.createElement(kt.a,null,a.a.createElement(Ot.a,null))),a.a.createElement(Vt.a,{primary:"Dark mode",secondary:String(m)}))))}));var Kt=function(e,t){var r=Object(n.useState)((function(){try{var r=window.localStorage.getItem(e);return r?JSON.parse(r):t}catch(n){throw n}})),a=Object(u.a)(r,2),o=a[0],i=a[1];return[o,function(t){try{i(t),window.localStorage.setItem(e,JSON.stringify(t))}catch(r){throw r}}]},Xt=Object(i.a)((function(e){return{content:{height:"25%",justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},card:{marginTop:"40px"},actions:{justifyContent:"center",flexDirection:"column"},button:{marginTop:"20px",width:"80%",maxWidth:280},textfield:{width:"80%",maxWidth:300,"& input":{color:e.color.primary,lineHeight:"1.5em",fontSize:"1.2em",background:"white"}}}}));var Jt=function(){var e=Xt(),t=Object(n.useState)(""),r=Object(u.a)(t,2),o=r[0],i=r[1],c=Kt("input-value",""),s=Object(u.a)(c,2),l=s[0],p=s[1];return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Local Storage","Screen","Page","")})),a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{type:"text",className:e.textfield,value:o,onChange:function(e){e.preventDefault(),i(e.currentTarget.value)},variant:"outlined",color:"primary",inputProps:{"data-testid":"input-field"}})),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{color:"primary",className:e.button,onClick:function(){i(l)},variant:"contained"},"Load text from Local Storage"),a.a.createElement(me.a,{color:"primary",className:e.button,onClick:function(){p(o)},variant:"contained"},"Save text to Local Storage")))},Zt=r(154),zt=Object(i.a)((function(e){return{card:{height:"auto",marginTop:"40px"},content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0},actions:{justifyContent:"center",paddingBottom:16}}})),_t=function(e){var t=e.ref;console.log(t),t.on("fullscreenchange",(function(e){t.isFullscreen()?Ee.a.setScreenOrientation(ge.ScreenOrientation.LOCK_LANDSCAPE).then((function(e){console.log(e)})).catch((function(e){console.error(e)})):Ee.a.setScreenOrientation(ge.ScreenOrientation.LOCK_RELEASE).then((function(e){console.log(e)})).catch((function(e){console.error(e)}))}))},$t=function(){var e=Object(n.useState)(!1),t=Object(u.a)(e,2),r=t[0],o=t[1],i=zt();return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Media","Screen","Page","")})),a.a.createElement(ve,{className:i.card},a.a.createElement(se.a,{className:i.content},"Autoplay Fullscreen Video"),a.a.createElement(se.a,{className:i.content},a.a.createElement(Zt.a,{accountId:"1752604059001",videoId:"5819230967001",onSuccess:_t})),a.a.createElement(se.a,{className:i.content},"Normal Video"),a.a.createElement(de.a,{className:i.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){return o(!r)}},r?"Hide":"Show"," Video")),r&&a.a.createElement(se.a,{className:i.content},a.a.createElement(Zt.a,{accountId:"1752604059001",videoId:"5819230967001",onSuccess:function(e){_t(e),e.ref.requestFullscreen()},options:{autoplay:!0}})))},er=r(446),tr=r(433),rr=r(413),nr=r(414),ar=r(415),or=r(416),ir=r(417),cr=r(418),sr=r(132),lr=r.n(sr),ur=r(199),pr=1,dr=2,mr=3,fr=[{name:ge.CustomPermissionName.SEND_MESSAGE,description:"We would like to send message from this mini app."}],gr=new Map;gr.set(pr,"Single contact"),gr.set(dr,"Specific contact ID"),gr.set(mr,"Multiple contact");var Er="https://one.rakuten.co.jp/miniapp/preview/".concat("404e46b4-263d-4768-b2ec-8a423224bead"),hr=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},formControl:{margin:e.spacing(1),minWidth:"100%"},fields:{color:e.color.primary,"& div":{color:e.color.primary}},actions:{justifyContent:"center"},errorMessage:{fontSize:12,color:"indianred"}}})),br=Object(s.b)((function(e,t){return Object(ce.a)({},t,{messageTypes:e.message.messageTypes})}),(function(e){return{getBots:function(){return e({type:"GET_MESSAGE_TYPE",payload:[{id:1,name:"Send a message to a single contact"},{id:2,name:"Send a message to a specific contact"},{id:3,name:"Send a message to multiple contacts"}]})},sendMessageToContact:function(t,r,n,a,o){return e(function(e,t,r,n,a){return function(o){var i={text:t,image:e,caption:r,action:n,bannerMessage:a};return Ee.a.chatService.sendMessageToContact(i)}}(t,r,n,a,o))},sendMessageToContactId:function(t,r,n,a,o){return e(function(e,t,r,n,a){return function(){var o=Object(ur.a)(lr.a.mark((function o(i){var c,s;return lr.a.wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return c=Ee.a.requestCustomPermissions(fr).then((function(e){return e[0].status===ge.CustomPermissionStatus.ALLOWED})),o.next=3,c;case 3:if(!0!==o.sent){o.next=7;break}return s={text:r,image:t,caption:n,action:a},o.abrupt("return",Ee.a.chatService.sendMessageToContactId(e,s));case 7:case"end":return o.stop()}}),o)})));return function(e){return o.apply(this,arguments)}}()}(t,r,n,a,o))},sendMessageToMultipleContacts:function(t,r,n,a,o){return e(function(e,t,r,n,a){return function(o){var i={text:t,image:e,caption:r,action:n,bannerMessage:a};return Ee.a.chatService.sendMessageToMultipleContacts(i)}}(t,r,n,a,o))}}}))((function(e){var t=hr(),r=e.messageTypes,o=Object(n.useState)({id:void 0!==r[0]?r[0].id:-1,contactId:"",image:_e,text:gr.get(pr),caption:"Open JS miniapp",action:Er,bannerMessage:"Win 30 coins from every friends who joins from your invite"}),i=Object(u.a)(o,2),c=i[0],s=i[1],l=Object(n.useState)({error:!1,message:""}),p=Object(u.a)(l,2),d=p[0],m=p[1],f=Object(n.useState)({show:!1,response:""}),g=Object(u.a)(f,2),E=g[0],h=g[1];Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Message","Screen","Page","")}));var b=function(){h({show:!1,response:""})};return a.a.createElement("div",{className:t.scrollable},a.a.createElement(n.Fragment,null,a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(er.a,{id:"chatbotLabel"},"Send Message Type"),a.a.createElement(tr.a,{labelId:"chatbotLabel",id:"message",placeholder:"Select Chatbot",value:c.id,className:t.fields,onChange:function(e){c.text=gr.get(e.target.value),c.action=Er,c.caption="Open JS miniapp",s(Object(ce.a)({},c,{id:e.target.value}))}},r.map((function(e){return a.a.createElement(rr.a,{key:e.id,value:e.id},e.name)})))),c.id===dr&&a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"contactId",label:"Contact ID",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{contactId:e.target.value}))},placeholder:"Input contact id receiving a message",value:c.contactId})),a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"image",label:"Image",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{image:e.target.value}))},placeholder:"Image url or Base64 string",value:c.image})),a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"text",label:"Text",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{text:e.target.value}))},value:c.text,multiline:!0,rowsMax:"4"})),c.id!==dr&&a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"bannerMessage",label:"Banner message",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{bannerMessage:e.target.value}))},value:c.bannerMessage})),a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"caption",label:"Caption",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{caption:e.target.value}))},value:c.caption})),a.a.createElement(Me.a,{className:t.formControl},a.a.createElement(pe.a,{id:"action",label:"Action",className:t.fields,onChange:function(e){s(Object(ce.a)({},c,{action:e.target.value}))},value:c.action})),d.error&&a.a.createElement("div",{"data-testid":"validation-error",className:t.errorMessage},d.message),a.a.createElement(de.a,{className:t.actions},a.a.createElement(me.a,{"data-testid":"send-message",variant:"contained",color:"primary",fullWidth:!0,onClick:function(){var t,n,a,o;if(-1===r.map((function(e){return e.id})).findIndex((function(e){return e===c.id}))?(m({error:!0,message:"select message"}),0):void 0===c.text||0===c.text.trim().length?(m({error:!0,message:"text cannot be empty"}),0):2!==c.id||void 0!==c.contactId&&0!==c.contactId.trim().length?(m({error:!1,message:""}),1):(m({error:!0,message:"contact id cannot be empty"}),0))if(c.id===pr)e.sendMessageToContact(null!==(t=c.image.trim())&&void 0!==t?t:"",void 0!==c.text?c.text.trim():"",null!==(n=c.caption.trim())&&void 0!==n?n:"",null!==(a=c.action.trim())&&void 0!==a?a:"",null!==(o=c.bannerMessage.trim())&&void 0!==o?o:"").then((function(e){var t="Message not sent";null!==e&&(t="Message is sent to contact Id: "+e),h({show:!0,response:t})})).catch((function(e){h({show:!0,response:e})}));else if(c.id===dr){var i,s,l;e.sendMessageToContactId(c.contactId.trim(),null!==(i=c.image.trim())&&void 0!==i?i:"",void 0!==c.text?c.text.trim():"",null!==(s=c.caption.trim())&&void 0!==s?s:"",null!==(l=c.action.trim())&&void 0!==l?l:"").then((function(e){var t="Message not sent";null!==e&&void 0!==e&&(t="Message is sent to contact Id: "+e),h({show:!0,response:t})})).catch((function(e){h({show:!0,response:e})}))}else if(c.id===mr){var u,p,d,f;e.sendMessageToMultipleContacts(null!==(u=c.image.trim())&&void 0!==u?u:"",void 0!==c.text?c.text.trim():"",null!==(p=c.caption.trim())&&void 0!==p?p:"",null!==(d=c.action.trim())&&void 0!==d?d:"",null!==(f=c.bannerMessage.trim())&&void 0!==f?f:"").then((function(e){var t="Message not sent";null!==e&&(t=e.length+" contacts sent"),h({show:!0,response:t})})).catch((function(e){h({show:!0,response:e})}))}}},"SEND MESSAGE")),a.a.createElement(nr.a,{"data-testid":"message-response-dialog",open:E.show,onClose:b,"aria-labelledby":"max-width-dialog-title"},a.a.createElement(ar.a,{id:"max-width-dialog-title"},"Response"),a.a.createElement(or.a,null,a.a.createElement(ir.a,null,E.response)),a.a.createElement(cr.a,null,a.a.createElement(me.a,{onClick:b,color:"primary"},"Close")))))})),yr=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},root:{background:e.color.secondary,width:"85vw",maxWidth:500,color:Pe.a},wrapperContainer:{height:"100%",display:"flex",flexDirection:"column",paddingLeft:0},wrapper:{position:"relative",marginTop:10},buttonSuccess:{backgroundColor:ke.a[500],"&:hover":{backgroundColor:ke.a[700]}},buttonFailure:{backgroundColor:Pe.a[500],"&:hover":{backgroundColor:Pe.a[700]}},buttonProgress:{position:"absolute",top:"calc(50% - 10px)",left:"calc(50% - 10px)"},error:{color:Pe.a[500],marginTop:10},success:{color:ke.a[500],marginTop:20},rootUserGroup:{alignItems:"center"},formInput:{width:"90%",marginTop:10},rootCardActions:{justifyContent:"center"},caseSelector:{marginTop:5},button:{marginBottom:15},dataFormsWrapper:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},paper:{width:"100%",paddingBottom:10,marginBottom:20,"&:last-child":{marginBottom:0}},red:{color:Pe.a[500]},padding10:{padding:10}}})),vr={isLoading:!1,isError:!1,error:null,isSuccess:!1,inputError:null,isStorageCleaned:!1},Sr=function(e,t){switch(t.type){case"FETCH_INIT":return Object(ce.a)({},e,{isLoading:!0,isError:!1,error:null,isSuccess:!1,inputError:null,isStorageCleaned:!1});case"FETCH_SUCCESS":return Object(ce.a)({},e,{isLoading:!1,isError:!1,error:null,isSuccess:!0,inputError:null,isStorageCleaned:!1});case"FETCH_FAILURE":return Object(ce.a)({},vr,{isLoading:!1,isError:!0,error:("string"==typeof t.miniAppError?t.miniAppError:t.miniAppError.message)||"",isSuccess:!1,inputError:null,isStorageCleaned:!1});case"INPUT_FAILURE":return Object(ce.a)({},vr,{isLoading:!1,isError:!0,error:null,isSuccess:!1,inputError:t.inputError,isStorageCleaned:!1});case"RESET":return Object(ce.a)({},vr,{isLoading:!1,isError:!1,error:null,isSuccess:!1,inputError:null,isStorageCleaned:!1});case"STORAGE_CLEAR_SUCCESS":return Object(ce.a)({},vr,{isLoading:!1,isError:!1,error:null,isSuccess:!1,inputError:null,isStorageCleaned:!0});default:throw Error("Unknown action type")}};var Ar=Object(s.b)((function(e){return{setItems:e.secureStorage.setItems,getItems:e.secureStorage.getItem,size:e.secureStorage.size,storageError:e.error}}),(function(e){return{requestSetItems:function(t){return e(function(e){return function(t){return Ee.a.secureStorageService.setItems(JSON.parse(e)).then((function(){return console.log("setItems Success: "),t({type:"SET_SECURE_STORAGE_SUCCESS"}),Promise.resolve(void 0)})).catch((function(e){throw console.log("SetItems Error: ",e),t({type:"SET_SECURE_STORAGE_FAILURE",error:e}),e}))}}(t))},requestGetItem:function(t){return e(function(e){return function(t){return Ee.a.secureStorageService.getItem(e).then((function(e){return console.log("getItems SuccessAction: ",e),t({type:"GET_SECURE_STORAGE_SUCCESS",item:e}),Promise.resolve(e)})).catch((function(e){throw console.log("getItems Error: ",e),t({type:"GET_SECURE_STORAGE_FAILURE",error:e}),e}))}}(t))},requestRemoveItems:function(t){return e(function(e){return function(t){return Ee.a.secureStorageService.removeItems(e).then((function(){return console.log("removeItems SuccessAction: "),t({type:"REMOVE_ITEMS_SECURE_STORAGE_SUCCESS"}),Promise.resolve(void 0)})).catch((function(e){throw console.log("removeItems Error: ",e),t({type:"REMOVE_ITEMS_SECURE_STORAGE_FAILURE",error:e}),e}))}}(t))},requestClear:function(){return e((function(e){return Ee.a.secureStorageService.clear().then((function(t){return console.log("clear SuccessAction: ",t),e({type:"CLEAR_SECURE_STORAGE_SUCCESS"}),Promise.resolve(t)})).catch((function(t){throw console.log("clear Error: ",t),e({type:"CLEAR_SECURE_STORAGE_FAILURE",error:t}),t}))}))},requestSize:function(){return e((function(e){return Ee.a.secureStorageService.size().then((function(t){return console.log("size SuccessAction: ",t),e({type:"GET_SIZE_SECURE_STORAGE_SUCCESS",size:t}),Promise.resolve(t)})).catch((function(t){throw console.log("size Error: ",t),e({type:"GET_SIZE_SECURE_STORAGE_FAILURE",error:t}),t}))}))}}}))((function(e){var t,r=Object(n.useReducer)(Sr,vr),o=Object(u.a)(r,2),i=o[0],c=o[1],s=yr(),p=Object(n.useState)(""),d=Object(u.a)(p,2),g=d[0],E=d[1],h=Object(n.useState)(""),b=Object(u.a)(h,2),y=b[0],v=b[1],S=Object(n.useState)(""),A=Object(u.a)(S,2),C=A[0],O=A[1],w=Object(n.useState)(""),N=Object(u.a)(w,2),P=N[0],L=N[1],I=Object(n.useState)(""),T=Object(u.a)(I,2),j=T[0],U=T[1],F=Object(n.useState)(""),R=Object(u.a)(F,2),x=R[0],W=R[1],B=Object(n.useState)(""),M=Object(u.a)(B,2),k=M[0],D=M[1],H=Object(f.a)((t={},Object(l.a)(t,s.buttonFailure,i.isError),Object(l.a)(t,s.buttonSuccess,!i.isError),t));function G(e){return!e||0===e.trim().length}function V(t){X(g,y)&&X(C,P)?c({type:"INPUT_FAILURE",miniAppError:null,inputError:"Please enter Key and Value"}):J(g,y)&&J(C,P)?(c({type:"RESET",miniAppError:null,inputError:null}),function(){if(!i.isLoading){c({type:"FETCH_INIT",miniAppError:null,inputError:null});var t={};t[g]=y,t[C]=P,Object.keys(t).forEach((function(e){t[e]||delete t[e]})),function(t){e.requestSetItems(JSON.stringify(t)).then((function(e){console.log("Page - SetItems - Success",e),c({type:"FETCH_SUCCESS",miniAppError:null,inputError:null})})).catch((function(e){console.log("Page - SetItems - Error: ",e),c({type:"FETCH_FAILURE",miniAppError:e,inputError:null})}))}(t)}}()):(console.log("ERROR"),c({type:"INPUT_FAILURE",miniAppError:null,inputError:"Please enter both Key and Value"}))}function q(t){G(j)?c({type:"INPUT_FAILURE",miniAppError:null,inputError:"Key cannot be empty"}):i.isLoading||(c({type:"FETCH_INIT",miniAppError:null,inputError:null}),e.requestGetItem(j).then((function(e){console.log("Page - GetItems - Success",e),c({type:"FETCH_SUCCESS",miniAppError:null,inputError:null})})).catch((function(e){console.log("Page - GetItems - Error: ",e),c({type:"FETCH_FAILURE",miniAppError:e,inputError:null})})))}function Q(t){var r=[x,k].filter((function(e){return!1===G(e)}));i.isLoading||(c({type:"FETCH_INIT",miniAppError:null,inputError:null}),e.requestRemoveItems(r).then((function(e){console.log("Page - RemoveItems - Success",e),c({type:"FETCH_SUCCESS",miniAppError:null,inputError:null})})).catch((function(e){console.log("Page - RemoveItems - Error: ",e),c({type:"FETCH_FAILURE",miniAppError:e,inputError:null})})))}function Y(t){i.isLoading||(c({type:"FETCH_INIT",miniAppError:null,inputError:null}),e.requestSize().then((function(e){console.log("Page - Size - Success",e),c({type:"FETCH_SUCCESS",miniAppError:null,inputError:null})})).catch((function(e){console.log("Page - Size - Error: ",e),c({type:"FETCH_FAILURE",miniAppError:e,inputError:null})})))}function K(t){i.isLoading||(c({type:"FETCH_INIT",miniAppError:null,inputError:null}),e.requestClear().then((function(e){console.log("Page - clearStorageItems - Success",e),c({type:"STORAGE_CLEAR_SUCCESS",miniAppError:null,inputError:null})})).catch((function(e){console.log("Page - clearSecureStorageItems - Error: ",e),c({type:"FETCH_FAILURE",miniAppError:e,inputError:null})})))}function X(e,t){return G(e)&&G(t)}function J(e,t){return!(G(e)&&!G(t))&&!(!G(e)&&G(t))}var Z=a.a.useState("1"),z=Object(u.a)(Z,2),_=z[0],$=z[1];return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Secure storage","Screen","Page","")})),a.a.createElement(m.a,{className:s.wrapperContainer},a.a.createElement(Te.a,{value:_},a.a.createElement(je.a,{variant:"scrollable",onChange:function(e,t){c({type:"RESET",miniAppError:null,inputError:null}),$(t)},"aria-label":"simple tabs example"},a.a.createElement(Ie.a,{label:"Set",value:"1"}),a.a.createElement(Ie.a,{label:"Get",value:"2"}),a.a.createElement(Ie.a,{label:"Remove",value:"3"}),a.a.createElement(Ie.a,{label:"Others",value:"4"})),a.a.createElement(Ue.a,{value:"1"},a.a.createElement(we.a,{column:"true",className:s.rootUserGroup},a.a.createElement(n.Fragment,null,a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Key",value:g,onChange:function(e){return E(e.target.value)}}),a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Value",value:y,onChange:function(e){return v(e.target.value)}})),a.a.createElement("br",null),a.a.createElement(n.Fragment,null,a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Key",value:C,onChange:function(e){return O(e.target.value)}}),a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Value",value:P,onChange:function(e){return L(e.target.value)}})),a.a.createElement("br",null),a.a.createElement("br",null),a.a.createElement(me.a,{onClick:V,variant:"contained",color:"primary",classes:{root:s.button},className:H,disabled:i.isLoading,"data-testid":"setSecureStorage"},"Set Secure Storage"),i.isLoading&&a.a.createElement(le.a,{size:20,className:s.buttonProgress}),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.inputError),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.error),!i.isLoading&&i.isSuccess&&a.a.createElement(ue.a,{variant:"body1",className:s.red},"Items stored Successfully"))),a.a.createElement(Ue.a,{value:"2"},a.a.createElement(we.a,{column:"true",className:s.rootUserGroup},a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Key",value:j,onChange:function(e){return U(e.target.value)}}),a.a.createElement("br",null),a.a.createElement(me.a,{onClick:q,variant:"contained",color:"primary",classes:{root:s.button},className:H,disabled:i.isLoading,"data-testid":"getSecureStorage"},"Get Secure Storage"),i.isLoading&&a.a.createElement(le.a,{size:20,className:s.buttonProgress}),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.inputError),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.error),!i.isLoading&&!i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},e.getItems))),a.a.createElement(Ue.a,{value:"3"},a.a.createElement(we.a,{column:"true",className:s.rootUserGroup},a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Key",value:x,onChange:function(e){return W(e.target.value)}}),a.a.createElement("br",null),a.a.createElement(pe.a,{variant:"outlined",className:s.formInput,id:"input-name",label:"Key",value:k,onChange:function(e){return D(e.target.value)}}),a.a.createElement("br",null),a.a.createElement("br",null),a.a.createElement(me.a,{onClick:Q,variant:"contained",color:"primary",classes:{root:s.button},className:H,disabled:i.isLoading,"data-testid":"removeSecureStorage"},"Remove Items"),i.isLoading&&a.a.createElement(le.a,{size:20,className:s.buttonProgress}),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.inputError),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.error),!i.isLoading&&i.isSuccess&&a.a.createElement(ue.a,{variant:"body1",className:s.red},"Items removed Successfully"))),a.a.createElement(Ue.a,{value:"4"},a.a.createElement(we.a,{column:"true",className:s.rootUserGroup},a.a.createElement(me.a,{onClick:Y,variant:"contained",color:"primary",classes:{root:s.button},className:H,disabled:i.isLoading,"data-testid":"getSizeSecureStorage"},"Get Size"),a.a.createElement("br",null),a.a.createElement(me.a,{onClick:K,variant:"contained",color:"primary",classes:{root:s.button},className:H,disabled:i.isLoading,"data-testid":"clearSecureStorage"},"Clear Storage"),i.isLoading&&a.a.createElement(le.a,{size:20,className:s.buttonProgress}),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.inputError),!i.isLoading&&i.isError&&a.a.createElement(ue.a,{variant:"body1",className:s.red},i.error),!i.isLoading&&!i.isError&&i.isSuccess&&e.size&&a.a.createElement(ue.a,{variant:"body1",className:s.red},a.a.createElement("div",null,"Maximum Size: ",e.size.max),a.a.createElement("div",null,"Used Space: ",e.size.used),a.a.createElement("div",null,"Available: ",e.size.max-e.size.used)),!i.isLoading&&!i.isError&&i.isStorageCleaned&&a.a.createElement(ue.a,{variant:"body1",className:s.red},"Storage Cleared Successfully")))))})),Cr=Object(i.a)((function(e){return{card:{marginTop:"40px"},content:{height:"50%",justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},actions:{justifyContent:"center"},textfield:{width:"80%",maxWidth:300,background:"white","& input":{color:e.color.primary,lineHeight:"1.5em",fontSize:"1.2em"}}}}));var Or=function(){var e=Cr(),t="This is JS-SDK-Sample.";return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Share","Screen","Page","")})),a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{type:"text",className:e.textfield,onChange:function(e){e.preventDefault(),t=e.currentTarget.value},placeholder:"Content",defaultValue:"This is JS-SDK-Sample.",variant:"outlined",color:"primary",multiline:"true",rowsMax:"5",inputProps:{"data-testid":"input-field"}})),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{color:"primary",className:e.button,onClick:function(){var e={content:t};Ee.a.shareInfo(e).then((function(e){console.log(e)})).catch((function(e){console.error(e)}))},variant:"contained"},"Share")))},wr=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},actions:{justifyContent:"center"},content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0},sendInput:{width:"90%",marginTop:10,marginBottom:10,background:"white"},receiveInput:{width:"90%",marginTop:10,marginBottom:10,disabled:"disabled",caretColor:"transparent"},formInput:{marginTop:10,marginBottom:10,background:"white",width:"90%"},success:{color:ke.a[500],marginTop:20,textAlign:"center",wordBreak:"break-all"},faliure:{color:Pe.a[500]}}})),Nr=function(){var e=wr(),t=Object(n.useState)('{"data":"This is a sample json information"}'),r=Object(u.a)(t,2),o=r[0],i=r[1],c=Object(n.useState)(),s=Object(u.a)(c,2),l=s[0],p=s[1],d=Object(n.useState)(),m=Object(u.a)(d,2),f=m[0],g=m[1],E=Object(n.useState)(),h=Object(u.a)(E,2),b=h[0],y=h[1],v=Object(n.useState)(""),S=Object(u.a)(v,2),A=S[0],C=S[1],O=Object(n.useState)(""),w=Object(u.a)(O,2),N=w[0],P=w[1];Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Universal Bridge","Screen","Page","")})),window.addEventListener(ge.HostAppEvents.RECEIVE_JSON_INFO,(function(e){var t=e.detail.message;console.log(t),A=t,C(t)}));return a.a.createElement("div",{className:e.scrollable},a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},a.a.createElement("p",null,"Send JSON/String to HostApp"),a.a.createElement("div",null,""===N?a.a.createElement("div",null):"SUCCESS"===N?a.a.createElement(ue.a,{variant:"body2",className:e.success},'"',N,'"'):a.a.createElement(ue.a,{variant:"body2",className:e.red},'"Error: ',N,'"'))),a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{type:"text",className:e.sendInput,onChange:function(e){e.preventDefault(),i(e.currentTarget.value)},placeholder:"Input JSON/String here...",value:o,variant:"outlined",color:"primary",multiline:"true",inputProps:{"data-testid":"input-field"}})),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{color:"primary",className:e.button,onClick:function(){var e={content:o};Ee.a.universalBridge.sendJsonToHostapp(e).then((function(e){console.log(e),P("SUCCESS")})).catch((function(e){console.error(e),P(e.message)}))},variant:"contained"},"Send Json"),a.a.createElement(me.a,{className:e.button,onClick:function(){i("")},variant:"contained"},"Clear")),a.a.createElement("hr",{style:{borderColor:"primary"}}),a.a.createElement("div",null,a.a.createElement(pe.a,{variant:"outlined",className:e.formInput,id:"input-name",label:"Key",value:l,onChange:function(e){return p(e.target.value)}}),a.a.createElement(pe.a,{variant:"outlined",className:e.formInput,id:"input-name",label:"Value",value:f,onChange:function(e){return g(e.target.value)}}),a.a.createElement(pe.a,{variant:"outlined",className:e.formInput,id:"input-name",label:"Description",value:b,onChange:function(e){return y(e.target.value)}})),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{color:"primary",className:e.button,onClick:function(){var e={key:l,value:f,description:b};Ee.a.universalBridge.sendInfoToHostapp(e).then((function(e){console.log(e),P("SUCCESS")})).catch((function(e){console.error(e),P(e.message)}))},variant:"contained"},"Send Info"),a.a.createElement(me.a,{className:e.button,onClick:function(){p(""),g(""),y("")},variant:"contained"},"Clear")),a.a.createElement("hr",{style:{borderColor:"primary"}}),a.a.createElement(se.a,{className:e.content},a.a.createElement("p",null,"Receive JSON/String from HostApp")),a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{type:"text",className:e.receiveInput,placeholder:"Received JSON/String here",value:A,variant:"outlined",color:"primary",multiline:"true"}))))},Pr=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},actions:{justifyContent:"center",paddingBottom:16},content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0},textfield:{width:"100%"}}})),Lr=Object(i.a)((function(e){return{content:{justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",paddingBottom:0,height:"50px"},card:{width:"100%",height:"100px"},actions:{justifyContent:"center",paddingBottom:16}}})),Ir=function(){var e=Pr(),t=Lr(),r=Object(n.useState)("?testSendParam=someValue&test2=test2"),o=Object(u.a)(r,2),i=o[0],c=o[1],s=Object(n.useState)("".concat(window.location.protocol,"//").concat(window.location.host,"/index.html")),l=Object(u.a)(s,2),p=l[0],d=l[1],m=Object(n.useState)(""),f=Object(u.a)(m,2),g=f[0],E=f[1];function h(e){window.location.href=e}return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"URI Schemes","Screen","Page","")})),a.a.createElement("div",{className:e.scrollable},a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},"tel: scheme"),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",href:"tel:+1-123-456-7890"},"+1-123-456-7890")),a.a.createElement(se.a,{className:e.content},"tel:// scheme"),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",href:"tel://+1-123-456-7890"},"+1-123-456-7890")),a.a.createElement(se.a,{className:e.content},"mailto:"),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",href:"mailto:mail@example.com?cc=ccmail@example.com, ccmail2@example.com, &bcc=bccmail@example.com&subject=Sample subject&body=Sample body."},"Address / cc / bcc / subject / body")),a.a.createElement(se.a,{className:e.content},"External Webview Params & Callback"),a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{className:e.textfield,onChange:function(e){return c(e.currentTarget.value)},value:i,label:"Params to pass",variant:"outlined",color:"primary",inputProps:{"data-testid":"input-field"}})),a.a.createElement(se.a,{className:e.content},a.a.createElement(pe.a,{className:e.textfield,onChange:function(e){return d(e.currentTarget.value)},value:p,label:"Mini App Return URL",variant:"outlined",color:"primary",inputProps:{"data-testid":"callback-input-field"}})),a.a.createElement(de.a,{className:e.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){if(!i||function(e){return e.startsWith("?")&&e.indexOf("=")>=0}(i)){var e=new URL("https://htmlpreview.github.io/?https://raw.githubusercontent.com/rakutentech/js-miniapp/master/js-miniapp-sample/external-webview/index.html"+i);e.search=e.search.concat(e.search?"&":"?").concat("callbackUrl=".concat(encodeURIComponent(p))),h(e)}else window.alert("Invalid params. Please input params in the format ?param1=value1¶m2=value2")}},"Open"))),a.a.createElement("br",null),a.a.createElement(ve,{className:e.card},a.a.createElement(se.a,{className:e.content},"URL or Deep Link"),a.a.createElement(se.a,{className:t.content},a.a.createElement(pe.a,{className:e.textfield,onChange:function(e){return E(e.currentTarget.value)},value:g,label:"Deep Link URL",variant:"outlined",color:"primary",inputProps:{"data-testid":"deeplink-input-field"}})),a.a.createElement(de.a,{className:t.actions},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){return g&&h(g)}},"Open"))))},Tr=r(394),jr=r(448),Ur=r(419),Fr=r(420),Rr=r(421),xr=r(200),Wr=r.n(xr),Br=r(201),Mr=r.n(Br),kr=Object(i.a)((function(e){return{scrollable:{overflowY:"auto",width:"100%",paddingTop:20,paddingBottom:20},card:{width:"100%",height:"auto"},root:{background:e.color.secondary,width:"85vw",maxWidth:500},wrapperContainer:{height:"100%",display:"flex",flexDirection:"column",paddingLeft:0},wrapper:{position:"relative",marginTop:10},buttonSuccess:{backgroundColor:ke.a[500],"&:hover":{backgroundColor:ke.a[700]}},buttonFailure:{backgroundColor:Pe.a[500],"&:hover":{backgroundColor:Pe.a[700]}},buttonProgress:{position:"absolute",top:"calc(50% - 10px)",left:"calc(50% - 10px)"},error:{color:Pe.a[500],marginTop:10},success:{color:ke.a[500],marginTop:20},rootUserGroup:{alignItems:"center"},formInput:{width:"90%",marginTop:10},rootCardActions:{justifyContent:"center"},caseSelector:{marginTop:5},button:{marginBottom:15},dataFormsWrapper:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"},paper:{width:"100%",paddingBottom:10,marginBottom:20,"&:last-child":{marginBottom:0}},profilePhoto:{height:100,width:100},profilePhotoOuter:{display:"flex",justifyContent:"center"},userProfile:{maxHeight:125,overflow:"auto"},contactsList:{maxHeight:320,overflow:"auto"},red:{color:Pe.a[500]}}})),Dr={isNamePhotoLoading:!1,isNamePhottoError:!1,hasRequestedNamePhotoPermissions:!1,isContactsLoading:!1,isContactsError:!1,hasRequestedContactsPermissions:!1,isPointsLoading:!1,isPointsError:!1,hasRequestedPointPermissions:!1},Hr=function(e,t){switch(t.type){case"NAME_PHOTO_FETCH_INIT":return Object(ce.a)({},e,{isNamePhotoLoading:!0,isNamePhotoError:!1,hasRequestedNamePhotoPermissions:!1});case"NAME_PHOTO_FETCH_SUCCESS":return Object(ce.a)({},e,{isNamePhotoLoading:!1,isNamePhotoError:!1,hasRequestedNamePhotoPermissions:!0});case"NAME_PHOTO_FETCH_FAILURE":return Object(ce.a)({},Dr,{isNamePhotoLoading:!1,isNamePhotoError:!0});case"CONTACTS_FETCH_INIT":return Object(ce.a)({},e,{isContactsLoading:!0,isContactsError:!1,hasRequestedContactsPermissions:!1});case"CONTACTS_FETCH_SUCCESS":return Object(ce.a)({},e,{isContactsLoading:!1,isContactsError:!1,hasRequestedContactsPermissions:!0});case"CONTACTS_FETCH_FAILURE":return Object(ce.a)({},Dr,{isContactsLoading:!1,isContactsError:!0});case"POINTS_FETCH_INIT":return Object(ce.a)({},e,{isPointsLoading:!0,isPointsError:!1,hasRequestedPointPermissions:!1});case"POINTS_FETCH_SUCCESS":return Object(ce.a)({},e,{isPointsLoading:!1,isPointsError:!1,hasRequestedPointPermissions:!0});case"POINTS_FETCH_FAILURE":return Object(ce.a)({},Dr,{isPointsLoading:!1,isPointsError:!0});default:throw Error("Unknown action type")}};var Gr=Object(s.b)((function(e){return{permissions:e.permissions,userName:e.user.userName,profilePhoto:e.user.profilePhoto,contactList:e.user.contactList,points:e.user.points}}),(function(e){return{getUserName:function(){return e((function(e){return Ee.a.user.getUserName().then((function(t){e({type:"REQUEST_USER_NAME_SUCCESS",userName:t})})).catch((function(t){e({type:"REQUEST_USER_NAME_FAILURE"})}))}))},getProfilePhoto:function(){return e((function(e){return Ee.a.user.getProfilePhoto().then((function(t){e({type:"REQUEST_PROFILE_PHOTO_SUCCESS",url:t})})).catch((function(t){e({type:"REQUEST_PROFILE_PHOTO_FAILURE"})}))}))},getContacts:function(){return e((function(e){return Ee.a.user.getContacts().then((function(t){return e({type:"REQUEST_CONTACT_LIST_SUCCESS",contacts:t}),Promise.resolve(t)})).catch((function(t){e({type:"REQUEST_CONTACT_LIST_FAILURE"})}))}))},getPoints:function(){return e((function(e){return Ee.a.user.getPoints().then((function(t){return e({type:"REQUEST_POINTS_SUCCESS",points:t}),Promise.resolve(t)})).catch((function(t){throw e({type:"REQUEST_POINTS_FAILURE"}),t}))}))},requestPermissions:function(t){return e(De(t))}}}))((function(e){var t,r,o=Object(n.useReducer)(Hr,Dr),i=Object(u.a)(o,2),c=i[0],s=i[1],p=kr(),d=L(c.isNamePhotoError),g=L(c.isContactsError),E=L(c.isPointsError),h=Object(n.useState)("none"),b=Object(u.a)(h,2),y=b[0],v=b[1],S=Object(n.useState)(""),A=Object(u.a)(S,2),C=A[0],O=A[1],w=(t=C,r=e.contactList,t?r.filter((function(e){return e.name.toLocaleLowerCase().includes(t.toLowerCase())})).map((function(e){return e})):r),N=function(e){v(""===e.target.value?"none":"flex"),O(e.target.value)},P=function(){O(""),v("none")};function L(e){var t;return Object(f.a)((t={},Object(l.a)(t,p.buttonFailure,e),Object(l.a)(t,p.buttonSuccess,!e),t))}function I(e){return e.filter((function(e){return e.status===ge.CustomPermissionStatus.ALLOWED})).map((function(e){return e.name}))}function T(t){c.isNamePhotoLoading||(t.preventDefault(),s({type:"NAME_PHOTO_FETCH_INIT"}),function(){var t=[{name:ge.CustomPermissionName.USER_NAME,description:"We would like to display your Username on your profile page."},{name:ge.CustomPermissionName.PROFILE_PHOTO,description:"We would like to display your Profile Photo on your profile page."}];e.requestPermissions(t).then((function(e){return I(e)})).then((function(t){return Promise.all([R(ge.CustomPermissionName.USER_NAME,t)?void e.getUserName().then((function(e){s({type:"NAME_PHOTO_FETCH_SUCCESS"})})).catch((function(e){s({type:"NAME_PHOTO_FETCH_FAILURE",error:e})})):null,R(ge.CustomPermissionName.PROFILE_PHOTO,t)?void e.getProfilePhoto().then((function(e){s({type:"NAME_PHOTO_FETCH_SUCCESS"})})).catch((function(e){s({type:"NAME_PHOTO_FETCH_FAILURE",error:e})})):null])})).then((function(){return s({type:"NAME_PHOTO_FETCH_SUCCESS"})})).catch((function(e){console.error(e),s({type:"NAME_PHOTO_FETCH_FAILURE"})}))}())}function j(t){c.isContactsLoading||(t.preventDefault(),s({type:"CONTACTS_FETCH_INIT"}),function(){var t=[{name:ge.CustomPermissionName.CONTACT_LIST,description:"We would like to send messages to your contacts."}];e.requestPermissions(t).then((function(e){return I(e)})).then((function(t){return Promise.all([R(ge.CustomPermissionName.CONTACT_LIST,t)?e.getContacts():null])})).then((function(){return s({type:"CONTACTS_FETCH_SUCCESS"})})).catch((function(e){console.error(e),s({type:"CONTACTS_FETCH_FAILURE"})}))}())}function U(t){c.isPointsLoading||(t.preventDefault(),s({type:"POINTS_FETCH_INIT"}),function(){var t=[{name:ge.CustomPermissionName.POINTS,description:"We would like to display your Points on your profile page."}];e.points=void 0,e.requestPermissions(t).then((function(e){return I(e)})).then((function(t){return Promise.all([R(ge.CustomPermissionName.POINTS,t)?e.getPoints():null])})).then((function(){return s({type:"POINTS_FETCH_SUCCESS"})})).catch((function(e){console.error(e),s({type:"POINTS_FETCH_FAILURE"})}))}())}function F(){return c.hasRequestedPointPermissions&&!R(ge.CustomPermissionName.POINTS)}function R(t,r){return void 0!==(r=r||e.permissions||[]).indexOf?r.indexOf(t)>-1:void 0!==r.permissions.indexOf&&r.permissions.indexOf(t)>-1}Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"User details","Screen","Page","")}));var x=a.a.useState("1"),W=Object(u.a)(x,2),B=W[0],M=W[1];return a.a.createElement(m.a,{className:p.wrapperContainer},a.a.createElement(Te.a,{value:B},a.a.createElement(je.a,{variant:"scrollable",onChange:function(e,t){M(t)},"aria-label":"user details tabs"},a.a.createElement(Ie.a,{label:"Profile",value:"1"}),a.a.createElement(Ie.a,{label:"Contacts",value:"2"}),a.a.createElement(Ie.a,{label:"Points",value:"3"})),a.a.createElement(Ue.a,{value:"1"},function(){var t=c.hasRequestedNamePhotoPermissions&&R(ge.CustomPermissionName.PROFILE_PHOTO),r=c.hasRequestedNamePhotoPermissions&&R(ge.CustomPermissionName.USER_NAME);return a.a.createElement(we.a,{column:"true"},a.a.createElement(fe.a,{className:p.paper},a.a.createElement(Tr.a,{className:p.userProfile},c.hasRequestedNamePhotoPermissions&&!t&&a.a.createElement(dt.a,null,a.a.createElement(mt.a,{primary:'"Profile Photo" permission not granted.',className:p.red,key:"avatar-error"})),t&&a.a.createElement("div",{className:p.profilePhotoOuter},a.a.createElement(jr.a,{src:e.profilePhoto,className:p.profilePhoto,key:"avatar"}))),a.a.createElement(Ur.a,{subheader:"User Details"}),a.a.createElement(pe.a,{variant:"outlined",disabled:!0,className:p.formInput,id:"input-name",error:c.isNamePhotoError&&c.hasRequestedNamePhotoPermissions,label:"User Name",value:!r&&c.hasRequestedNamePhotoPermissions?'"User Name" permission not granted.':e.userName||" "})),a.a.createElement("div",{className:p.wrapper},a.a.createElement(me.a,{onClick:T,variant:"contained",color:"primary",classes:{root:p.button},className:d,disabled:c.isNamePhotoLoading,"data-testid":"fetchNamePhotoButton"},"Fetch User Name and Photo"),c.isNamePhotoLoading&&a.a.createElement(le.a,{size:20,className:p.buttonProgress})),c.isNamePhotoError&&a.a.createElement(ue.a,{variant:"body1",className:p.error},"Error fetching the user name and photo"))}()),a.a.createElement(Ue.a,{value:"2"},a.a.createElement(we.a,{column:"true"},a.a.createElement("div",{className:p.wrapper},a.a.createElement(me.a,{onClick:j,variant:"contained",color:"primary",classes:{root:p.button},className:g,disabled:c.isContactsLoading,"data-testid":"fetchContactsButton"},"Fetch Contacts"),c.isContactsLoading&&a.a.createElement(le.a,{size:20,className:p.buttonProgress})),a.a.createElement(pe.a,{size:"small",variant:"outlined",onChange:N,value:C,InputProps:{startAdornment:a.a.createElement(Fr.a,{position:"start"},a.a.createElement(Wr.a,null)),endAdornment:a.a.createElement(Fr.a,{position:"end",style:{display:y},onClick:P},a.a.createElement(Mr.a,null))}}),a.a.createElement(fe.a,{className:p.paper},e.contactList&&a.a.createElement(Ur.a,{subheader:"Contact List: "+e.contactList.length}),a.a.createElement(Tr.a,{className:p.contactsList},c.hasRequestedContactsPermissions&&!1,e.contactList&&w.map((function(e){return a.a.createElement(dt.a,{divider:!0},a.a.createElement(Rr.a,null,a.a.createElement(jr.a,{className:p.contactIcon})),a.a.createElement(mt.a,{primary:e.id,secondary:a.a.createElement(a.a.Fragment,null,a.a.createElement(ue.a,null,e.name&&""!==e.name&&a.a.createElement("span",null,"Name: "+e.name)),a.a.createElement(ue.a,null,e.email&&""!==e.email&&a.a.createElement("span",null,"Email: "+e.email)),a.a.createElement(ue.a,null,e.allEmailList&&e.allEmailList.length>0&&a.a.createElement("span",null,"Email list: "+e.allEmailList.join(", "))))}))})))),c.isContactsError&&a.a.createElement(ue.a,{variant:"body1",className:p.error},"Error fetching the contacts"))),a.a.createElement(Ue.a,{value:"3"},a.a.createElement(we.a,{column:"true"},a.a.createElement(fe.a,{className:p.paper},a.a.createElement(Ur.a,{subheader:"Points"}),a.a.createElement(pe.a,{variant:"outlined",disabled:!0,className:p.formInput,id:"input-points-standard",error:c.isPointsError||F(),label:"Points (Standard)",value:F()?'"Points" permission not granted.':void 0!==e.points&&void 0!==e.points.standard?e.points.standard.toString():"-"}),a.a.createElement(pe.a,{variant:"outlined",disabled:!0,className:p.formInput,id:"input-points-term",error:c.isPointsError||F(),label:"Points (Time-Limited)",value:F()?'"Points" permission not granted.':void 0!==e.points&&void 0!==e.points.term?e.points.term.toString():"-"}),a.a.createElement(pe.a,{variant:"outlined",disabled:!0,className:p.formInput,id:"input-points-cash",error:c.isPointsError||F(),label:"Points (Rakuten Cash)",value:F()?'"Points" permission not granted.':void 0!==e.points&&void 0!==e.points.cash?e.points.cash.toString():"-"})),a.a.createElement("div",{className:p.wrapper},a.a.createElement(me.a,{onClick:U,variant:"contained",color:"primary",classes:{root:p.button},className:E,disabled:c.isPointsLoading,"data-testid":"fetchPointsButton"},"Fetch Points"),c.isPointsLoading&&a.a.createElement(le.a,{size:20,className:p.buttonProgress})),c.isPointsError&&a.a.createElement(ue.a,{variant:"body1",className:p.error},"Error fetching the points")))))})),Vr=r(439),qr=r(138),Qr=Object(i.a)((function(e){return{card:{width:"100%",height:"auto",marginTop:"40px",display:"grid"},content:{height:"auto",justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold",wordBreak:"break-word"},actions:{justifyContent:"center"},uuidNotFound:{width:200}}})),Yr=Object(s.b)((function(e,t){return Object(ce.a)({},t,{uniqueId:e.uuid.uniqueId,uniqueIdError:e.uuid.uniqueIdError,messagingUniqueId:e.uuid.messagingUniqueId,messagingUniqueIdError:e.uuid.messagingUniqueIdError,mauid:e.uuid.mauid,mauidError:e.uuid.mauidError})}),(function(e){return{getUniqueId:function(){return e((function(e){Ee.a.getUniqueId().then((function(t){e({type:"SET_UNIQUE_ID",payload:t})})).catch((function(t){e({type:"UNIQUE_ID_FETCH_ERROR",error:t})}))}))},getMessagingUniqueId:function(){return e((function(e){Ee.a.getMessagingUniqueId().then((function(t){e({type:"SET_MESSAGING_UNIQUE_ID",payload:t})})).catch((function(t){e({type:"MESSAGING_UNIQU_ID_FETCH_ERROR",error:t})}))}))},getMauid:function(){return e((function(e){Ee.a.getMauid().then((function(t){e({type:"SET_MAUID",payload:t})})).catch((function(t){e({type:"MAUID_FETCH_ERROR",error:t})}))}))}}}))((function(e){var t,r,o,i,c,s,l=Qr(),p=Object(n.useState)({success:!1,error:!1}),d=Object(u.a)(p,2),m=d[0],f=d[1];function g(e,t){f(t?{success:!0,error:!1}:{success:!1,error:!0})}return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Unique ID","Screen","Page","")})),a.a.createElement(ve,{className:l.card},a.a.createElement(se.a,{className:l.content},null!==(t=null!==(r=e.uniqueId)&&void 0!==r?r:e.uniqueIdError)&&void 0!==t?t:"Not Available"),a.a.createElement(de.a,{className:l.actions},a.a.createElement(me.a,{"data-testid":"get-unique-id",variant:"contained",color:"primary",fullWidth:!0,onClick:e.getUniqueId},"GET UNIQUE ID"),a.a.createElement(qr.CopyToClipboard,{disabled:!e.uniqueId,text:e.uniqueId,onCopy:g},a.a.createElement(me.a,{disabled:!e.uniqueId,"data-testid":"clipboard-copy",variant:"contained",color:"primary"},"Copy")),a.a.createElement(Vr.a,{open:m.success,autoHideDuration:3e3,onClose:function(){f({success:!1,error:!1})},message:"Copied to clipboard !!"}),a.a.createElement(Vr.a,{open:m.error,autoHideDuration:3e3,onClose:function(){f({success:!1,error:!1})},message:"Failed to copy!"})),a.a.createElement(se.a,{className:l.content},null!==(o=null!==(i=e.messagingUniqueId)&&void 0!==i?i:e.messagingUniqueIdError)&&void 0!==o?o:"Not Available"),a.a.createElement(de.a,{className:l.actions},a.a.createElement(me.a,{"data-testid":"get-messaging-unique-id",variant:"contained",color:"primary",fullWidth:!0,onClick:e.getMessagingUniqueId},"GET MESSAGING UNIQUE ID"),a.a.createElement(qr.CopyToClipboard,{disabled:!e.messagingUniqueId,text:e.messagingUniqueId,onCopy:g},a.a.createElement(me.a,{disabled:!e.messagingUniqueId,"data-testid":"clipboard-copy",variant:"contained",color:"primary"},"Copy")),a.a.createElement(Vr.a,{open:m.success,autoHideDuration:3e3,onClose:function(){f({success:!1,error:!1})},message:"Copied to clipboard !!"}),a.a.createElement(Vr.a,{open:m.error,autoHideDuration:3e3,onClose:function(){f({success:!1,error:!1})},message:"Failed to copy!"})),a.a.createElement(se.a,{className:l.content},null!==(c=null!==(s=e.mauid)&&void 0!==s?s:e.mauidError)&&void 0!==c?c:"Not Available"),a.a.createElement(de.a,{className:l.actions},a.a.createElement(me.a,{"data-testid":"get-mauid",variant:"contained",color:"primary",fullWidth:!0,onClick:e.getMauid},"GET MAUID"),a.a.createElement(qr.CopyToClipboard,{disabled:!e.mauid,text:e.mauid,onCopy:g},a.a.createElement(me.a,{disabled:!e.mauid,"data-testid":"clipboard-copy",variant:"contained",color:"primary"},"Copy"))))})),Kr=r(203),Xr=r.n(Kr),Jr=r(202),Zr=r.n(Jr),zr=function(){var e=Object(n.useState)({isWatching:!1,isLoading:!1}),t=Object(u.a)(e,2),r=t[0],a=t[1];return[r,function(){return Ee.a.requestLocationPermission("We would like to display the location of your device.").then((function(){a({isWatching:!0,isLoading:!0});var e=setTimeout((function(){a({isWatching:!1,isLoading:!1,error:"Timeout"})}),6e3);navigator.geolocation.getCurrentPosition((function(t){clearTimeout(e);var r=t.coords,n=r.longitude,o=r.latitude;a({isWatching:!0,isLoading:!1,location:{latitude:o,longitude:n}})}),(function(t){clearTimeout(e),a({isWatching:!1,isLoading:!1,error:"Location Disabled"})}),{enableHighAccuracy:!0})})).catch((function(e){return a({isWatching:!1,isLoading:!1,error:e})}))},function(){a({isWatching:!1})}]},_r=Object(i.a)((function(e){return{card:{alignItems:"center",justifyContent:"center",marginTop:"40px"},content:{height:"50%",justifyContent:"center",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"},locationContainer:{height:"70%",display:"flex",flexDirection:"column",justifyContent:"space-around","& div .label":{display:"inline",padding:".2em .6em .3em",fontSize:"75%",fontWeight:700,lineHeight:1,textAlign:"center",whiteSpace:"nowrap",verticalAlign:"baseline",borderRadius:".25em"}},actions:{justifyContent:"center"},button:{},disabled:{opacity:.5,color:"#fff !important",backgroundColor:"".concat(e.color.primary," !important")},buttonProgress:{position:"absolute",top:"calc(50% - 10px)",left:"calc(50% - 10px)"}}})),$r=function(e){var t=_r(),r=zr(),o=Object(u.a)(r,3),i=o[0],c=o[1],s=o[2];return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Location","Screen","Page","")})),a.a.createElement(ve,{className:t.card},a.a.createElement(se.a,{className:t.content},i.error&&a.a.createElement("div",null,"Error: ",i.error),i.isLoading&&a.a.createElement(le.a,{size:20,className:t.buttonProgress}),i.location&&i.isWatching&&a.a.createElement("div",{className:t.locationContainer,"data-testid":"location-container"},a.a.createElement("div",null,a.a.createElement("span",{className:"label"},"Longitude:"),i.location.longitude),a.a.createElement("div",null,a.a.createElement("span",{className:"label"},"Latitude:"),i.location.latitude))),a.a.createElement(de.a,{className:t.actions},a.a.createElement(me.a,{"data-testid":"turn-on",startIcon:a.a.createElement(Zr.a,null),variant:"contained",color:"primary",disabled:i.isWatching,className:Object(f.a)(t.button,Object(l.a)({},t.disabled,i.isWatching)),onClick:c},"TURN ON"),a.a.createElement(me.a,{"data-testid":"turn-off",startIcon:a.a.createElement(Xr.a,null),variant:"contained",color:"primary",onClick:s,disabled:!i.isWatching,className:Object(f.a)(t.button,Object(l.a)({},t.disabled,!i.isWatching))},"TURN OFF")))},en=Object(i.a)((function(e){return{root:{height:300,width:"100%"},content:{height:"50%",justifyContent:"space-between",display:"flex",flexDirection:"column",alignItems:"center",fontSize:18,color:e.color.primary,fontWeight:"bold"}}})),tn=function(){var e=en();return Object(n.useEffect)((function(){he(ge.MAAnalyticsEventType.appear,ge.MAAnalyticsActionType.open,"Window actions","Screen","Page","")})),a.a.createElement(be.a,{className:e.root},a.a.createElement(se.a,{className:e.content},a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){window.alert("This is window alert!")}},"Show Window Alert"),a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){window.confirm("This is window confirm!")}},"Show Window Confirm"),a.a.createElement(me.a,{variant:"contained",color:"primary",onClick:function(){window.prompt("This is window prompt!","sure!")}},"Show Window Prompt")))},rn={navLink:"/landing",label:"Home"},nn={navLink:"/local_storage",label:"Local Storage"},an={navLink:"/fetch_id",label:"Fetch Unique ID"},on={navLink:"/device_location",label:"Device Location"},cn={navLink:"/auth_token",label:"Auth token"},sn={navLink:"/user_detail",label:"User Details"},ln={navLink:"/chatbot",label:"Message"},un={navLink:"/window_actions",label:"Window Actions"},pn={navLink:"/uri_schemes",label:"URI Schemes"},dn={navLink:"/event_listener",label:"Event Listener"},mn={navLink:"/media",label:"Media"},fn={navLink:"/share",label:"Share"},gn={navLink:"/ads",label:"Ads"},En={navLink:"/camera",label:"Camera"},hn={navLink:"/file_download",label:"File Download"},bn={navLink:"/file_upload",label:"File Upload"},yn={navLink:"/gifs",label:"GIF's & WebP"},vn={navLink:"/secure-storage",label:"SecureStorage"},Sn={navLink:"/close-confirm-alert",label:"Close Feature"},An={navLink:"/universal-bridge",label:"Universal Bridge"},Cn={navLink:"/in-app-purchase",label:"Purchase"},On={navLink:"/color-theme",label:"Color Theme"},wn=[{navLink:"/index.html",label:"Home"},{navLink:"/miniapp/index.html",label:"Home"},{navLink:"/",label:"Home"},rn,nn,an,on,cn,sn,ln,un,pn,dn,mn,fn,gn,En,hn,bn,yn,vn,Sn,An,Cn,On],Nn=[{icon:a.a.createElement(T.a,null),label:rn.label,navLink:rn.navLink,element:a.a.createElement(Yt,null)}],Pn=[{icon:a.a.createElement(ae.a,null),label:nn.label,navLink:nn.navLink,element:a.a.createElement(Jt,null)},{icon:a.a.createElement(N.a,null),label:an.label,navLink:an.navLink,element:a.a.createElement(Yr,null)},{icon:a.a.createElement(M.a,null),label:on.label,navLink:on.navLink,element:a.a.createElement($r,null)},{icon:a.a.createElement(ie.a,null),label:cn.label,navLink:cn.navLink,element:a.a.createElement(qe,null)},{icon:a.a.createElement(Y.a,null),label:sn.label,navLink:sn.navLink,element:a.a.createElement(Gr,null)},{icon:a.a.createElement(v.a,null),label:ln.label,navLink:ln.navLink,element:a.a.createElement(br,null)},{icon:a.a.createElement(U.a,null),label:un.label,navLink:un.navLink,element:a.a.createElement(tn,null)},{icon:a.a.createElement(R.a,null),label:pn.label,navLink:pn.navLink,element:a.a.createElement(Ir,null)},{icon:a.a.createElement(O.a,null),label:dn.label,navLink:dn.navLink,element:a.a.createElement(ze,null)},{icon:a.a.createElement(D.a,null),label:mn.label,navLink:mn.navLink,element:a.a.createElement($t,null)},{icon:a.a.createElement(ee.a,null),label:fn.label,navLink:fn.navLink,element:a.a.createElement(Or,null)},{icon:a.a.createElement(W.a,null),label:gn.label,navLink:gn.navLink,element:a.a.createElement(Oe,null)},{icon:a.a.createElement(X.a,null),label:En.label,navLink:En.navLink,element:a.a.createElement(Ye,null)},{icon:a.a.createElement(A.a,null),label:hn.label,navLink:hn.navLink,element:a.a.createElement(et,null)},{icon:a.a.createElement(b.a,null),label:bn.label,navLink:bn.navLink,element:a.a.createElement(st,null)},{icon:a.a.createElement(L.a,null),label:yn.label,navLink:yn.navLink,element:a.a.createElement(pt,null)},{icon:a.a.createElement(Z.a,null),label:vn.label,navLink:vn.navLink,element:a.a.createElement(Ar,null)},{icon:a.a.createElement(G.a,null),label:Sn.label,navLink:Sn.navLink,element:a.a.createElement(Be,null)},{icon:a.a.createElement(_.a,null),label:An.label,navLink:An.navLink,element:a.a.createElement(Nr,null)},{icon:a.a.createElement(re.a,null),label:Cn.label,navLink:Cn.navLink,element:a.a.createElement(vt,null)},{icon:a.a.createElement(q.a,null),label:On.label,navLink:On.navLink,element:a.a.createElement(Je,null)}],Ln=Nn.concat(Pn.sort((function(e,t){return e.label.localeCompare(t.label)}))),In=r(425),Tn=r(427),jn=r(426),Un=r(229),Fn=r.n(Un),Rn=r(230),xn=r.n(Rn),Wn=r(449),Bn=r(437),Mn=r(424),kn=r(423),Dn=r(435),Hn=r(228),Gn=r.n(Hn),Vn=r(227),qn=r.n(Vn),Qn=r(155),Yn=r.n(Qn),Kn=Object(i.a)((function(e){return{drawer:{},drawerPaper:Object(l.a)({},e.breakpoints.up("sm"),{height:"calc(100% - 64px)",top:"64px !important"}),drawerPaperContent:{height:"100%",width:250,display:"flex",flexDirection:"column",justifyContent:"space-between"},drawerPaperContentTopList:Object(l.a)({height:"calc(100% - 70px)",overflowY:"scroll"},e.breakpoints.down("xs"),{height:"100%"}),drawerPaperShrink:{width:"70px",overflowX:"hidden"},shrinkedListItem:{paddingLeft:"24px"},NavListRoot:{paddingTop:1},tooltip:{backgroundColor:e.color.primary},tooltipArrow:{color:e.color.primary},navLink:{height:56},activeNavLink:{backgroundColor:e.color.primary,color:"white","& .icon":{color:"white"}}}})),Xn=Object(s.b)((function(e,t){return Object(ce.a)({},t,{sdkVersion:e.info.sdkVersion})}),(function(e){return{changeTitle:function(t){return e(function(e){return{type:"SET_CURRENT_PAGE_TITLE",payload:e}}(t))},getHostInfo:function(){return e(qt())}}}))((function(e){Object(n.useEffect)((function(){try{e.getHostInfo()}catch(t){console.log(t)}}),[e]);var t=Kn(),r=Object(p.a)(),o=Object(d.a)(r.breakpoints.down("xs"));o&&(e=Object(ce.a)({},e,{shrinked:!1}));return a.a.createElement(Dn.a,{className:t.drawer,classes:{paper:t.drawerPaper},anchor:"left",variant:o?"temporary":"persistent",open:e.show,onClose:function(t){return e.onOpenClose(t)},onOpen:function(t){return e.onOpenClose(t)}},a.a.createElement("div",{className:Object(f.a)(t.drawerPaperContent,Object(l.a)({},t.drawerPaperShrink,e.shrinked)),role:"presentation"},a.a.createElement(Tr.a,{className:Object(f.a)(t.drawerPaperContentTopList),classes:{root:t.NavListRoot}},e.show&&e.navItems.map((function(r){return function(t,r){var n=e.sdkVersion||"0.0.1";return t=t||"0.0.1",r=r||"10000.0.0",Yn.a.gte(n,t)&&Yn.a.lte(n,r)}(r.supportedAboveSdkVersion,r.supportedBelowSdkVersion)&&a.a.createElement(Wn.a,{key:r.label,arrow:!0,title:e.shrinked?r.label:"",placement:"right",enterDelay:100,classes:{tooltip:t.tooltip,arrow:t.tooltipArrow}},a.a.createElement(dt.a,{button:!0,onClick:function(){e.changeTitle(r.label),o&&e.onOpenClose(void 0)},component:g.b,to:r.navLink,key:r.label,activeclassname:t.activeNavLink,className:Object(f.a)(t.navLink,Object(l.a)({},t.shrinkedListItem,e.shrinked))},a.a.createElement(kn.a,{className:"icon"},r.icon),a.a.createElement(mt.a,{primary:e.shrinked?" ":r.label})))}))),a.a.createElement(Bn.a,{only:["xs"]},a.a.createElement(Tr.a,null,a.a.createElement(Mn.a,null),a.a.createElement(Wn.a,{arrow:!0,title:e.shrinked?"Expand":"",placement:"right",enterDelay:1e3,classes:{tooltip:t.tooltip,arrow:t.tooltipArrow}},a.a.createElement(dt.a,{button:!0,onClick:function(){e.onShrink()},className:Object(f.a)(Object(l.a)({},t.shrinkedListItem,e.shrinked))},a.a.createElement(kn.a,null,e.shrinked?a.a.createElement(qn.a,null):a.a.createElement(Gn.a,null)),a.a.createElement(mt.a,{primary:e.shrinked?"Expand":"Shrink"})))))))})),Jn=Object(i.a)((function(e){return{root:{flexGrow:1},menuButton:{marginRight:e.spacing(2)},title:{}}}));var Zn,zn=Object(s.b)((function(e,t){return Object(ce.a)({},t)}))((Zn=function(e){var t,r=Jn(),o=Object(n.useState)(null!==(t=e.showDrawer)&&void 0!==t&&t),i=Object(u.a)(o,2),c=i[0],s=i[1],l=Object(E.e)(),p=Object(n.useState)(""),d=Object(u.a)(p,2),m=d[0],f=d[1];Object(n.useEffect)((function(){var e,t=null!==(e=wn.find((function(e){return e.navLink===l.pathname})))&&void 0!==e?e:{navLink:l.pathname,label:"Sample MiniApp"};f(t.label)}),[l.pathname]),Object(n.useEffect)((function(){s(e.showDrawer)}),[e.showDrawer]);var g=Object(n.useState)(!1),h=Object(u.a)(g,2),b=h[0],y=h[1],v=function(){var t=!c;e.onDrawerToggle(t),s(t)};return a.a.createElement(n.Fragment,null,a.a.createElement(In.a,{position:"sticky"},a.a.createElement(jn.a,null,a.a.createElement(Tn.a,{edge:"start",className:r.menuButton,color:"inherit","aria-label":"menu",onClick:v,"data-testid":"drawer-toggle-button"},c?a.a.createElement(Fn.a,{"data-testid":"close-icon"}):a.a.createElement(xn.a,{"data-testid":"menu-icon"})),a.a.createElement(ue.a,{variant:"h6",className:r.title},m),a.a.createElement("div",{className:"actions"},e.actions))),a.a.createElement(Xn,{show:c,shrinked:b,onOpenClose:function(e){(!e||"keydown"!==e.type||"Tab"!==e.key&&"Shift"!==e.key)&&v()},onShrink:function(){var t=!b;e.onShrinkToggle(t),y(t)},navItems:e.navItems}))},function(e){var t=Object(E.e)(),r=Object(E.f)(),n=Object(E.g)();return a.a.createElement(Zn,Object.assign({},e,{router:{location:t,navigate:r,params:n}}))})),_n=Object(i.a)((function(e){return{mainContent:{width:"100%",height:"calc(100% - 64px)"},mainContentMobile:{height:"calc(100% - 56px)"},wrapperContainer:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"initial",alignItems:"center"},drawerClosed:{width:"100% !important",marginLeft:"0 !important"},drawerOpen:{width:"calc(100% - ".concat("250px",")"),marginLeft:"250px",transition:e.transitions.create(["margin","width"],{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.enteringScreen})},drawerOpenShrink:{width:"calc(100% - ".concat("70px",")"),marginLeft:"70px",transition:e.transitions.create(["margin","width"],{easing:e.transitions.easing.easeOut,duration:e.transitions.duration.enteringScreen})}}})),$n=function(e){var t,r=_n(),o=Object(p.a)(),i=Object(d.a)(o.breakpoints.down("xs")),c=Object(n.useState)(!1),s=Object(u.a)(c,2),h=s[0],b=s[1],y=Object(n.useState)(!i),v=Object(u.a)(y,2),S=v[0],A=v[1];Object(n.useEffect)((function(){A(!i)}),[i]);return a.a.createElement(g.a,null,a.a.createElement(zn,{showDrawer:S,onDrawerToggle:function(e){A(e)},onShrinkToggle:function(e){b(e)},navItems:Ln}),a.a.createElement("main",{"data-testid":"homepage-main-content",className:Object(f.a)(r.mainContent,(t={},Object(l.a)(t,r.mainContentMobile,i),Object(l.a)(t,r.drawerOpen,!i&&S),Object(l.a)(t,r.drawerClosed,!i&&!S),Object(l.a)(t,r.drawerOpenShrink,!i&&h),t))},a.a.createElement(m.a,{className:r.wrapperContainer},a.a.createElement(E.c,null,Ln.map((function(e){var t;return a.a.createElement(E.a,{key:e.navLink,path:e.navLink,element:null!==(t=e.element)&&void 0!==t?t:function(){return a.a.createElement("div",{"data-testid":"nav-routes",style:{fontSize:"32px",textAlign:"center"}},e.label)}})})),a.a.createElement(E.a,{path:"*",element:Ln[0].element})))))},ea=r(74),ta=r(231),ra={filename:void 0,error:void 0,isLoading:!1},na={title:"Home"},aa={},oa={messageTypes:[{id:pr,name:"Send a message to a single contact"},{id:dr,name:"Send a message to a specific contact"},{id:mr,name:"Send a message to multiple contacts"}]},ia={type:void 0,permissions:[],error:null},ca=Object(ea.b)({setItems:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_SECURE_STORAGE_SUCCESS":return t.type;default:return e}},getItem:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"GET_SECURE_STORAGE_SUCCESS":return t.item;default:return e}},removeItems:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REMOVE_ITEMS_SECURE_STORAGE_SUCCESS":return t.type;default:return e}},size:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"GET_SIZE_SECURE_STORAGE_SUCCESS":return t.size;default:return e}},clear:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"CLEAR_SECURE_STORAGE_SUCCESS":return t.type;default:return e}}}),sa={},la=Object(ea.b)({userName:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_USER_NAME_SUCCESS":return t.userName;default:return e}},profilePhoto:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_PROFILE_PHOTO_SUCCESS":return t.url;default:return e}},contactList:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_CONTACT_LIST_SUCCESS":return t.contacts;default:return e}},accessToken:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_ACCESS_TOKEN_SUCCESS":return t.token;default:return e}},points:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:sa,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_POINTS_SUCCESS":return t.points;default:return e}}}),ua={uniqueId:void 0,messagingUniqueId:void 0,mauid:void 0,uniqueIdError:void 0,messagingUniqueIdError:void 0,mauidError:void 0},pa=Object(ea.b)({message:function(e,t){return"GET_MESSAGE_TYPE"===t.type?Object(ce.a)({},e,{messageTypes:t.payload}):oa},home:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:na,t=arguments.length>1?arguments[1]:void 0;return void 0!==t&&"SET_CURRENT_PAGE_TITLE"===t.type?Object(ce.a)({},e,{title:t.payload}):e},permissions:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ia,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_PERMISSIONS_SUCCESS":var r=t.permissions.filter((function(e){return e.status===ge.CustomPermissionStatus.DENIED})).map((function(e){return e.name})),n=t.permissions.filter((function(e){return e.status===ge.CustomPermissionStatus.ALLOWED})).map((function(e){return e.name})),a=e.permissions.concat(n).filter((function(e){return r.indexOf(e)<=-1}));return{type:"REQUEST_PERMISSIONS_SUCCESS",permissions:a,error:t.error};case"REQUEST_PERMISSIONS_FAILURE":return Object(ce.a)({},ia,{error:t.error});default:return e}},user:la,uuid:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ua,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"SET_UNIQUE_ID"===t.type?Object(ce.a)({},ua,{uniqueId:t.payload}):"SET_MESSAGING_UNIQUE_ID"===t.type?Object(ce.a)({},ua,{messagingUniqueId:t.payload}):"SET_MAUID"===t.type?Object(ce.a)({},ua,{mauid:t.payload}):"MESSAGING_UNIQU_ID_FETCH_ERROR"===t.type?Object(ce.a)({},ua,{messagingUniqueIdError:t.error}):"MAUID_FETCH_ERROR"===t.type?Object(ce.a)({},ua,{mauidError:t.error}):"UNIQUE_ID_FETCH_ERROR"===t.type?Object(ce.a)({},ua,{uniqueIdError:t.error}):e},info:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:aa,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS":return t.info;default:return e}},file:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ra,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return"FILE_DOWNLOAD_INIT"===t.type?Object(ce.a)({},ra,{isLoading:!0}):"FILE_DOWNLOAD_SUCCESS"===t.type?Object(ce.a)({},ra,{filename:t.filename}):"FILE_DOWNLOAD_FAILURE"===t.type?Object(ce.a)({},ra,{error:t.error}):e},secureStorage:ca,secureStorageStatus:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"ON_SECURE_STORAGE_READY_SUCCESS":return{isReady:!0,error:null};case"ON_SECURE_STORAGE_READY_FAILURE":return Object(ce.a)({isReady:!1,error:t.error},e);default:return Object(ce.a)({isReady:!1,error:null},e)}}}),da=Object(ea.c)(pa,Object(ea.a)(ta.a)),ma=r(232),fa=r(134),ga=Object(ma.a)({palette:{primary:{main:"#bf0000"},secondary:fa.a},color:{primary:"#bf0000",secondary:"lightgrey"}}),Ea=Object(i.a)((function(e){return{App:{width:"100%",textAlign:"center"}}}));var ha=function(){var e=Ea();return a.a.createElement(s.a,{store:da},a.a.createElement(c.a,{theme:ga},a.a.createElement("div",{className:e.App},a.a.createElement($n,null))))};Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));var ba=document.getElementById("root");Object(o.createRoot)(ba).render(a.a.createElement(a.a.StrictMode,null,a.a.createElement(ha,null))),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))},4:function(e,t,r){e.exports=function(){var e,t,r,n=(e=function(e,r){(function(e){(function(){"use strict";function e(e){if(e>2147483647)throw new RangeError('The value "'+e+'" is invalid for option "size"');var t=new Uint8Array(e);return t.__proto__=n.prototype,t}function n(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return i(e)}return a(e,t,r)}function a(t,r,a){if("string"==typeof t)return function(t,r){if("string"==typeof r&&""!==r||(r="utf8"),!n.isEncoding(r))throw new TypeError("Unknown encoding: "+r);var a=0|l(t,r),o=e(a),i=o.write(t,r);return i!==a&&(o=o.slice(0,i)),o}(t,r);if(ArrayBuffer.isView(t))return c(t);if(null==t)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(W(t,ArrayBuffer)||t&&W(t.buffer,ArrayBuffer))return function(e,t,r){if(t<0||e.byteLength=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+2147483647..toString(16)+" bytes");return 0|e}function l(e,t){if(n.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||W(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var r=e.length,a=arguments.length>2&&!0===arguments[2];if(!a&&0===r)return 0;for(var o=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return R(e).length;default:if(o)return a?-1:F(e).length;t=(""+t).toLowerCase(),o=!0}}function u(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return w(this,t,r);case"utf8":case"utf-8":return S(this,t,r);case"ascii":return C(this,t,r);case"latin1":case"binary":return O(this,t,r);case"base64":return v(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return N(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function p(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function d(e,t,r,a,o){if(0===e.length)return-1;if("string"==typeof r?(a=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),B(r=+r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=n.from(t,a)),n.isBuffer(t))return 0===t.length?-1:m(e,t,r,a,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):m(e,[t],r,a,o);throw new TypeError("val must be string, number or Buffer")}function m(e,t,r,n,a){var o,i=1,c=e.length,s=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;i=2,c/=2,s/=2,r/=2}function l(e,t){return 1===i?e[t]:e.readUInt16BE(t*i)}if(a){var u=-1;for(o=r;oc&&(r=c-s),o=r;o>=0;o--){for(var p=!0,d=0;da&&(n=a):n=a;var o=t.length;n>o/2&&(n=o/2);for(var i=0;i>8,a=r%256,o.push(a),o.push(n);return o}(t,e.length-r),e,r,n)}function v(e,t,r){return 0===t&&r===e.length?q.fromByteArray(e):q.fromByteArray(e.slice(t,r))}function S(e,t,r){r=Math.min(e.length,r);for(var n=[],a=t;a239?4:l>223?3:l>191?2:1;if(a+p<=r)switch(p){case 1:l<128&&(u=l);break;case 2:128==(192&(o=e[a+1]))&&(s=(31&l)<<6|63&o)>127&&(u=s);break;case 3:o=e[a+1],i=e[a+2],128==(192&o)&&128==(192&i)&&(s=(15&l)<<12|(63&o)<<6|63&i)>2047&&(s<55296||s>57343)&&(u=s);break;case 4:o=e[a+1],i=e[a+2],c=e[a+3],128==(192&o)&&128==(192&i)&&128==(192&c)&&(s=(15&l)<<18|(63&o)<<12|(63&i)<<6|63&c)>65535&&s<1114112&&(u=s)}null===u?(u=65533,p=1):u>65535&&(u-=65536,n.push(u>>>10&1023|55296),u=56320|1023&u),n.push(u),a+=p}return function(e){var t=e.length;if(t<=A)return String.fromCharCode.apply(String,e);for(var r="",n=0;nt&&(e+=" ... "),""},n.prototype.compare=function(e,t,r,a,o){if(W(e,Uint8Array)&&(e=n.from(e,e.offset,e.byteLength)),!n.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===a&&(a=0),void 0===o&&(o=this.length),t<0||r>e.length||a<0||o>this.length)throw new RangeError("out of range index");if(a>=o&&t>=r)return 0;if(a>=o)return-1;if(t>=r)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(a>>>=0),c=(r>>>=0)-(t>>>=0),s=Math.min(i,c),l=this.slice(a,o),u=e.slice(t,r),p=0;p>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var a=this.length-t;if((void 0===r||r>a)&&(r=a),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var o=!1;;)switch(n){case"hex":return f(this,e,t,r);case"utf8":case"utf-8":return g(this,e,t,r);case"ascii":return E(this,e,t,r);case"latin1":case"binary":return h(this,e,t,r);case"base64":return b(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return y(this,e,t,r);default:if(o)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),o=!0}},n.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function C(e,t,r){var n="";r=Math.min(e.length,r);for(var a=t;aa)&&(r=a);for(var o="",i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,r,a,o,i){if(!n.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function I(e,t,r,n,a,o){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function T(e,t,r,n,a){return t=+t,r>>>=0,a||I(e,0,r,4),_.write(e,t,r,n,23,4),r+4}function j(e,t,r,n,a){return t=+t,r>>>=0,a||I(e,0,r,8),_.write(e,t,r,n,52,8),r+8}n.prototype.slice=function(e,t){var r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||P(e,t,this.length);for(var n=this[e],a=1,o=0;++o>>=0,t>>>=0,r||P(e,t,this.length);for(var n=this[e+--t],a=1;t>0&&(a*=256);)n+=this[e+--t]*a;return n},n.prototype.readUInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),this[e]},n.prototype.readUInt16LE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]|this[e+1]<<8},n.prototype.readUInt16BE=function(e,t){return e>>>=0,t||P(e,2,this.length),this[e]<<8|this[e+1]},n.prototype.readUInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},n.prototype.readUInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},n.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||P(e,t,this.length);for(var n=this[e],a=1,o=0;++o=(a*=128)&&(n-=Math.pow(2,8*t)),n},n.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||P(e,t,this.length);for(var n=t,a=1,o=this[e+--n];n>0&&(a*=256);)o+=this[e+--n]*a;return o>=(a*=128)&&(o-=Math.pow(2,8*t)),o},n.prototype.readInt8=function(e,t){return e>>>=0,t||P(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},n.prototype.readInt16LE=function(e,t){e>>>=0,t||P(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},n.prototype.readInt16BE=function(e,t){e>>>=0,t||P(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},n.prototype.readInt32LE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},n.prototype.readInt32BE=function(e,t){return e>>>=0,t||P(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},n.prototype.readFloatLE=function(e,t){return e>>>=0,t||P(e,4,this.length),_.read(this,e,!0,23,4)},n.prototype.readFloatBE=function(e,t){return e>>>=0,t||P(e,4,this.length),_.read(this,e,!1,23,4)},n.prototype.readDoubleLE=function(e,t){return e>>>=0,t||P(e,8,this.length),_.read(this,e,!0,52,8)},n.prototype.readDoubleBE=function(e,t){return e>>>=0,t||P(e,8,this.length),_.read(this,e,!1,52,8)},n.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||L(this,e,t,r,Math.pow(2,8*r)-1,0);var a=1,o=0;for(this[t]=255&e;++o>>=0,r>>>=0,n||L(this,e,t,r,Math.pow(2,8*r)-1,0);var a=r-1,o=1;for(this[t+a]=255&e;--a>=0&&(o*=256);)this[t+a]=e/o&255;return t+r},n.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,1,255,0),this[t]=255&e,t+1},n.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},n.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},n.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},n.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},n.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var a=Math.pow(2,8*r-1);L(this,e,t,r,a-1,-a)}var o=0,i=1,c=0;for(this[t]=255&e;++o>0)-c&255;return t+r},n.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var a=Math.pow(2,8*r-1);L(this,e,t,r,a-1,-a)}var o=r-1,i=1,c=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===c&&0!==this[t+o+1]&&(c=1),this[t+o]=(e/i>>0)-c&255;return t+r},n.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},n.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},n.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},n.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},n.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},n.prototype.writeFloatLE=function(e,t,r){return T(this,e,t,!0,r)},n.prototype.writeFloatBE=function(e,t,r){return T(this,e,t,!1,r)},n.prototype.writeDoubleLE=function(e,t,r){return j(this,e,t,!0,r)},n.prototype.writeDoubleBE=function(e,t,r){return j(this,e,t,!1,r)},n.prototype.copy=function(e,t,r,a){if(!n.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),a||0===a||(a=this.length),t>=e.length&&(t=e.length),t||(t=0),a>0&&a=this.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,a),t);return o},n.prototype.fill=function(e,t,r,a){if("string"==typeof e){if("string"==typeof t?(a=t,t=0,r=this.length):"string"==typeof r&&(a=r,r=this.length),void 0!==a&&"string"!=typeof a)throw new TypeError("encoding must be a string");if("string"==typeof a&&!n.isEncoding(a))throw new TypeError("Unknown encoding: "+a);if(1===e.length){var o=e.charCodeAt(0);("utf8"===a&&o<128||"latin1"===a)&&(e=o)}}else"number"==typeof e&&(e&=255);if(t<0||this.length>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&r<57344){if(!a){if(r>56319){(t-=3)>-1&&o.push(239,191,189);continue}if(i+1===n){(t-=3)>-1&&o.push(239,191,189);continue}a=r;continue}if(r<56320){(t-=3)>-1&&o.push(239,191,189),a=r;continue}r=65536+(a-55296<<10|r-56320)}else a&&(t-=3)>-1&&o.push(239,191,189);if(a=null,r<128){if((t-=1)<0)break;o.push(r)}else if(r<2048){if((t-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function R(e){return q.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function x(e,t,r,n){for(var a=0;a=t.length||a>=e.length);++a)t[a+r]=e[a];return a}function W(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function B(e){return e!=e}}).call(this)}).call(this,n({}).Buffer)},function(r){return t||e(t={exports:{},parent:r},t.exports),t.exports}),a={};Object.defineProperty(a,"__esModule",{value:!0}),a.MiniAppSecureStorageEvents=void 0,(r=a.MiniAppSecureStorageEvents||(a.MiniAppSecureStorageEvents={})).onReady="miniappsecurestorageready",r.onLoadError="miniappsecurestorageloaderror";var o={};Object.defineProperty(o,"__esModule",{value:!0}),o.AccessTokenData=void 0,o.AccessTokenData=function(e){this.token=e.token,this.validUntil=new Date(e.validUntil),this.scopes=new c(e.scopes)};var i,c=function(e){this.audience=e.audience,this.scopes=e.scopes},s={},l=this&&this.__extends||(i=function(e,t){return(i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(s,"__esModule",{value:!0}),s.MiniAppError=void 0;var u=function(e){function t(r){var n=e.call(this)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.name=r.type,n.message=r.message,n}return l(t,e),t}(Error);s.MiniAppError=u;var p,d,m={},f=this&&this.__extends||(p=function(e,t){return(p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(m,"__esModule",{value:!0}),m.parseAuthError=m.AuthorizationFailureError=m.ScopesNotSupportedError=m.AudienceNotSupportedError=void 0,function(e){e.AudienceNotSupportedError="AudienceNotSupportedError",e.ScopesNotSupportedError="ScopesNotSupportedError",e.AuthorizationFailureError="AuthorizationFailureError"}(d||(d={}));var g=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="The value passed for 'audience' is not supported.",n}return f(t,e),t}(s.MiniAppError);m.AudienceNotSupportedError=g;var E=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="The value passed for 'scopes' is not supported.",n}return f(t,e),t}(s.MiniAppError);m.ScopesNotSupportedError=E;var h=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n}return f(t,e),t}(s.MiniAppError);m.AuthorizationFailureError=h,m.parseAuthError=function(e){switch(d[e.type]){case d.AuthorizationFailureError:return new h(e);case d.AudienceNotSupportedError:return new g(e);case d.ScopesNotSupportedError:return new E(e);default:return}};var b,y,v={},S=this&&this.__extends||(b=function(e,t){return(b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}b(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(v,"__esModule",{value:!0}),v.parseDownloadError=v.DownloadHttpError=v.SaveFailureError=v.InvalidUrlError=v.DownloadFailedError=void 0,function(e){e.DownloadFailedError="DownloadFailedError",e.InvalidUrlError="InvalidUrlError",e.SaveFailureError="SaveFailureError",e.DownloadHttpError="DownloadHttpError"}(y||(y={}));var A=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Failed to download the file.",n}return S(t,e),t}(s.MiniAppError);v.DownloadFailedError=A;var C=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="The provided URL is invalid.",n}return S(t,e),t}(s.MiniAppError);v.InvalidUrlError=C;var O=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Failed to save the file to the device.",n}return S(t,e),t}(s.MiniAppError);v.SaveFailureError=O;var w=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.code=r.code,n.message=r.message,n}return S(t,e),t}(s.MiniAppError);v.DownloadHttpError=w,v.parseDownloadError=function(e){switch(y[e.type]){case y.DownloadFailedError:return new A(e);case y.InvalidUrlError:return new C(e);case y.SaveFailureError:return new O(e);case y.DownloadHttpError:return new w(e);default:return}};var N,P,L={},I=this&&this.__extends||(N=function(e,t){return(N=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}N(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(L,"__esModule",{value:!0}),L.parseStorageError=L.SecureStorageIOError=L.SecureStorageUnavailableError=L.SecureStorageBusyError=L.SecureStorageFullError=void 0,function(e){e.SecureStorageFullError="SecureStorageFullError",e.SecureStorageBusyError="SecureStorageBusyError",e.SecureStorageUnavailableError="SecureStorageUnavailableError",e.SecureStorageIOError="SecureStorageIOError"}(P||(P={}));var T=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Storage limit is exceeded or full already",n}return I(t,e),t}(s.MiniAppError);L.SecureStorageFullError=T;var j=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Storage is busy, please try again",n}return I(t,e),t}(s.MiniAppError);L.SecureStorageBusyError=j;var U=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Storage is not yet loaded or failed to load",n}return I(t,e),t}(s.MiniAppError);L.SecureStorageUnavailableError=U;var F=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Unable to read/write changes in Storage.",n}return I(t,e),t}(s.MiniAppError);L.SecureStorageIOError=F,L.parseStorageError=function(e){switch(P[e.type]){case P.SecureStorageFullError:return new T(e);case P.SecureStorageBusyError:return new j(e);case P.SecureStorageUnavailableError:return new U(e);case P.SecureStorageIOError:return new F(e);default:return}};var R,x,W={},B=this&&this.__extends||(R=function(e,t){return(R=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])})(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function r(){this.constructor=e}R(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)});Object.defineProperty(W,"__esModule",{value:!0}),W.parseInAppPurchaseError=W.UserCancelledPurchaseError=W.ProductPurchasedAlreadyError=W.ProductNotFoundError=W.ConsumeFailedError=W.PurchaseFailedError=void 0,function(e){e.PurchaseFailedError="PurchaseFailedError",e.ConsumeFailedError="ConsumeFailedError",e.ProductNotFoundError="ProductNotFoundError",e.ProductPurchasedAlreadyError="ProductPurchasedAlreadyError",e.UserCancelledPurchaseError="UserCancelledPurchaseError"}(x||(x={}));var M=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Product Purchase failed, please try again later",n}return B(t,e),t}(s.MiniAppError);W.PurchaseFailedError=M;var k=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Unable to consume the product, please make sure the product is purchased already",n}return B(t,e),t}(s.MiniAppError);W.ConsumeFailedError=k;var D=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="Unable to find the ProductId. Please make sure that the productId is registered in Google Play",n}return B(t,e),t}(s.MiniAppError);W.ProductNotFoundError=D;var H=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="This Product is purchased already",n}return B(t,e),t}(s.MiniAppError);W.ProductPurchasedAlreadyError=H;var G=function(e){function t(r){var n=e.call(this,r)||this;return n.errorInput=r,Object.setPrototypeOf(n,t.prototype),n.message="User cancelled the purchase",n}return B(t,e),t}(s.MiniAppError);W.UserCancelledPurchaseError=G,W.parseInAppPurchaseError=function(e){switch(x[e.type]){case x.PurchaseFailedError:return new M(e);case x.ConsumeFailedError:return new k(e);case x.ProductNotFoundError:return new D(e);case x.ProductPurchasedAlreadyError:return new H(e);case x.UserCancelledPurchaseError:return new G(e);default:return}};var V={};Object.defineProperty(V,"__esModule",{value:!0}),V.UserCancelledPurchaseError=V.ProductPurchasedAlreadyError=V.ProductNotFoundError=V.ConsumeFailedError=V.PurchaseFailedError=V.SecureStorageIOError=V.SecureStorageUnavailableError=V.SecureStorageBusyError=V.SecureStorageFullError=V.ScopesNotSupportedError=V.SaveFailureError=V.parseMiniAppError=V.MiniAppError=V.InvalidUrlError=V.DownloadHttpError=V.DownloadFailedError=V.AudienceNotSupportedError=V.AuthorizationFailureError=void 0,Object.defineProperty(V,"AuthorizationFailureError",{enumerable:!0,get:function(){return m.AuthorizationFailureError}}),Object.defineProperty(V,"AudienceNotSupportedError",{enumerable:!0,get:function(){return m.AudienceNotSupportedError}}),Object.defineProperty(V,"ScopesNotSupportedError",{enumerable:!0,get:function(){return m.ScopesNotSupportedError}}),Object.defineProperty(V,"DownloadFailedError",{enumerable:!0,get:function(){return v.DownloadFailedError}}),Object.defineProperty(V,"DownloadHttpError",{enumerable:!0,get:function(){return v.DownloadHttpError}}),Object.defineProperty(V,"InvalidUrlError",{enumerable:!0,get:function(){return v.InvalidUrlError}}),Object.defineProperty(V,"SaveFailureError",{enumerable:!0,get:function(){return v.SaveFailureError}}),Object.defineProperty(V,"SecureStorageFullError",{enumerable:!0,get:function(){return L.SecureStorageFullError}}),Object.defineProperty(V,"SecureStorageBusyError",{enumerable:!0,get:function(){return L.SecureStorageBusyError}}),Object.defineProperty(V,"SecureStorageUnavailableError",{enumerable:!0,get:function(){return L.SecureStorageUnavailableError}}),Object.defineProperty(V,"SecureStorageIOError",{enumerable:!0,get:function(){return L.SecureStorageIOError}}),Object.defineProperty(V,"PurchaseFailedError",{enumerable:!0,get:function(){return W.PurchaseFailedError}}),Object.defineProperty(V,"ConsumeFailedError",{enumerable:!0,get:function(){return W.ConsumeFailedError}}),Object.defineProperty(V,"ProductNotFoundError",{enumerable:!0,get:function(){return W.ProductNotFoundError}}),Object.defineProperty(V,"ProductPurchasedAlreadyError",{enumerable:!0,get:function(){return W.ProductPurchasedAlreadyError}}),Object.defineProperty(V,"UserCancelledPurchaseError",{enumerable:!0,get:function(){return W.UserCancelledPurchaseError}}),Object.defineProperty(V,"MiniAppError",{enumerable:!0,get:function(){return s.MiniAppError}}),V.parseMiniAppError=function(e){try{var r=JSON.parse(e);return(0,m.parseAuthError)(r)||(0,v.parseDownloadError)(r)||(0,L.parseStorageError)(r)||(0,W.parseInAppPurchaseError)(r)||new s.MiniAppError(r)}catch(t){return console.error(t),new s.MiniAppError({type:"MiniAppError",message:"Failed to parse the error: "+e})}};for(var q={toByteArray:function(e){var t,r,n=function(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}(e),a=n[0],o=n[1],i=new K(function(e,t,r){return 3*(t+r)/4-r}(0,a,o)),c=0,s=o>0?a-4:a;for(r=0;r>16&255,i[c++]=t>>8&255,i[c++]=255&t;return 2===o&&(t=Y[e.charCodeAt(r)]<<2|Y[e.charCodeAt(r+1)]>>4,i[c++]=255&t),1===o&&(t=Y[e.charCodeAt(r)]<<10|Y[e.charCodeAt(r+1)]<<4|Y[e.charCodeAt(r+2)]>>2,i[c++]=t>>8&255,i[c++]=255&t),i},fromByteArray:function(e){for(var t,r=e.length,n=r%3,a=[],o=0,i=r-n;oi?i:o+16383));return 1===n?(t=e[r-1],a.push(Q[t>>2]+Q[t<<4&63]+"==")):2===n&&(t=(e[r-2]<<8)+e[r-1],a.push(Q[t>>10]+Q[t>>4&63]+Q[t<<2&63]+"=")),a.join("")}},Q=[],Y=[],K="undefined"!=typeof Uint8Array?Uint8Array:Array,X="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",J=0,Z=X.length;J>18&63]+Q[a>>12&63]+Q[a>>6&63]+Q[63&a]);return o.join("")}Y["-".charCodeAt(0)]=62,Y["_".charCodeAt(0)]=63;var _={read:function(e,t,r,n,a){var o,i,c=8*a-n-1,s=(1<>1,u=-7,p=r?a-1:0,d=r?-1:1,m=e[t+p];for(p+=d,o=m&(1<<-u)-1,m>>=-u,u+=c;u>0;o=256*o+e[t+p],p+=d,u-=8);for(i=o&(1<<-u)-1,o>>=-u,u+=n;u>0;i=256*i+e[t+p],p+=d,u-=8);if(0===o)o=1-l;else{if(o===s)return i?NaN:1/0*(m?-1:1);i+=Math.pow(2,n),o-=l}return(m?-1:1)*i*Math.pow(2,o-n)},write:function(e,t,r,n,a,o){var i,c,s,l=8*o-a-1,u=(1<>1,d=23===a?Math.pow(2,-24)-Math.pow(2,-77):0,m=n?0:o-1,f=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(c=isNaN(t)?1:0,i=u):(i=Math.floor(Math.log(t)/Math.LN2),t*(s=Math.pow(2,-i))<1&&(i--,s*=2),(t+=i+p>=1?d/s:d*Math.pow(2,1-p))*s>=2&&(i++,s/=2),i+p>=u?(c=0,i=u):i+p>=1?(c=(t*s-1)*Math.pow(2,a),i+=p):(c=t*Math.pow(2,p-1)*Math.pow(2,a),i=0));a>=8;e[r+m]=255&c,m+=f,c/=256,a-=8);for(i=i<0;e[r+m]=255&i,m+=f,i/=256,l-=8);e[r+m-f]|=128*g}},$={};(function(e){(function(){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt?(null==e?void 0:e.substring(0,t-1))+"\u2026":e}function p(r){var n=e.from(r,"base64").toString("utf8").replace(/\\(\d{3})/g,(function(e,t){return String.fromCharCode(function(e){return Number.parseInt(e,8)}(t))})),a=JSON.stringify(n),o=a.replace(/\\\\/g,"\\");return!0===function(e){try{JSON.parse(e)}catch(t){return!1}return!0}(o)?JSON.parse(o):JSON.parse(a)}$.MiniAppBridge=s}).call(this)}).call(this,n({}).Buffer);var ee={};Object.defineProperty(ee,"__esModule",{value:!0}),ee.MiniAppSDKLogger=void 0;var te=function(){function e(e){this.logger=e}return e.prototype.logOnConsole=function(e,t){ne(e).apply(null,t)},e.prototype.log=function(e,t){this.lastLog={icon:e.icon,messageType:e.type,message:t},this.logger.log(e.icon,e.type,t),this.logOnConsole(e,t)},e}();ee.MiniAppSDKLogger=te;var re=function(){function e(e,t){this.type=e,this.icon=t}return e.debug=new e("debug","\ud83d\udcd8"),e.log=new e("log","\ud83d\udcd7"),e.warn=new e("warning","\ud83d\udcd9"),e.error=new e("error","\ud83d\udcd5"),e}();function ne(e){switch(e){case re.debug:return ce;case re.warn:return oe;case re.error:return ie;default:return ae}}var ae=console.log,oe=console.warn,ie=console.error,ce=console.debug;function se(e,t){var r=function(){if("undefined"!=typeof window)return window.MiniAppSDKLogger}();void 0!==r?r.log(e,t):ne(e).apply(null,t)}console.log=function(){for(var e=[],t=0;t ({\n root: {\n background: theme.color.secondary,\n height: (props) => props.height || 300,\n maxWidth: 500,\n width: '95%',\n },\n}));\n\ntype CardType = {\n height?: number | string,\n children: React.Node,\n className?: string,\n};\n\nconst GreyCard = (props: CardType) => {\n const classes = useStyles(props);\n return (\n \n {props.children}\n \n );\n};\n\nexport default GreyCard;\n","import React, { useReducer, useState, useEffect } from 'react';\n\nimport {\n Button,\n CardActions,\n CardContent,\n CircularProgress,\n Paper,\n TextField,\n Typography,\n makeStyles,\n} from '@material-ui/core';\nimport MiniApp, {\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\n\nimport GreyCard from '../components/GreyCard';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n content: {\n height: 'auto',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n paper: {\n width: '80%',\n paddingBottom: 10,\n marginBottom: 20,\n '&:first-child': {\n marginTop: 20,\n },\n },\n actions: {\n justifyContent: 'center',\n },\n error: {\n marginTop: 10,\n },\n textfield: {\n backgroundColor: '#ffffff',\n width: '100%',\n },\n}));\n\ntype State = {\n isLoading: boolean,\n error?: ?string,\n reward?: {\n amount: number,\n },\n};\n\nexport const initialState = {\n isLoading: false,\n error: null,\n};\n\n// $FlowFixMe\nexport const dataFetchReducer = (state: State, action: Action) => {\n switch (action.type) {\n case 'LOADING':\n return {\n ...state,\n isLoading: true,\n error: null,\n };\n case 'SUCCESS':\n return {\n ...state,\n isLoading: false,\n error: null,\n reward: action.rewardItem,\n };\n case 'FAILURE':\n return {\n ...initialState,\n isLoading: false,\n error: action.error,\n };\n default:\n throw Error('Unknown action type');\n }\n};\n\nfunction Ads() {\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Ads',\n 'Screen',\n 'Page',\n ''\n );\n });\n const [interstitialState, interstitialDispatch] = useReducer(\n dataFetchReducer,\n initialState\n );\n const [rewardState, rewardDispatch] = useReducer(\n dataFetchReducer,\n initialState\n );\n const [interstitialAdId, setInterstitialAdId] = useState(\n 'ca-app-pub-3940256099942544/1033173712'\n );\n const [rewardAdId, setRewardAdId] = useState(\n 'ca-app-pub-3940256099942544/5224354917'\n );\n const classes = useStyles();\n\n const handleInterstitialSuccess = (loadSuccess) => {\n console.log(loadSuccess);\n interstitialDispatch({ type: 'SUCCESS' });\n };\n const handleInterstitialFailure = (error) => {\n interstitialDispatch({ type: 'FAILURE', error });\n console.error(error);\n };\n const loadInterstitialAd = () => {\n interstitialDispatch({ type: 'LOADING' });\n MiniApp.loadInterstitialAd(interstitialAdId)\n .then(handleInterstitialSuccess)\n .catch(handleInterstitialFailure);\n };\n const displayInterstitialAd = () => {\n interstitialDispatch({ type: 'LOADING' });\n MiniApp.showInterstitialAd(interstitialAdId)\n .then(handleInterstitialSuccess)\n .catch(handleInterstitialFailure);\n };\n\n const handleRewardFailure = (error) => {\n rewardDispatch({ type: 'FAILURE', error });\n console.error(error);\n };\n const loadRewardAd = () => {\n rewardDispatch({ type: 'LOADING' });\n MiniApp.loadRewardedAd(rewardAdId)\n .then((loadSuccess) => {\n console.log(loadSuccess);\n rewardDispatch({ type: 'SUCCESS' });\n })\n .catch(handleRewardFailure);\n };\n const displayRewardAd = () => {\n rewardDispatch({ type: 'LOADING' });\n MiniApp.showRewardedAd(rewardAdId)\n .then((reward) => {\n rewardDispatch({ type: 'SUCCESS', rewardItem: reward });\n })\n .catch(handleRewardFailure);\n };\n\n const renderLoading = () => (\n \n \n \n );\n\n const renderError = (error) => (\n \n Error: {error}\n \n );\n\n const renderInput = ({ label, value, onChange }) => (\n \n onChange.call(null, e.currentTarget.value)}\n variant=\"outlined\"\n color=\"primary\"\n inputProps={{\n 'data-testid': 'input-field',\n }}\n />\n \n );\n\n const renderButton = ({ text, disabled, onClick }) => (\n \n \n {text}\n \n \n );\n\n return (\n
\n \n \n {interstitialState.isLoading && renderLoading()}\n {interstitialState.error && renderError(interstitialState.error)}\n\n {renderInput({\n label: 'Interstitial Ad Id',\n value: interstitialAdId,\n onChange: setInterstitialAdId,\n })}\n {renderButton({\n text: 'Load Interstitial',\n disabled: interstitialState.isLoading,\n onClick: loadInterstitialAd,\n })}\n {renderButton({\n text: 'Show Interstitial',\n disabled: interstitialState.isLoading,\n onClick: displayInterstitialAd,\n })}\n \n \n {rewardState.isLoading && renderLoading()}\n {rewardState.error && renderError(rewardState.error)}\n\n {!rewardState.error &&\n !rewardState.isLoading &&\n rewardState.reward != null && (\n // $FlowFixMe\n \n \n Rewarded point: {rewardState.reward.amount}\n \n \n )}\n\n {renderInput({\n label: 'Rewarded Ad Id',\n value: rewardAdId,\n onChange: setRewardAdId,\n })}\n {renderButton({\n text: 'Load Reward',\n disabled: rewardState.isLoading,\n onClick: loadRewardAd,\n })}\n {renderButton({\n text: 'Show Reward',\n disabled: rewardState.isLoading,\n onClick: displayRewardAd,\n })}\n \n \n
\n );\n}\n\nexport default Ads;\n","import React, { useState, useReducer, useEffect } from 'react';\n\nimport {\n Button,\n Container,\n TextField,\n Grid,\n makeStyles,\n Typography,\n FormGroup,\n} from '@material-ui/core';\nimport { red } from '@material-ui/core/colors';\nimport Checkbox from '@mui/material/Checkbox';\nimport Tab from '@material-ui/core/Tab';\nimport TabContext from '@material-ui/lab/TabContext';\nimport TabList from '@material-ui/lab/TabList';\nimport TabPanel from '@material-ui/lab/TabPanel';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport MiniApp, {\n CloseAlertInfo,\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: '90%',\n width: '100%',\n },\n wrapperContainer: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n paddingLeft: 0,\n },\n grid: {\n display: 'flex',\n height: '20%',\n flexDirection: 'column',\n justifyContent: 'center',\n padding: '20px',\n },\n table: {\n minWidth: '80%',\n },\n content: {\n height: '50%',\n justifyContent: 'space-between',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n contentSection: {\n height: '30%',\n padding: '10px',\n },\n label: {\n display: 'block',\n fontSize: 12,\n width: '100%',\n color: theme.color.primary,\n },\n imageBox: {\n height: '250px',\n margin: '20px',\n },\n imageBoxContent: {\n height: '250px',\n objectFit: 'contain',\n },\n error: {\n color: red[500],\n marginTop: 10,\n },\n red: {\n color: red[500],\n },\n}));\n\nexport const initialState = {\n isLoading: false,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n};\n\ntype State = {\n isLoading: ?boolean,\n isError: ?boolean,\n};\n\ntype Action = {\n type: string,\n miniAppError: MiniAppError,\n inputError: ?string,\n};\n\nexport const dataFetchReducer = (state: State, action: Action) => {\n switch (action.type) {\n case 'SET_CLOSE_INIT':\n return {\n ...state,\n isLoading: true,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n };\n case 'SET_CLOSE_FAILURE':\n return {\n ...state,\n isLoading: false,\n isError: true,\n error: state.error,\n isSuccess: false,\n inputError: null,\n };\n case 'SET_CLOSE_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: state.error,\n isSuccess: true,\n inputError: null,\n };\n case 'INPUT_FAILURE':\n return {\n ...initialState,\n isLoading: false,\n isError: true,\n error: null,\n isSuccess: false,\n inputError: action.inputError,\n };\n\n default:\n throw Error('Unknown action type');\n }\n};\n\nfunction CloseConfirmAlert() {\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'App Close alert',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n const [state, dispatch] = useReducer(dataFetchReducer, initialState);\n\n const classes = useStyles();\n\n const [title, setTitle] = useState('');\n const [description, setDescription] = useState('');\n const [checked, setChecked] = React.useState(true);\n const [withConfirmAlert, setWithConfirmAlert] = React.useState(true);\n\n const handleChange = (event: React.ChangeEvent) => {\n setChecked(event.target.checked);\n };\n\n const closeMiniAppWithConfirmation = (\n event: React.ChangeEvent\n ) => {\n setWithConfirmAlert(event.target.checked);\n };\n\n function closeAlert() {\n if (!isTextFieldValuesValid(title)) {\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Title cannot be empty',\n });\n return;\n }\n if (!isTextFieldValuesValid(description)) {\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Description cannot be empty',\n });\n return;\n }\n dispatch({ type: 'SET_CLOSE_INIT', miniAppError: null, inputError: null });\n setMiniAppCloseAlert();\n }\n\n function isEmpty(str) {\n return !str || str.trim().length === 0;\n }\n\n function isTextFieldValuesValid(textFieldValue) {\n if (isEmpty(textFieldValue)) {\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Key cannot be empty',\n });\n return false;\n } else {\n return true;\n }\n }\n\n function setMiniAppCloseAlert() {\n const alert: CloseAlertInfo = {\n shouldDisplay: checked,\n title: title,\n description: description,\n };\n MiniApp.miniappUtils\n .setCloseAlert(alert)\n .then(() => {\n dispatch({\n type: 'SET_CLOSE_SUCCESS',\n miniAppError: null,\n inputError: 'null',\n });\n })\n .catch((error) => {\n dispatch({\n type: 'SET_CLOSE_FAILURE',\n miniAppError: null,\n inputError: 'null',\n });\n });\n }\n\n function closeMiniApp() {\n MiniApp.miniappUtils.closeMiniApp(withConfirmAlert).catch((error) => {\n dispatch({\n type: 'SET_CLOSE_FAILURE',\n miniAppError: null,\n inputError: 'null',\n });\n });\n }\n\n function SetCloseAlertConfirmationPanel() {\n return (\n \n setTitle(e.target.value)}\n />\n
\n
\n setDescription(e.target.value)}\n />\n
\n
\n \n }\n label=\"Show Close Alert\"\n labelPlacement=\"closeAlert\"\n checked={checked}\n onChange={handleChange}\n />\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.isSuccess && (\n \n Alert information stored Successfully\n \n )}\n \n \n
\n \n
\n
\n
\n );\n }\n\n function CloseMiniAppPanel() {\n return (\n \n \n }\n label=\"Should Display Confirmation?\"\n labelPlacement=\"closeAlert\"\n checked={withConfirmAlert}\n onChange={closeMiniAppWithConfirmation}\n />\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.isSuccess && (\n \n Alert information stored Successfully\n \n )}\n \n \n
\n \n
\n
\n
\n );\n }\n\n const [tabValue, setTabValue] = React.useState('1');\n\n const handleTabChange = (event: Event, newValue: string) => {\n dispatch({ type: 'SET_CLOSE_INIT', miniAppError: null, inputError: null });\n setTabValue(newValue);\n };\n\n return (\n \n \n \n \n \n \n {SetCloseAlertConfirmationPanel()}\n {CloseMiniAppPanel()}\n \n \n );\n}\n\nexport { CloseConfirmAlert };\nexport default CloseConfirmAlert;\n","import MiniApp, {\n CustomPermission,\n CustomPermissionResult,\n MiniAppError,\n} from 'js-miniapp-sdk';\n\nimport {\n REQUEST_PERMISSIONS_SUCCESS,\n REQUEST_PERMISSIONS_FAILURE,\n} from './types';\n\ntype PermissionsAction = {\n type: String,\n permissions: CustomPermissionResult[],\n error: MiniAppError,\n};\n\nconst requestCustomPermissions = (\n requestedPermssions: CustomPermission[]\n): Function => {\n return (dispatch) => {\n return MiniApp.requestCustomPermissions(requestedPermssions)\n .then((permissions) => {\n dispatch({\n type: REQUEST_PERMISSIONS_SUCCESS,\n permissions,\n });\n\n return permissions;\n })\n .catch((e) => {\n dispatch({\n type: REQUEST_PERMISSIONS_FAILURE,\n error: e,\n });\n });\n };\n};\n\nexport { requestCustomPermissions };\nexport type { PermissionsAction };\n","const REQUEST_PERMISSIONS_SUCCESS = 'REQUEST_PERMISSIONS_SUCCESS';\nconst REQUEST_PERMISSIONS_FAILURE = 'REQUEST_PERMISSIONS_FAILURE';\nexport { REQUEST_PERMISSIONS_SUCCESS, REQUEST_PERMISSIONS_FAILURE };\n","import React, { Fragment, useReducer, useState, useEffect } from 'react';\n\nimport {\n Button,\n CircularProgress,\n FormGroup,\n Typography,\n CardContent,\n FormControl,\n TextField,\n} from '@material-ui/core';\nimport { red, green } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\nimport clsx from 'clsx';\nimport {\n CustomPermission,\n CustomPermissionResult,\n CustomPermissionName,\n CustomPermissionStatus,\n AccessTokenData,\n MiniAppError,\n} from 'js-miniapp-sdk';\nimport { connect } from 'react-redux';\n\nimport GreyCard from '../components/GreyCard';\nimport { displayDate } from '../js_sdk';\nimport { requestCustomPermissions } from '../services/permissions/actions';\nimport { requestAccessToken } from '../services/user/actions';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n display: 'inline-block',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: '40px',\n overflowY: 'scroll',\n },\n wrapper: {\n position: 'relative',\n marginTop: 20,\n },\n buttonSuccess: {\n backgroundColor: green[500],\n '&:hover': {\n backgroundColor: green[700],\n },\n },\n buttonFailure: {\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n error: {\n color: red[500],\n marginTop: 20,\n },\n success: {\n color: green[500],\n marginTop: 20,\n textAlign: 'center',\n wordBreak: 'break-all',\n },\n rootFormGroup: {\n alignItems: 'center',\n },\n red: {\n color: red[500],\n },\n}));\n\nconst initialState = {\n isLoading: false,\n isSuccess: false,\n isError: false,\n error: null,\n permissionDenied: false,\n};\n\nconst dataFetchReducer = (state, action) => {\n switch (action.type) {\n case 'TOKEN_FETCH_INIT':\n return {\n ...state,\n isLoading: true,\n isSuccess: false,\n isError: false,\n error: null,\n permissionDenied: false,\n };\n case 'TOKEN_FETCH_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isSuccess: true,\n isError: false,\n error: null,\n permissionDenied: false,\n };\n case 'TOKEN_FETCH_FAILURE':\n return {\n ...state,\n isLoading: false,\n isSuccess: false,\n isError: true,\n error:\n (typeof action.error == 'string'\n ? action.error\n : action.error.message) || '',\n };\n case 'PERMISSION_FAILURE':\n return {\n ...state,\n isLoading: false,\n isSuccess: false,\n isError: false,\n error: null,\n permissionDenied: true,\n };\n default:\n throw new Error();\n }\n};\n\ntype AuthTokenProps = {\n permissions: CustomPermissionName[],\n accessToken: AccessTokenData,\n error: MiniAppError,\n getAccessToken: (audience: string, scopes: string[]) => Promise,\n requestPermissions: (\n permissions: CustomPermission[]\n ) => Promise,\n};\n\nfunction AuthToken(props: AuthTokenProps) {\n const [state, dispatch] = useReducer(dataFetchReducer, initialState);\n const classes = useStyles();\n const [scope, setScope] = useState({\n audience: 'rae',\n scopes: ['idinfo_read_openid', 'memberinfo_read_point'],\n });\n const buttonClassname = clsx({\n [classes.buttonFailure]: state.isError,\n [classes.buttonSuccess]: !state.isError,\n });\n const onAudienceChange = (event) => {\n setScope({ ...scope, audience: event.target.value });\n };\n const onScopesChange = (event) => {\n setScope({ ...scope, scopes: event.target.value.split(', ') });\n };\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Auth Token',\n 'Screen',\n 'Page',\n ''\n );\n });\n function requestAccessTokenPermission() {\n const permissionsList = [\n {\n name: CustomPermissionName.ACCESS_TOKEN,\n description:\n 'We would like to get the Access token details to share with this Mini app',\n },\n ];\n props\n .requestPermissions(permissionsList)\n .then((permissions) => {\n if (permissions) {\n permissions\n .filter(\n (permission) =>\n permission.status === CustomPermissionStatus.ALLOWED\n )\n .map((permission) => permission.name);\n if (!hasPermission(CustomPermissionName.ACCESS_TOKEN, permissions)) {\n requestAccessToken();\n } else {\n dispatch({ type: 'PERMISSION_FAILURE', permissionDenied: true });\n }\n } else {\n dispatch({ type: 'PERMISSION_FAILURE', permissionDenied: true });\n }\n })\n .catch((error) => {\n dispatch({ type: 'PERMISSION_FAILURE', permissionDenied: true });\n });\n }\n\n function hasPermission(permission, permissionList: ?(string[])) {\n permissionList = permissionList || props.permissions || [];\n return permissionList.indexOf(permission) > -1;\n }\n\n function requestAccessToken() {\n props\n .getAccessToken(scope.audience, scope.scopes)\n .then((permissions) => {\n dispatch({ type: 'TOKEN_FETCH_SUCCESS' });\n })\n .catch((e) => {\n dispatch({ type: 'TOKEN_FETCH_FAILURE', error: e });\n });\n }\n\n function handleClick(e) {\n if (!state.isLoading) {\n e.preventDefault();\n dispatch({ type: 'TOKEN_FETCH_INIT' });\n requestAccessTokenPermission();\n }\n }\n\n function ButtonWrapper() {\n return (\n
\n \n Authentication\n \n {state.isLoading && (\n \n )}\n
\n );\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {ButtonWrapper()}\n {!state.isLoading &&\n state.isSuccess &&\n !state.isError &&\n !state.permissionDenied &&\n props.accessToken && (\n
\n \n Token: {props.accessToken.token}\n \n \n Valid until: {displayDate(props.accessToken.validUntil)}\n \n
\n )}\n {!state.isLoading && state.isError && !state.permissionDenied && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.permissionDenied && (\n \n ACCESS_TOKEN Permission is denied by the user\n \n )}\n
\n
\n
\n );\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n permissions: state.permissions,\n accessToken: state.user.accessToken,\n error: state.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getAccessToken: (audience: string, scopes: string[]) =>\n dispatch(requestAccessToken(audience, scopes)),\n requestPermissions: (permissions) =>\n dispatch(requestCustomPermissions(permissions)),\n };\n};\n\nexport { AuthToken };\nexport default connect(mapStateToProps, mapDispatchToProps)(AuthToken);\n","import MiniApp, { AccessTokenData } from 'js-miniapp-sdk';\nimport { Contact, Points } from 'js-miniapp-sdk';\n\nimport {\n REQUEST_USER_NAME_SUCCESS,\n REQUEST_USER_NAME_FAILURE,\n REQUEST_PROFILE_PHOTO_SUCCESS,\n REQUEST_PROFILE_PHOTO_FAILURE,\n REQUEST_CONTACT_LIST_SUCCESS,\n REQUEST_CONTACT_LIST_FAILURE,\n REQUEST_ACCESS_TOKEN_SUCCESS,\n REQUEST_ACCESS_TOKEN_FAILURE,\n REQUEST_POINTS_SUCCESS,\n REQUEST_POINTS_FAILURE,\n} from './types';\n\ntype UserNameSuccessAction = { type: String, userName: string };\ntype ProfilePhotoSuccessAction = { type: String, url: string };\ntype ContactListSuccessAction = { type: String, contacts: Contact[] };\ntype AccessTokenSuccessAction = { type: String, token: AccessTokenData };\ntype PointsSuccessAction = { type: String, points: Points };\n\nconst requestUserName = (): Function => {\n return (dispatch) => {\n return MiniApp.user\n .getUserName()\n .then((userName) => {\n dispatch({\n type: REQUEST_USER_NAME_SUCCESS,\n userName,\n });\n })\n .catch((_) => {\n dispatch({\n type: REQUEST_USER_NAME_FAILURE,\n });\n });\n };\n};\n\nconst requestProfilePhoto = (): Function => {\n return (dispatch) => {\n return MiniApp.user\n .getProfilePhoto()\n .then((url) => {\n dispatch({\n type: REQUEST_PROFILE_PHOTO_SUCCESS,\n url,\n });\n })\n .catch((_) => {\n dispatch({\n type: REQUEST_PROFILE_PHOTO_FAILURE,\n });\n });\n };\n};\n\nconst requestContactList = (): Function => {\n return (dispatch) => {\n return MiniApp.user\n .getContacts()\n .then((contacts) => {\n dispatch({\n type: REQUEST_CONTACT_LIST_SUCCESS,\n contacts,\n });\n\n return Promise.resolve(contacts);\n })\n .catch((_) => {\n dispatch({\n type: REQUEST_CONTACT_LIST_FAILURE,\n });\n });\n };\n};\n\nconst requestAccessToken = (audience: string, scopes: string[]): Function => {\n return (dispatch) => {\n return MiniApp.user\n .getAccessToken(audience, scopes)\n .then((token) => {\n dispatch({\n type: REQUEST_ACCESS_TOKEN_SUCCESS,\n token: token,\n });\n return Promise.resolve(token);\n })\n .catch((e) => {\n dispatch({\n type: REQUEST_ACCESS_TOKEN_FAILURE,\n });\n throw e;\n });\n };\n};\n\nconst requestPoints = (): Function => {\n return (dispatch) => {\n return MiniApp.user\n .getPoints()\n .then((points) => {\n dispatch({\n type: REQUEST_POINTS_SUCCESS,\n points: points,\n });\n return Promise.resolve(points);\n })\n .catch((e) => {\n dispatch({\n type: REQUEST_POINTS_FAILURE,\n });\n throw e;\n });\n };\n};\n\nexport {\n requestUserName,\n requestProfilePhoto,\n requestContactList,\n requestAccessToken,\n requestPoints,\n};\nexport type {\n UserNameSuccessAction,\n ProfilePhotoSuccessAction,\n ContactListSuccessAction,\n AccessTokenSuccessAction,\n PointsSuccessAction,\n};\n","const REQUEST_USER_NAME_SUCCESS = 'REQUEST_USER_NAME_SUCCESS';\nconst REQUEST_USER_NAME_FAILURE = 'REQUEST_USER_NAME_FAILURE';\nconst REQUEST_PROFILE_PHOTO_SUCCESS = 'REQUEST_PROFILE_PHOTO_SUCCESS';\nconst REQUEST_PROFILE_PHOTO_FAILURE = 'REQUEST_PROFILE_PHOTO_FAILURE';\nconst REQUEST_CONTACT_LIST_SUCCESS = 'REQUEST_CONTACT_LIST_SUCCESS';\nconst REQUEST_CONTACT_LIST_FAILURE = 'REQUEST_CONTACT_LIST_FAILURE';\nconst REQUEST_ACCESS_TOKEN_SUCCESS = 'REQUEST_ACCESS_TOKEN_SUCCESS';\nconst REQUEST_ACCESS_TOKEN_FAILURE = 'REQUEST_ACCESS_TOKEN_FAILURE';\nconst REQUEST_POINTS_SUCCESS = 'REQUEST_POINTS_SUCCESS';\nconst REQUEST_POINTS_FAILURE = 'REQUEST_POINTS_FAILURE';\n\nexport {\n REQUEST_USER_NAME_SUCCESS,\n REQUEST_USER_NAME_FAILURE,\n REQUEST_PROFILE_PHOTO_SUCCESS,\n REQUEST_PROFILE_PHOTO_FAILURE,\n REQUEST_CONTACT_LIST_SUCCESS,\n REQUEST_CONTACT_LIST_FAILURE,\n REQUEST_ACCESS_TOKEN_SUCCESS,\n REQUEST_ACCESS_TOKEN_FAILURE,\n REQUEST_POINTS_SUCCESS,\n REQUEST_POINTS_FAILURE,\n};\n","import Bowser from 'bowser';\n\nexport const isMobile = () => {\n const parser = Bowser.getParser(window.navigator.userAgent);\n return parser.getPlatform().type === 'mobile';\n};\n\nexport const displayDate = (date: Date) => {\n return date.toLocaleDateString(`ja-JP`);\n};\n","import React, { useRef, useState, useEffect } from 'react';\n\nimport { Card, Grid, Button, makeStyles } from '@material-ui/core';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: '90%',\n width: '100%',\n },\n grid: {\n display: 'flex',\n height: '20%',\n flexDirection: 'column',\n justifyContent: 'center',\n padding: '20px',\n },\n table: {\n minWidth: '80%',\n },\n content: {\n height: '50%',\n justifyContent: 'space-between',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n contentSection: {\n height: '30%',\n padding: '10px',\n },\n label: {\n display: 'block',\n fontSize: 12,\n width: '100%',\n color: theme.color.primary,\n },\n imageBox: {\n height: '250px',\n margin: '20px',\n },\n imageBoxContent: {\n height: '250px',\n objectFit: 'contain',\n },\n}));\n\nconst Camera = () => {\n const classes = useStyles();\n\n const [image, setImage] = useState(null);\n const [backCamera] = useState(undefined);\n\n const cameraRef = useRef(null);\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Camera',\n 'Screen',\n 'Page',\n ''\n );\n });\n const setFiles = (e) => {\n const files = e.target.files;\n if (!files && files.length > 0) {\n return;\n }\n setImage(URL.createObjectURL(e.target.files[0]));\n };\n\n function clear() {\n setImage(null);\n if (cameraRef.current !== null) {\n cameraRef.current.value = '';\n }\n }\n\n return (\n \n \n \n
\n \n \n
\n
\n \n
\n
\n
\n );\n};\n\nexport { Camera };\nexport default Camera;\n","import React, { useEffect } from 'react';\n\nimport { makeStyles, Chip } from '@material-ui/core';\nimport MiniApp from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n content: {\n height: '25%',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n card: {\n marginTop: '40px',\n },\n actions: {\n justifyContent: 'center',\n flexDirection: 'column',\n },\n button: {\n marginTop: '20px',\n width: '80%',\n maxWidth: 280,\n },\n textfield: {\n width: '80%',\n maxWidth: 300,\n '& input': {\n color: theme.color.primary,\n lineHeight: '1.5em',\n fontSize: '1.2em',\n background: 'white',\n },\n },\n}));\n\nfunction ColorThemeComponent() {\n const classes = useStyles();\n\n useEffect(() => {\n try {\n getColorTheme();\n } catch (e) {\n console.log(e);\n }\n });\n\n function getColorTheme() {\n MiniApp.miniappUtils\n .getHostAppThemeColors()\n .then((response) => {\n document.getElementById('primaryChip').style.backgroundColor =\n response.primaryColor;\n document.getElementById('secondaryChip').style.backgroundColor =\n response.secondaryColor;\n console.log('getColorTheme SUCCESS: ', response);\n })\n .catch((error) => {\n console.log('getColorTheme ERROR: ', error);\n });\n }\n\n return (\n
\n \n
\n
\n \n
\n );\n}\n\nexport default ColorThemeComponent;\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n TextField,\n CardContent,\n CardActions,\n makeStyles,\n} from '@material-ui/core';\nimport {\n MiniAppEvents,\n MiniAppKeyboardEvents,\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\nimport GreyCard from '../components/GreyCard';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n actions: {\n justifyContent: 'center',\n },\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n },\n info: {\n fontSize: 16,\n lineBreak: 'anywhere',\n wordBreak: 'break-all',\n color: theme.color.primary,\n marginTop: 0,\n paddingBottom: 10,\n },\n formInput: {\n width: '90%',\n marginTop: 10,\n marginBottom: 10,\n background: 'white',\n },\n}));\n\nconst EXTERNAL_WEBVIEW_URL = 'https://www.google.com';\n\nconst NativeEvents = () => {\n const classes = useStyles();\n let [externalWebviewCloseEventCount, setExternalWebviewCloseEventCount] =\n useState(0);\n let [pauseEventCount, setPauseEventCount] = useState(0);\n let [resumeEventCount, setResumeEventCount] = useState(0);\n let [navigationBarHeight, setNavigationBarHeight] = useState(0);\n let [screenHeight, setScreenHeight] = useState(0);\n let [keyboardHeight, setKeyboardHeight] = useState(0);\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Event Listener',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n window.addEventListener(MiniAppEvents.EXTERNAL_WEBVIEW_CLOSE, function (e) {\n let message = e.detail.message;\n console.log(message);\n externalWebviewCloseEventCount++;\n setExternalWebviewCloseEventCount(externalWebviewCloseEventCount);\n });\n\n window.addEventListener(MiniAppEvents.PAUSE, function (e) {\n let message = e.detail.message;\n console.log(message);\n pauseEventCount++;\n setPauseEventCount(pauseEventCount);\n });\n\n window.addEventListener(MiniAppEvents.RESUME, function (e) {\n let message = e.detail.message;\n console.log(message);\n resumeEventCount++;\n setResumeEventCount(resumeEventCount);\n });\n\n window.addEventListener(MiniAppKeyboardEvents.KEYBOARDSHOWN, function (e) {\n let message = e.detail.message;\n let navigationBarHeightValue = e.detail.navigationBarHeight;\n let screenHeightValue = e.detail.screenHeight;\n let keyboardHeightValue = e.detail.keyboardHeight;\n console.log(\n message +\n ', ' +\n navigationBarHeightValue +\n ', ' +\n screenHeight +\n ', ' +\n keyboardHeight\n );\n navigationBarHeight = navigationBarHeightValue;\n screenHeight = screenHeightValue;\n keyboardHeight = keyboardHeightValue;\n setNavigationBarHeight(navigationBarHeightValue);\n setScreenHeight(screenHeightValue);\n setKeyboardHeight(keyboardHeightValue);\n });\n\n window.addEventListener(MiniAppKeyboardEvents.KEYBOARDHIDDEN, function (e) {\n let message = e.detail.message;\n let hiddenNavigationBarHeightValue = e.detail.navigationBarHeight;\n let hiddenScreenHeightValue = e.detail.screenHeight;\n let hiddenKeyboardHeightValue = e.detail.keyboardHeight;\n console.log(\n message +\n ', ' +\n hiddenNavigationBarHeightValue +\n ', ' +\n hiddenScreenHeightValue +\n ', ' +\n hiddenKeyboardHeightValue\n );\n navigationBarHeight = hiddenNavigationBarHeightValue;\n screenHeight = hiddenScreenHeightValue;\n keyboardHeight = hiddenKeyboardHeightValue;\n setNavigationBarHeight(hiddenNavigationBarHeightValue);\n setScreenHeight(hiddenScreenHeightValue);\n setKeyboardHeight(hiddenKeyboardHeightValue);\n });\n\n function onOpenExternalWebview() {\n let url = new URL(EXTERNAL_WEBVIEW_URL);\n window.location.href = url;\n }\n\n return (\n
\n \n \n

Event Listener

\n
\n \n \n Open External Webview\n \n \n
\n

External Webview Closed: {externalWebviewCloseEventCount}

\n

Mini App Paused: {pauseEventCount}

\n

Mini App Resumed: {resumeEventCount}

\n
\n
\n
\n

Keyboard Events

\n \n

Navigation Bar Height: {navigationBarHeight}

\n

Screen Height: {screenHeight}

\n

Keyboard Height: {keyboardHeight}

\n
\n
\n
\n );\n};\n\nexport default NativeEvents;\n","const pandaLogo =\n 'data:image/png;base64,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';\n\nexport { pandaLogo };\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n CardContent,\n CardActions,\n CircularProgress,\n makeStyles,\n TextField,\n} from '@material-ui/core';\nimport {\n CustomPermission,\n CustomPermissionResult,\n CustomPermissionName,\n CustomPermissionStatus,\n DownloadFileHeaders,\n MiniAppError,\n} from 'js-miniapp-sdk';\nimport { connect } from 'react-redux';\n\nimport { pandaLogo } from '../assets/images/base64';\nimport GreyCard from '../components/GreyCard';\nimport { requestDownloadFile } from '../services/filedownload/actions';\nimport { requestCustomPermissions } from '../services/permissions/actions';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n actions: {\n justifyContent: 'center',\n paddingBottom: 16,\n },\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n },\n info: {\n fontSize: 16,\n lineBreak: 'anywhere',\n wordBreak: 'break-all',\n color: theme.color.primary,\n marginTop: 0,\n paddingBottom: 10,\n },\n formInput: {\n width: '90%',\n marginTop: 10,\n marginBottom: 10,\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n}));\n\ntype FileDownloadProps = {\n permissions: CustomPermissionName[],\n filename: string,\n isLoading: boolean,\n error: MiniAppError,\n downloadFile: (\n filename: string,\n url: string,\n headers: DownloadFileHeaders\n ) => Promise,\n requestPermissions: (\n permissions: CustomPermission[]\n ) => Promise,\n};\n\nconst FileDownload = (props: FileDownloadProps) => {\n const classes = useStyles();\n let [isPermissionGranted, setIsPermissionGranted] = useState(true);\n let [dataUri, setDataUri] = useState(pandaLogo);\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'File Download',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n function requestDownloadAttachmentPermission(url, fileName) {\n const permissionsList = [\n {\n name: CustomPermissionName.FILE_DOWNLOAD,\n description: 'We would like to get the permission to download files.',\n },\n ];\n\n props\n .requestPermissions(permissionsList)\n .then((permissions) =>\n permissions\n .filter(\n (permission) => permission.status === CustomPermissionStatus.ALLOWED\n )\n .map((permission) => permission.name)\n )\n .then((permissions) =>\n hasPermission(CustomPermissionName.FILE_DOWNLOAD, permissions)\n ? startFileDownload(url, fileName)\n : setIsPermissionGranted(false)\n )\n .catch((miniAppError) => {\n setIsPermissionGranted(false);\n console.error(miniAppError);\n });\n }\n\n function hasPermission(permission, permissionList: ?(string[])) {\n permissionList = permissionList || props.permissions || [];\n return permissionList.indexOf(permission) > -1;\n }\n\n function onDownloadFile(url, fileName) {\n requestDownloadAttachmentPermission(url, fileName);\n }\n\n function startFileDownload(url, fileName) {\n setIsPermissionGranted(true);\n return props\n .downloadFile(fileName, url, { token: 'test' })\n .then((downloadedFile) => {\n console.log('FileDownloadRsponse THEN:', downloadedFile);\n props.downloadedFile = downloadedFile;\n })\n .catch((error) => {\n console.log('FileDownloadErrors CATCH:', error);\n props.error = error;\n props.isLoading = false;\n });\n }\n\n function handleDownloadClick(url, fileName) {\n if (!props.isLoading) {\n onDownloadFile(url, fileName);\n }\n }\n\n function validateName(name) {\n if (name !== undefined && props.filename && props.filename.length > 0) {\n return name;\n }\n return '-';\n }\n\n function DownloadDisplay() {\n return (\n \n );\n }\n\n function renderButton(text, id, onClick) {\n return (\n \n \n \n );\n }\n\n return (\n
\n \n Download Files\n\n
\n

\n {!isPermissionGranted && '\"FILE_DOWNLOAD\" permission not granted.'}\n {props.error && 'Download failed: ' + props.error.message}\n {props.downloadedFile && 'File Downloaded:' + props.downloadedFile}\n

\n
\n\n {DownloadDisplay()}\n\n {props.isLoading && (\n \n )}\n\n {renderButton('Download Image', 'button-download-image', () => {\n handleDownloadClick(\n 'https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg',\n 'sample.jpg'\n );\n })}\n\n {renderButton('Download ZIP', 'button-download-zip', () => {\n handleDownloadClick(\n 'https://file-examples.com/wp-content/storage/2017/02/zip_2MB.zip',\n 'sample.zip'\n );\n })}\n\n {renderButton('Download MP3', 'button-download-mp3', () => {\n handleDownloadClick(\n 'https://filesamples.com/samples/audio/mp3/sample3.mp3',\n 'sample.mp3'\n );\n })}\n\n {renderButton('Download CSV', 'button-download-csv', () => {\n handleDownloadClick(\n 'https://filesamples.com/samples/document/csv/sample4.csv',\n 'sample.csv'\n );\n })}\n\n {renderButton('Download MOV', 'button-download-mov', () => {\n handleDownloadClick(\n 'https://filesamples.com/samples/video/mov/sample_960x540.mov',\n 'sample.mov'\n );\n })}\n\n {renderButton('Download Image - Dot', 'button-download-image', () => {\n handleDownloadClick(\n 'https://filesamples.com/samples/image/jpg/sample_640%C3%97426.jpg',\n 'sample.jun-2022.test.jpg'\n );\n })}\n\n setDataUri(event.target.value)}\n />\n {renderButton('Download Base64 Data', 'button-download-base64', () => {\n handleDownloadClick(dataUri, 'panda.png');\n })}\n
\n
\n );\n};\n\nconst mapStateToProps = (state) => {\n return {\n permissions: state.permissions,\n filename: state.file.filename,\n error: state.file.error,\n isLoading: state.file.isLoading,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n requestPermissions: (permissions) =>\n dispatch(requestCustomPermissions(permissions)),\n downloadFile: (filename, url, headers) =>\n dispatch(requestDownloadFile(filename, url, headers)),\n };\n};\n\nexport { FileDownload };\nexport default connect(mapStateToProps, mapDispatchToProps)(FileDownload);\n","import MiniApp, { DownloadFileHeaders } from 'js-miniapp-sdk';\n\nimport {\n FILE_DOWNLOAD_SUCCESS,\n FILE_DOWNLOAD_FAILURE,\n FILE_DOWNLOAD_INIT,\n} from './types';\n\ntype DownloadFileAction = {\n type: string,\n filename: ?string,\n error: ?string,\n};\n\nconst requestDownloadFile = (\n filename: string,\n url: string,\n headers: DownloadFileHeaders\n): Function => {\n return (dispatch) => {\n dispatch({\n type: FILE_DOWNLOAD_INIT,\n });\n\n return MiniApp.downloadFile(filename, url, headers)\n .then((name) => {\n dispatch({\n type: FILE_DOWNLOAD_SUCCESS,\n filename: name,\n });\n return Promise.resolve(name);\n })\n .catch((error) => {\n console.log('requestDownloadFile: CATCH BLOCK: ', error);\n dispatch({\n type: FILE_DOWNLOAD_FAILURE,\n error: error,\n });\n throw error;\n });\n };\n};\n\nexport { requestDownloadFile };\nexport type { DownloadFileAction };\n","const FILE_DOWNLOAD_SUCCESS = 'FILE_DOWNLOAD_SUCCESS';\nconst FILE_DOWNLOAD_FAILURE = 'FILE_DOWNLOAD_FAILURE';\nconst FILE_DOWNLOAD_INIT = 'FILE_DOWNLOAD_INIT';\nexport { FILE_DOWNLOAD_SUCCESS, FILE_DOWNLOAD_FAILURE, FILE_DOWNLOAD_INIT };\n","// @flow\nimport React, { useState, useEffect } from 'react';\n\nimport {\n Card,\n CardContent,\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n TableContainer,\n Grid,\n} from '@material-ui/core';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: '90%',\n width: '100%',\n },\n grid: {\n display: 'flex',\n height: '20%',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n table: {\n minWidth: '80%',\n },\n content: {\n height: '50%',\n justifyContent: 'space-between',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n uploader: {\n height: '30%',\n },\n label: {\n fontSize: 12,\n width: '100%',\n color: theme.color.primary,\n },\n}));\n\nconst FileUploader = () => {\n const classes = useStyles();\n const [rows, setRows] = useState([]);\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'File Upload',\n 'Screen',\n 'Page',\n ''\n );\n });\n const setFiles = (e) => {\n const files = e.target.files;\n if (!files) {\n return;\n }\n\n setRows(\n Array.from(files).map((file) => ({\n name: file.name,\n size: file.size,\n type: file.type,\n }))\n );\n };\n\n const numberCommaFormatter = (number) => {\n return number.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n };\n\n return (\n \n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n \n \n \n Name\n Type\n Size(Bytes)\n \n \n \n \n {rows.map((row) => (\n \n \n {row.name}\n \n {row.type}\n \n {numberCommaFormatter(row.size)}\n \n \n ))}\n \n
\n
\n
\n
\n );\n};\n\nexport default FileUploader;\n","import React, { useEffect } from 'react';\n\nimport { Typography, CardContent, CardMedia, Grid } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nimport GreyCard from '../components/GreyCard';\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n grid: {\n position: 'relative',\n paddingBottom: 15,\n },\n greyCard: {\n marginTop: '1rem',\n },\n typography: {\n marginTop: '1rem',\n },\n}));\n\nfunction GIFComponent() {\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'App Close alert',\n 'Screen',\n 'Page',\n ''\n );\n });\n const classes = useStyles();\n const images = [\n {\n label: 'Loop Count: Once',\n iconSrc: require('../assets/images/gif/road.gif'),\n altLabel: 'road',\n },\n {\n label: 'Loop Count: Infinite',\n iconSrc: require('../assets/images/gif/road_infinite.gif'),\n altLabel: 'infinite_road',\n },\n {\n label: 'Loop Count: Infinite (WebP)',\n // $FlowFixMe\n iconSrc: require('../assets/images/webp/road_webp.gif'),\n altLabel: 'infinite_road_webp',\n },\n ];\n return (\n
\n \n {images.map((it, i) => (\n \n \n \n {it.label}\n \n \n \n \n \n \n ))}\n \n
\n );\n}\n\nexport default GIFComponent;\n","import React, { useReducer, useEffect } from 'react';\n\nimport {\n Button,\n CircularProgress,\n FormGroup,\n Typography,\n CardContent,\n CardActions,\n ListItem,\n ListItemText,\n} from '@material-ui/core';\nimport { red, green } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { Alert, AlertTitle } from '@mui/material';\nimport Snackbar from '@mui/material/Snackbar';\nimport clsx from 'clsx';\nimport MiniApp, {\n MiniAppError,\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\nimport GreyCard from '../components/GreyCard';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n root: {\n background: theme.color.secondary,\n width: '85vw',\n maxWidth: 500,\n },\n wrapper: {\n position: 'relative',\n marginTop: 10,\n },\n buttonSuccess: {\n backgroundColor: green[500],\n '&:hover': {\n backgroundColor: green[700],\n },\n },\n buttonFailure: {\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n error: {\n color: red[500],\n marginTop: 10,\n },\n success: {\n color: green[500],\n marginTop: 20,\n },\n rootUserGroup: {\n alignItems: 'center',\n },\n formInput: {\n width: '90%',\n marginTop: 10,\n },\n rootCardActions: {\n justifyContent: 'center',\n },\n caseSelector: {\n marginTop: 5,\n },\n button: {\n marginBottom: 15,\n },\n dataFormsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n },\n paper: {\n width: '100%',\n paddingBottom: 10,\n marginBottom: 20,\n '&:last-child': {\n marginBottom: 0,\n },\n },\n red: {\n color: red[500],\n },\n displayInlineBlock: {\n display: 'inline-block',\n },\n purchaseButtonContainer: {\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-evenly',\n },\n purchaseButton: {\n margin: '15px',\n },\n listItemStyle: {\n overflowWrap: 'anywhere',\n },\n}));\n\nexport const initialState = {\n isLoading: false,\n isError: false,\n error: null,\n};\n\ntype State = {\n isLoading: ?boolean,\n isError: ?boolean,\n};\n\ntype Action = {\n type: string,\n miniAppError: MiniAppError,\n productInfo: ProductInfo[],\n purchasedProductInfo: PurchasedProductInfo,\n consumeProductResponse: MiniAppResponseInfo,\n};\n\nexport const dataFetchReducer = (state: State, action: Action) => {\n switch (action.type) {\n case 'PURCHASE_FETCH_INIT':\n return {\n isLoading: true,\n isError: false,\n error: null,\n };\n case 'PURCHASE_FETCH_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: null,\n productInfo: action.productInfo,\n };\n case 'PURCHASE_FETCH_FAILURE':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: null,\n productInfo: null,\n };\n case 'PURCHASE_PRODUCT_INIT':\n return {\n isLoading: true,\n isError: false,\n error: null,\n };\n case 'PURCHASE_PRODUCT_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: null,\n purchasedProductInfo: action.purchasedProduct,\n };\n case 'PURCHASE_PRODUCT_FAILURE':\n return {\n ...initialState,\n isLoading: false,\n isError: true,\n purchasedProductInfo: null,\n error:\n (typeof action.miniAppError == 'string'\n ? action.miniAppError\n : action.miniAppError.message) || '',\n };\n\n case 'CONSUME_PRODUCT_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: null,\n consumeProductResponse: action.consumeProductResponse,\n };\n case 'CONSUME_PRODUCT_FAILURE':\n return {\n ...initialState,\n isLoading: false,\n isError: true,\n consumeProductResponse: null,\n error:\n (typeof action.miniAppError == 'string'\n ? action.miniAppError\n : action.miniAppError.message) || 'Product is not purchased yet',\n };\n\n default:\n throw Error('Unknown action type');\n }\n};\n\nfunction PurchaseProductComponent() {\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'In-App-Purchase',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n const [state, dispatch] = useReducer(dataFetchReducer, initialState);\n const [productFetchState, productFetchDispatch] = useReducer(\n dataFetchReducer,\n initialState\n );\n const [snackBarOpen, setSnackBarOpen] = React.useState(false);\n\n const classes = useStyles();\n\n const buttonClassname = clsx({\n [classes.buttonFailure]: state.isError,\n [classes.buttonSuccess]: !state.isError,\n });\n\n const handleSnackBarClose = (\n event?: React.SyntheticEvent | Event,\n reason?: string\n ) => {\n setSnackBarOpen(false);\n };\n\n function handleFetchClick(e) {\n if (!state.isLoading) {\n productFetchDispatch({ type: 'PURCHASE_FETCH_INIT', miniAppError: null });\n getAllProducts();\n }\n }\n\n function getAllProducts() {\n MiniApp.purchaseService\n .getAllProducts()\n .then((products) => {\n console.log('getAllProducts SUCCESS: ', products);\n productFetchDispatch({\n type: 'PURCHASE_FETCH_SUCCESS',\n miniAppError: null,\n productInfo: products,\n });\n })\n .catch((miniAppError) => {\n console.log('getAllProducts Error: ', miniAppError);\n productFetchDispatch({ type: 'PURCHASE_FETCH_FAILURE', miniAppError });\n });\n }\n\n function handlePurchaseClick(e) {\n if (!state.isLoading) {\n dispatch({\n type: 'PURCHASE_PRODUCT_INIT',\n miniAppError: null,\n });\n BuyProduct(e.currentTarget.value);\n }\n }\n\n function BuyProduct(productId: string) {\n console.log('BuyProduct: ', productId);\n\n MiniApp.purchaseService\n .purchaseProductWith(productId)\n .then((purchasedProduct) => {\n console.log('BuyProduct - SUCCESS: ', purchasedProduct);\n dispatch({\n type: 'PURCHASE_PRODUCT_SUCCESS',\n miniAppError: null,\n purchasedProduct: purchasedProduct,\n });\n cachePurchasedProduct(\n purchasedProduct.productInfo.id,\n purchasedProduct\n );\n })\n .catch((miniAppError) => {\n console.log('Buy Product ERROR: ', miniAppError);\n dispatch({\n type: 'PURCHASE_PRODUCT_FAILURE',\n miniAppError,\n });\n });\n }\n\n function cachePurchasedProduct(key, value) {\n window.localStorage.setItem(key, JSON.stringify(value));\n }\n\n function handleConsumeClick(e) {\n if (e.currentTarget.value === null || e.currentTarget.value === undefined) {\n dispatch({\n type: 'CONSUME_PRODUCT_FAILURE',\n });\n console.log('CONSUME_PRODUCT_FAILURE: ', e.currentTarget.value);\n } else {\n ConsumeProduct(\n e.currentTarget.value,\n getTransactionId(e.currentTarget.value)\n );\n }\n if (!state.isLoading) {\n dispatch({ type: 'PURCHASE_PRODUCT_INIT', miniAppError: null });\n }\n }\n\n function getTransactionId(productId: string) {\n const purchasedProduct = window.localStorage.getItem(productId);\n var productInfo = JSON.parse(purchasedProduct);\n return productInfo.transactionId;\n }\n\n function ConsumeProduct(productId: string, transactionId: string) {\n console.log('ConsumeProduct PRODUCT: ', productId);\n console.log('ConsumeProduct TRANSACTION: ', transactionId);\n\n MiniApp.purchaseService\n .consumePurchaseWith(productId, transactionId)\n .then((response) => {\n console.log('SUCCESS - ConsumeProduct', response);\n setSnackBarOpen(true);\n dispatch({\n type: 'CONSUME_PRODUCT_SUCCESS',\n miniAppError: null,\n consumeProductResponse: response,\n });\n cachePurchasedProduct(productId, '');\n })\n .catch((miniAppError) => {\n console.log('Consume Product Error: ', miniAppError);\n dispatch({\n type: 'CONSUME_PRODUCT_FAILURE',\n miniAppError,\n });\n });\n }\n\n function TransactionDetails() {\n const dateInfo = new Date(state.purchasedProductInfo.transactionDate);\n return (\n \n \n Transaction ID: {state.purchasedProductInfo.transactionId}\n
\n Transaction Date: {dateInfo.toLocaleDateString()}\n
\n Transaction Time: {dateInfo.toLocaleTimeString()}\n
\n \n
\n );\n }\n\n function ShowConsumedAlert() {\n return (\n \n \n \n {state.consumeProductResponse.title}\n {state.consumeProductResponse.description}\n \n \n \n );\n }\n\n function ShowProductDetails() {\n console.log('ShowProductDetails: ', productFetchState);\n return (\n \n {productFetchState.productInfo &&\n productFetchState.productInfo.map((productInfo) => (\n \n \n \n {productInfo.description &&\n productInfo.description !== '' && (\n \n {'Description: ' + productInfo.description}\n \n )}\n \n \n {productInfo.id && productInfo.id !== '' && (\n {'Product ID: ' + productInfo.id}\n )}\n \n \n {productInfo.id && productInfo.id !== '' && (\n \n {'Price : ' +\n productInfo.productPriceInfo.price +\n ' ' +\n productInfo.productPriceInfo.currencyCode}\n \n )}\n \n \n }\n />\n
\n
\n \n Buy\n \n
\n
\n \n Consume\n \n {state.isLoading && (\n \n )}\n
\n
\n {state.purchasedProductInfo &&\n state.purchasedProductInfo.productInfo.id ===\n productInfo.id &&
{TransactionDetails()}
}\n \n ))}\n \n );\n }\n\n function PurchaseProductCardActionsForm() {\n return (\n \n
\n
\n \n Fetch Products\n \n\n {state.isLoading && (\n \n )}\n
\n
\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.consumeProductResponse && (\n
{ShowConsumedAlert()}
\n )}\n
\n );\n }\n\n return (\n
\n \n {PurchaseProductCardActionsForm()}\n \n \n {!productFetchState.isLoading && productFetchState.productInfo && (\n {ShowProductDetails()}\n )}\n \n
\n );\n}\nexport { PurchaseProductComponent };\n","import MiniApp, { HostEnvironmentInfo, MiniAppError } from 'js-miniapp-sdk';\n\nimport {\n REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS,\n REQUEST_HOST_ENVIRONMENT_INFO_ERROR,\n ON_SECURE_STORAGE_READY_SUCCESS,\n ON_SECURE_STORAGE_READY_FAILURE,\n} from './types';\n\ntype RequestHostInfoSuccessAction = { type: String, info: HostEnvironmentInfo };\ntype OnStorageReadySuccessAction = { type: string, error?: MiniAppError };\n\nconst setHostEnvironmentInfo = (): Function => {\n return (dispatch) => {\n MiniApp.getHostEnvironmentInfo()\n .then((info) => {\n dispatch({\n type: REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS,\n info: info,\n });\n })\n .catch((error) => {\n dispatch({\n type: REQUEST_HOST_ENVIRONMENT_INFO_ERROR,\n error,\n });\n });\n };\n};\n\nconst onSecureStorageReady = (): Function => {\n return (dispatch) => {\n return new Promise((resolve) => {\n MiniApp.secureStorageService.onReady(() => {\n dispatch({\n type: ON_SECURE_STORAGE_READY_SUCCESS,\n });\n return resolve();\n });\n\n MiniApp.secureStorageService.onLoadError((error) => {\n dispatch({\n type: ON_SECURE_STORAGE_READY_FAILURE,\n error: error,\n });\n return resolve(error);\n });\n });\n };\n};\n\nexport { setHostEnvironmentInfo, onSecureStorageReady };\nexport type { RequestHostInfoSuccessAction, OnStorageReadySuccessAction };\n","const REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS =\n 'REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS';\nconst REQUEST_HOST_ENVIRONMENT_INFO_ERROR =\n 'REQUEST_HOST_ENVIRONMENT_INFO_ERROR';\nconst ON_SECURE_STORAGE_READY_SUCCESS = 'ON_SECURE_STORAGE_READY_SUCCESS';\nconst ON_SECURE_STORAGE_READY_FAILURE = 'ON_SECURE_STORAGE_READY_FAILURE';\n\nexport {\n REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS,\n REQUEST_HOST_ENVIRONMENT_INFO_ERROR,\n ON_SECURE_STORAGE_READY_SUCCESS,\n ON_SECURE_STORAGE_READY_FAILURE,\n};\n","import React, { useState, useEffect } from 'react';\n\nimport { CardContent, makeStyles } from '@material-ui/core';\nimport AppSettingsAltRoundedIcon from '@mui/icons-material/AppSettingsAltRounded';\nimport DarkModeRoundedIcon from '@mui/icons-material/DarkModeRounded';\nimport DevicesOtherIcon from '@mui/icons-material/DevicesOther';\nimport HelpRoundedIcon from '@mui/icons-material/HelpRounded';\nimport HttpRoundedIcon from '@mui/icons-material/HttpRounded';\nimport LanguageRoundedIcon from '@mui/icons-material/LanguageRounded';\nimport SettingsApplicationsRoundedIcon from '@mui/icons-material/SettingsApplicationsRounded';\nimport StorageRoundedIcon from '@mui/icons-material/StorageRounded';\nimport SystemUpdateIcon from '@mui/icons-material/SystemUpdate';\nimport Avatar from '@mui/material/Avatar';\nimport List from '@mui/material/List';\nimport ListItem from '@mui/material/ListItem';\nimport ListItemAvatar from '@mui/material/ListItemAvatar';\nimport ListItemText from '@mui/material/ListItemText';\nimport MiniApp, {\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { connect } from 'react-redux';\nimport { sendAnalytics } from './helper';\n\nimport {\n setHostEnvironmentInfo,\n onSecureStorageReady,\n} from '../services/landing/actions';\n\ntype LandingProps = {\n platform: ?string,\n platformVersion: ?string,\n hostVersion: ?string,\n sdkVersion: ?string,\n hostLocale: ?string,\n infoError: string,\n getHostInfo: Function,\n onSecureStorageReady: Function,\n secureStorageStatus: string,\n};\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: '40px',\n },\n content: {\n height: '100%',\n width: '100%',\n justifyContent: 'left',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n '& p': {\n lineHeight: 1.5,\n },\n overflowY: 'auto',\n },\n info: {\n fontSize: 16,\n lineBreak: 'anywhere',\n wordBreak: 'break-all',\n marginTop: 0,\n },\n button: {\n minHeight: 40,\n margin: 0,\n },\n paddingTop50: {\n marginTop: '50px',\n },\n}));\n\nconst Landing = (props: LandingProps) => {\n const classes = useStyles();\n const [darkMode, setDarkMode] = useState(false);\n\n useEffect(() => {\n try {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Home',\n 'Screen',\n 'Page',\n ''\n );\n props.getHostInfo();\n checkSecureStorageStorageReady(props);\n getDarkMode();\n } catch (e) {\n console.log(e);\n }\n }, [props]);\n\n function getDarkMode() {\n MiniApp.miniappUtils\n .isDarkMode()\n .then((response) => {\n setDarkMode(response);\n })\n .catch((miniAppError) => {\n console.log('getDarkMode - Error: ', miniAppError);\n });\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nfunction checkSecureStorageStorageReady(props: LandingProps) {\n props\n .onSecureStorageReady()\n .then((response) => {\n console.log('Page - checkSecureStorageStorageReady - Success', response);\n })\n .catch((miniAppError) => {\n console.log(\n 'Page - checkSecureStorageStorageReady - Error: ',\n miniAppError\n );\n });\n}\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n platform: state.info.platform,\n platformVersion: state.info.platformVersion,\n hostVersion: state.info.hostVersion,\n sdkVersion: state.info.sdkVersion,\n hostLocale: state.info.hostLocale,\n infoError: state.info.infoError,\n secureStorageStatus:\n (state.secureStorageStatus.isReady && 'Ready') ||\n state.secureStorageStatus.error ||\n 'Not Ready',\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getHostInfo: () => dispatch(setHostEnvironmentInfo()),\n onSecureStorageReady: () => dispatch(onSecureStorageReady()),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Landing);\n","// @flow\nimport { useState } from 'react';\n\nfunction useLocalStorage(key: string, initialValue: string) {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n throw error;\n }\n });\n\n const setValue = (value: any) => {\n try {\n setStoredValue(value);\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (error) {\n throw error;\n }\n };\n\n return [storedValue, setValue];\n}\n\nexport default useLocalStorage;\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n TextField,\n makeStyles,\n CardContent,\n CardActions,\n} from '@material-ui/core';\n\nimport GreyCard from '../components/GreyCard';\nimport useLocalStorage from '../hooks/useLocalStorage';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n content: {\n height: '25%',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n card: {\n marginTop: '40px',\n },\n actions: {\n justifyContent: 'center',\n flexDirection: 'column',\n },\n button: {\n marginTop: '20px',\n width: '80%',\n maxWidth: 280,\n },\n textfield: {\n width: '80%',\n maxWidth: 300,\n '& input': {\n color: theme.color.primary,\n lineHeight: '1.5em',\n fontSize: '1.2em',\n background: 'white',\n },\n },\n}));\n\nfunction LocalStorage() {\n const classes = useStyles();\n const [inputValue, setInputValue] = useState('');\n const [storedValue, setStoredValue] = useLocalStorage('input-value', '');\n\n const handleInput = (e: SyntheticInputEvent) => {\n e.preventDefault();\n setInputValue(e.currentTarget.value);\n };\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Local Storage',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n const handleLoad = () => {\n setInputValue(storedValue);\n };\n\n const handleSave = () => {\n setStoredValue(inputValue);\n };\n\n return (\n \n \n \n \n \n \n Load text from Local Storage\n \n \n Save text to Local Storage\n \n \n \n );\n}\n\nexport default LocalStorage;\n","// @flow\nimport React, { useState, useEffect } from 'react';\n\nimport ReactPlayerLoader from '@brightcove/react-player-loader';\nimport {\n Button,\n CardContent,\n CardActions,\n makeStyles,\n} from '@material-ui/core';\nimport MiniApp, {\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { ScreenOrientation } from 'js-miniapp-sdk';\n\nimport GreyCard from '../components/GreyCard';\nimport { sendAnalytics } from './helper';\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n height: 'auto',\n marginTop: '40px',\n },\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n },\n actions: {\n justifyContent: 'center',\n paddingBottom: 16,\n },\n}));\n\nconst onSuccess = function ({ ref: player }) {\n console.log(player);\n\n player.on('fullscreenchange', (event) => {\n if (player.isFullscreen()) {\n MiniApp.setScreenOrientation(ScreenOrientation.LOCK_LANDSCAPE)\n .then((success) => {\n console.log(success);\n })\n .catch((error) => {\n console.error(error);\n });\n } else {\n MiniApp.setScreenOrientation(ScreenOrientation.LOCK_RELEASE)\n .then((success) => {\n console.log(success);\n })\n .catch((error) => {\n console.error(error);\n });\n }\n });\n};\n\nconst Media = () => {\n const [showAutoplayVideo, setShowAutoplayVideo] = useState(false);\n const classes = useStyles();\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Media',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n return (\n \n \n Autoplay Fullscreen Video\n \n \n \n \n\n Normal Video\n \n setShowAutoplayVideo(!showAutoplayVideo)}\n >\n {showAutoplayVideo ? 'Hide' : 'Show'} Video\n \n \n\n {showAutoplayVideo && (\n \n {\n onSuccess(success);\n success.ref.requestFullscreen();\n }}\n options={{ autoplay: true }}\n >\n \n )}\n \n );\n};\n\nexport default Media;\n","const SET_MESSAGE_TYPES = 'GET_MESSAGE_TYPE';\n\nexport const MessageTypeId = {\n SINGLE_CONTACT: 1,\n SINGLE_CONTACT_ID: 2,\n MULTIPLE_CONTACTS: 3,\n};\n\ntype MessageType = {\n id: number,\n name: string,\n};\n\ntype SetMessageTypeAction = {\n type: string,\n payload: Array,\n};\n\nexport { SET_MESSAGE_TYPES };\nexport type { MessageType, SetMessageTypeAction };\n","import MiniApp, {\n CustomPermissionStatus,\n CustomPermissionName,\n} from 'js-miniapp-sdk';\nimport { MessageToContact } from 'js-miniapp-sdk';\n\nimport { SET_MESSAGE_TYPES } from './types';\nimport type { SetMessageTypeAction } from './types';\n\nconst getMessageTypeList = (): SetMessageTypeAction => {\n return {\n type: SET_MESSAGE_TYPES,\n payload: [\n {\n id: 1,\n name: 'Send a message to a single contact',\n },\n {\n id: 2,\n name: 'Send a message to a specific contact',\n },\n {\n id: 3,\n name: 'Send a message to multiple contacts',\n },\n ],\n };\n};\n\nconst permissionsList = [\n {\n name: CustomPermissionName.SEND_MESSAGE,\n description: 'We would like to send message from this mini app.',\n },\n];\n\nconst sendMessageToContact = (\n image: String,\n text: String,\n caption: String,\n action: String,\n bannerMessage: String\n): Function => {\n return (dispatch) => {\n const messageToContact: MessageToContact = {\n text: text,\n image: image,\n caption: caption,\n action: action,\n bannerMessage: bannerMessage,\n };\n return MiniApp.chatService.sendMessageToContact(messageToContact);\n };\n};\n\nconst sendMessageToContactId = (\n contactId: String,\n image: String,\n text: String,\n caption: String,\n action: String\n): Function => {\n return async (dispatch) => {\n const promise = MiniApp.requestCustomPermissions(permissionsList).then(\n (permissions) => {\n return permissions[0].status === CustomPermissionStatus.ALLOWED;\n }\n );\n const promiseResult = await promise;\n\n if (promiseResult === true) {\n const messageToContact: MessageToContact = {\n text: text,\n image: image,\n caption: caption,\n action: action,\n };\n return MiniApp.chatService.sendMessageToContactId(\n contactId,\n messageToContact\n );\n }\n };\n};\n\nconst sendMessageToMultipleContacts = (\n image: String,\n text: String,\n caption: String,\n action: String,\n bannerMessage: String\n): Function => {\n return (dispatch) => {\n const messageToContact: MessageToContact = {\n text: text,\n image: image,\n caption: caption,\n action: action,\n bannerMessage: bannerMessage,\n };\n return MiniApp.chatService.sendMessageToMultipleContacts(messageToContact);\n };\n};\n\nexport {\n getMessageTypeList,\n sendMessageToContact,\n sendMessageToContactId,\n sendMessageToMultipleContacts,\n};\n","import React, { useState, Fragment, useEffect } from 'react';\n\nimport {\n makeStyles,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n CardActions,\n Button,\n TextField,\n Dialog,\n DialogTitle,\n DialogContent,\n DialogContentText,\n DialogActions,\n} from '@material-ui/core';\nimport { connect } from 'react-redux';\nimport { sendAnalytics } from './helper';\n\nimport { pandaLogo } from '../assets/images/base64';\nimport {\n sendMessageToContact,\n sendMessageToContactId,\n sendMessageToMultipleContacts,\n} from '../services/message/actions';\nimport { getMessageTypeList } from '../services/message/actions';\nimport type { MessageType } from '../services/message/types';\nimport { MessageTypeId } from '../services/message/types';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst defaultTexts = new Map();\ndefaultTexts.set(MessageTypeId.SINGLE_CONTACT, 'Single contact');\ndefaultTexts.set(MessageTypeId.SINGLE_CONTACT_ID, 'Specific contact ID');\ndefaultTexts.set(MessageTypeId.MULTIPLE_CONTACTS, 'Multiple contact');\nconst defaultCaption = 'Open JS miniapp';\nconst defaultAction = `https://one.rakuten.co.jp/miniapp/preview/${\n process.env.REACT_APP_MINI_APP_ID || ''\n}`;\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: '100%',\n },\n fields: {\n color: theme.color.primary,\n '& div': {\n color: theme.color.primary,\n },\n },\n actions: {\n justifyContent: 'center',\n },\n errorMessage: {\n fontSize: 12,\n color: 'indianred',\n },\n}));\n\ntype MessageTypeProps = {\n messageTypes: Array,\n sendMessageToContact: (\n image: string,\n text: string,\n caption: string,\n action: string,\n bannerMessage: string\n ) => Promise,\n sendMessageToContactId: (\n contactId: string,\n image: string,\n text: string,\n caption: string,\n action: string\n ) => Promise,\n sendMessageToMultipleContacts: (\n image: string,\n text: string,\n caption: string,\n action: string,\n bannerMessage: string\n ) => Promise,\n};\n\nconst Message = (props: MessageTypeProps) => {\n const classes = useStyles();\n const messageTypes = props.messageTypes;\n const [message, setMessage] = useState({\n id: messageTypes[0] !== undefined ? messageTypes[0].id : -1,\n contactId: '',\n image: pandaLogo,\n text: defaultTexts.get(MessageTypeId.SINGLE_CONTACT),\n caption: defaultCaption,\n action: defaultAction,\n bannerMessage: 'Win 30 coins from every friends who joins from your invite',\n });\n const [validation, setValidationState] = useState({\n error: false,\n message: '',\n });\n const [messageResponse, setMessageResponse] = useState({\n show: false,\n response: '',\n });\n const validate = () => {\n if (\n messageTypes.map((it) => it.id).findIndex((it) => it === message.id) ===\n -1\n ) {\n setValidationState({ error: true, message: 'select message' });\n return false;\n } else if (message.text === undefined || message.text.trim().length === 0) {\n setValidationState({ error: true, message: 'text cannot be empty' });\n return false;\n } else if (\n message.id === 2 &&\n (message.contactId === undefined || message.contactId.trim().length === 0)\n ) {\n setValidationState({\n error: true,\n message: 'contact id cannot be empty',\n });\n return false;\n } else {\n setValidationState({ error: false, message: '' });\n }\n return true;\n };\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Message',\n 'Screen',\n 'Page',\n ''\n );\n });\n const handleChange = (event) => {\n message.text = defaultTexts.get(event.target.value);\n message.action = defaultAction;\n message.caption = defaultCaption;\n setMessage({ ...message, id: event.target.value });\n };\n const talkToChatbot = () => {\n if (validate()) {\n if (message.id === MessageTypeId.SINGLE_CONTACT) {\n props\n .sendMessageToContact(\n message.image.trim() ?? '',\n message.text !== undefined ? message.text.trim() : '',\n message.caption.trim() ?? '',\n message.action.trim() ?? '',\n message.bannerMessage.trim() ?? ''\n )\n .then((contactId) => {\n let respMsg = 'Message not sent';\n if (contactId !== null)\n respMsg = 'Message is sent to contact Id: ' + contactId;\n setMessageResponse({\n show: true,\n response: respMsg,\n });\n })\n .catch((e) => {\n setMessageResponse({\n show: true,\n response: e,\n });\n });\n } else if (message.id === MessageTypeId.SINGLE_CONTACT_ID) {\n props\n .sendMessageToContactId(\n message.contactId.trim(),\n message.image.trim() ?? '',\n message.text !== undefined ? message.text.trim() : '',\n message.caption.trim() ?? '',\n message.action.trim() ?? ''\n )\n .then((contactId) => {\n let respMsg = 'Message not sent';\n if (contactId !== null && contactId !== undefined)\n respMsg = 'Message is sent to contact Id: ' + contactId;\n setMessageResponse({\n show: true,\n response: respMsg,\n });\n })\n .catch((e) => {\n setMessageResponse({\n show: true,\n response: e,\n });\n });\n } else if (message.id === MessageTypeId.MULTIPLE_CONTACTS) {\n props\n .sendMessageToMultipleContacts(\n message.image.trim() ?? '',\n message.text !== undefined ? message.text.trim() : '',\n message.caption.trim() ?? '',\n message.action.trim() ?? '',\n message.bannerMessage.trim() ?? ''\n )\n .then((contactIds) => {\n let respMsg = 'Message not sent';\n if (contactIds !== null)\n respMsg = contactIds.length + ' contacts sent';\n setMessageResponse({\n show: true,\n response: respMsg,\n });\n })\n .catch((e) => {\n setMessageResponse({\n show: true,\n response: e,\n });\n });\n }\n }\n };\n\n const onContactIdChange = (event) => {\n setMessage({ ...message, contactId: event.target.value });\n };\n const onImageChange = (event) => {\n setMessage({ ...message, image: event.target.value });\n };\n const onTextChange = (event) => {\n setMessage({ ...message, text: event.target.value });\n };\n const onBannerMessageChange = (event) => {\n setMessage({ ...message, bannerMessage: event.target.value });\n };\n const onCaptionChange = (event) => {\n setMessage({ ...message, caption: event.target.value });\n };\n const onActionChange = (event) => {\n setMessage({ ...message, action: event.target.value });\n };\n\n const onChatbotClose = () => {\n setMessageResponse({ show: false, response: '' });\n };\n\n return (\n
\n \n \n Send Message Type\n \n {messageTypes.map((c) => (\n \n {c.name}\n \n ))}\n \n \n\n {message.id === MessageTypeId.SINGLE_CONTACT_ID && (\n \n \n \n )}\n\n \n \n \n \n \n \n {message.id !== MessageTypeId.SINGLE_CONTACT_ID && (\n \n \n \n )}\n \n \n \n \n \n \n {validation.error && (\n
\n {validation.message}\n
\n )}\n \n \n SEND MESSAGE\n \n \n \n Response\n \n {messageResponse.response}\n \n \n \n \n \n
\n
\n );\n};\n\nconst mapStatetoProps = (state, props) => {\n return {\n ...props,\n messageTypes: state.message.messageTypes,\n };\n};\nconst mapDispatchToProps = (dispatch) => {\n return {\n getBots: () => dispatch(getMessageTypeList()),\n sendMessageToContact: (image, text, caption, action, bannerMessage) =>\n dispatch(\n sendMessageToContact(image, text, caption, action, bannerMessage)\n ),\n sendMessageToContactId: (contactId, image, text, caption, action) =>\n dispatch(sendMessageToContactId(contactId, image, text, caption, action)),\n sendMessageToMultipleContacts: (\n image,\n text,\n caption,\n action,\n bannerMessage\n ) =>\n dispatch(\n sendMessageToMultipleContacts(\n image,\n text,\n caption,\n action,\n bannerMessage\n )\n ),\n };\n};\n\nexport default connect(mapStatetoProps, mapDispatchToProps)(Message);\n","import React, { useReducer, useState, Fragment, useEffect } from 'react';\n\nimport {\n Button,\n CircularProgress,\n Container,\n FormGroup,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { green, red } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Tab from '@material-ui/core/Tab';\nimport TabContext from '@material-ui/lab/TabContext';\nimport TabList from '@material-ui/lab/TabList';\nimport TabPanel from '@material-ui/lab/TabPanel';\nimport clsx from 'clsx';\nimport {\n MiniAppError,\n MiniAppSecureStorageSize,\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { connect } from 'react-redux';\nimport { sendAnalytics } from './helper';\nimport {\n clear,\n getItem,\n removeItems,\n setItems,\n size,\n} from '../services/secure-storage/actions';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n root: {\n background: theme.color.secondary,\n width: '85vw',\n maxWidth: 500,\n color: red,\n },\n wrapperContainer: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n paddingLeft: 0,\n },\n wrapper: {\n position: 'relative',\n marginTop: 10,\n },\n buttonSuccess: {\n backgroundColor: green[500],\n '&:hover': {\n backgroundColor: green[700],\n },\n },\n buttonFailure: {\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n error: {\n color: red[500],\n marginTop: 10,\n },\n success: {\n color: green[500],\n marginTop: 20,\n },\n rootUserGroup: {\n alignItems: 'center',\n },\n formInput: {\n width: '90%',\n marginTop: 10,\n },\n rootCardActions: {\n justifyContent: 'center',\n },\n caseSelector: {\n marginTop: 5,\n },\n button: {\n marginBottom: 15,\n },\n dataFormsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n },\n paper: {\n width: '100%',\n paddingBottom: 10,\n marginBottom: 20,\n '&:last-child': {\n marginBottom: 0,\n },\n },\n red: {\n color: red[500],\n },\n padding10: {\n padding: 10,\n },\n}));\n\nexport const initialState = {\n isLoading: false,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n isStorageCleaned: false,\n};\n\ntype State = {\n isLoading: ?boolean,\n isError: ?boolean,\n};\n\ntype Action = {\n type: string,\n miniAppError: MiniAppError,\n inputError: ?string,\n};\n\nexport const dataFetchReducer = (state: State, action: Action) => {\n switch (action.type) {\n case 'FETCH_INIT':\n return {\n ...state,\n isLoading: true,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n isStorageCleaned: false,\n };\n case 'FETCH_SUCCESS':\n return {\n ...state,\n isLoading: false,\n isError: false,\n error: null,\n isSuccess: true,\n inputError: null,\n isStorageCleaned: false,\n };\n case 'FETCH_FAILURE':\n return {\n ...initialState,\n isLoading: false,\n isError: true,\n error:\n (typeof action.miniAppError == 'string'\n ? action.miniAppError\n : action.miniAppError.message) || '',\n isSuccess: false,\n inputError: null,\n isStorageCleaned: false,\n };\n case 'INPUT_FAILURE':\n return {\n ...initialState,\n isLoading: false,\n isError: true,\n error: null,\n isSuccess: false,\n inputError: action.inputError,\n isStorageCleaned: false,\n };\n case 'RESET':\n return {\n ...initialState,\n isLoading: false,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n isStorageCleaned: false,\n };\n case 'STORAGE_CLEAR_SUCCESS':\n return {\n ...initialState,\n isLoading: false,\n isError: false,\n error: null,\n isSuccess: false,\n inputError: null,\n isStorageCleaned: true,\n };\n default:\n throw Error('Unknown action type');\n }\n};\n\ntype SecureStorageProps = {\n getItems: string,\n size: MiniAppSecureStorageSize,\n requestSetItems: (items: string) => Promise,\n requestGetItem: (key: string) => Promise,\n requestRemoveItems: (key: Array) => Promise,\n requestClear: () => Promise,\n requestSize: () => Promise,\n storageError: MiniAppError,\n};\n\nfunction SecureStorageComponent(props: SecureStorageProps) {\n const [state, dispatch] = useReducer(dataFetchReducer, initialState);\n const classes = useStyles();\n const [storeKey, setStoreKey] = useState('');\n const [storeKeyValue, setStoreKeyValue] = useState('');\n const [storeKey1, setStoreKey1] = useState('');\n const [storeKeyValue1, setStoreKeyValue1] = useState('');\n const [getItemUsingKey, setGetItemUsingKey] = useState('');\n const [removeItemUsingKey, setRemoveItemUsingKey] = useState('');\n const [removeItemUsingKey1, setRemoveItemUsingKey1] = useState('');\n\n const buttonClassname = clsx({\n [classes.buttonFailure]: state.isError,\n [classes.buttonSuccess]: !state.isError,\n });\n\n function isEmpty(str) {\n return !str || str.trim().length === 0;\n }\n\n function setSecureStorageButtonClick(e) {\n if (\n isKeyAndValueEmpty(storeKey, storeKeyValue) &&\n isKeyAndValueEmpty(storeKey1, storeKeyValue1)\n ) {\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Please enter Key and Value',\n });\n return;\n }\n\n if (\n isValidKeyValue(storeKey, storeKeyValue) &&\n isValidKeyValue(storeKey1, storeKeyValue1)\n ) {\n dispatch({ type: 'RESET', miniAppError: null, inputError: null });\n saveItems();\n } else {\n console.log('ERROR');\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Please enter both Key and Value',\n });\n }\n }\n\n function saveItems() {\n if (!state.isLoading) {\n dispatch({ type: 'FETCH_INIT', miniAppError: null, inputError: null });\n const keyValuePair = {};\n keyValuePair[storeKey] = storeKeyValue;\n keyValuePair[storeKey1] = storeKeyValue1;\n Object.keys(keyValuePair).forEach((key) => {\n if (!keyValuePair[key]) delete keyValuePair[key];\n });\n requestSetItems(keyValuePair);\n }\n }\n\n function requestSetItems(keyValuePair) {\n props\n .requestSetItems(JSON.stringify(keyValuePair))\n .then((response) => {\n console.log('Page - SetItems - Success', response);\n dispatch({\n type: 'FETCH_SUCCESS',\n miniAppError: null,\n inputError: null,\n });\n })\n .catch((miniAppError) => {\n console.log('Page - SetItems - Error: ', miniAppError);\n dispatch({ type: 'FETCH_FAILURE', miniAppError, inputError: null });\n });\n }\n\n function getSecureStorageButtonClick(e) {\n if (!isEmpty(getItemUsingKey)) {\n if (!state.isLoading) {\n dispatch({ type: 'FETCH_INIT', miniAppError: null, inputError: null });\n props\n .requestGetItem(getItemUsingKey)\n .then((response) => {\n console.log('Page - GetItems - Success', response);\n dispatch({\n type: 'FETCH_SUCCESS',\n miniAppError: null,\n inputError: null,\n });\n })\n .catch((miniAppError) => {\n console.log('Page - GetItems - Error: ', miniAppError);\n dispatch({ type: 'FETCH_FAILURE', miniAppError, inputError: null });\n });\n }\n } else {\n dispatch({\n type: 'INPUT_FAILURE',\n miniAppError: null,\n inputError: 'Key cannot be empty',\n });\n }\n }\n\n function removeItemsFromSecureStorageButtonClick(e) {\n const keys = [removeItemUsingKey, removeItemUsingKey1];\n const filteredKeys = keys.filter(function (str) {\n return isEmpty(str) === false;\n });\n if (!state.isLoading) {\n dispatch({ type: 'FETCH_INIT', miniAppError: null, inputError: null });\n props\n .requestRemoveItems(filteredKeys)\n .then((response) => {\n console.log('Page - RemoveItems - Success', response);\n dispatch({\n type: 'FETCH_SUCCESS',\n miniAppError: null,\n inputError: null,\n });\n })\n .catch((miniAppError) => {\n console.log('Page - RemoveItems - Error: ', miniAppError);\n dispatch({ type: 'FETCH_FAILURE', miniAppError, inputError: null });\n });\n }\n }\n\n function getSizeButtonClick(e) {\n if (!state.isLoading) {\n dispatch({ type: 'FETCH_INIT', miniAppError: null, inputError: null });\n props\n .requestSize()\n .then((response) => {\n console.log('Page - Size - Success', response);\n dispatch({\n type: 'FETCH_SUCCESS',\n miniAppError: null,\n inputError: null,\n });\n })\n .catch((miniAppError) => {\n console.log('Page - Size - Error: ', miniAppError);\n dispatch({ type: 'FETCH_FAILURE', miniAppError, inputError: null });\n });\n }\n }\n\n function clearSecureStorageSizeButtonClick(e) {\n if (!state.isLoading) {\n dispatch({ type: 'FETCH_INIT', miniAppError: null, inputError: null });\n props\n .requestClear()\n .then((response) => {\n console.log('Page - clearStorageItems - Success', response);\n dispatch({\n type: 'STORAGE_CLEAR_SUCCESS',\n miniAppError: null,\n inputError: null,\n });\n })\n .catch((miniAppError) => {\n console.log('Page - clearSecureStorageItems - Error: ', miniAppError);\n dispatch({ type: 'FETCH_FAILURE', miniAppError, inputError: null });\n });\n }\n }\n\n function isKeyAndValueEmpty(key, val) {\n return isEmpty(key) && isEmpty(val);\n }\n\n function isValidKeyValue(key, val) {\n if (isEmpty(key) && !isEmpty(val)) {\n return false;\n } else if (!isEmpty(key) && isEmpty(val)) {\n return false;\n }\n return true;\n }\n\n function SetSecureStorageCardActionsForm() {\n return (\n \n \n setStoreKey(e.target.value)}\n />\n setStoreKeyValue(e.target.value)}\n />\n \n
\n \n setStoreKey1(e.target.value)}\n />\n setStoreKeyValue1(e.target.value)}\n />\n \n
\n
\n \n Set Secure Storage\n \n {state.isLoading && (\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.isSuccess && (\n \n Items stored Successfully\n \n )}\n
\n );\n }\n\n function GetSecureStorageCardActionsForm() {\n return (\n \n setGetItemUsingKey(e.target.value)}\n />\n
\n \n Get Secure Storage\n \n {state.isLoading && (\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && !state.isError && (\n \n {props.getItems}\n \n )}\n
\n );\n }\n\n function RemoveSecureStorageCardActionsForm() {\n return (\n \n setRemoveItemUsingKey(e.target.value)}\n />\n
\n setRemoveItemUsingKey1(e.target.value)}\n />\n
\n
\n \n Remove Items\n \n {state.isLoading && (\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading && state.isSuccess && (\n \n Items removed Successfully\n \n )}\n
\n );\n }\n\n function OtherFunctionalitiesCardActionsForm() {\n return (\n \n \n Get Size\n \n
\n \n Clear Storage\n \n\n {state.isLoading && (\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.inputError}\n \n )}\n {!state.isLoading && state.isError && (\n \n {state.error}\n \n )}\n {!state.isLoading &&\n !state.isError &&\n state.isSuccess &&\n props.size && (\n \n
Maximum Size: {props.size.max}
\n
Used Space: {props.size.used}
\n
Available: {props.size.max - props.size.used}
\n
\n )}\n {!state.isLoading && !state.isError && state.isStorageCleaned && (\n \n Storage Cleared Successfully\n \n )}\n
\n );\n }\n\n const [value, setValue] = React.useState('1');\n\n const handleChange = (event: Event, newValue: string) => {\n dispatch({ type: 'RESET', miniAppError: null, inputError: null });\n setValue(newValue);\n };\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Secure storage',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n return (\n \n \n \n \n \n \n \n \n {SetSecureStorageCardActionsForm()}\n {GetSecureStorageCardActionsForm()}\n {RemoveSecureStorageCardActionsForm()}\n {OtherFunctionalitiesCardActionsForm()}\n \n \n );\n}\n\nconst mapStateToProps = (state) => {\n return {\n setItems: state.secureStorage.setItems,\n getItems: state.secureStorage.getItem,\n size: state.secureStorage.size,\n storageError: state.error,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n requestSetItems: (items) => dispatch(setItems(items)),\n requestGetItem: (key) => dispatch(getItem(key)),\n requestRemoveItems: (keys) => dispatch(removeItems(keys)),\n requestClear: () => dispatch(clear()),\n requestSize: () => dispatch(size()),\n };\n};\n\nexport { SecureStorageComponent };\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(SecureStorageComponent);\n","import MiniApp from 'js-miniapp-sdk';\nimport { MiniAppSecureStorageSize } from 'js-miniapp-sdk';\n\nimport {\n SET_SECURE_STORAGE_SUCCESS,\n SET_SECURE_STORAGE_FAILURE,\n GET_SECURE_STORAGE_SUCCESS,\n GET_SECURE_STORAGE_FAILURE,\n REMOVE_ITEMS_STORAGE_SUCCESS,\n REMOVE_ITEMS_STORAGE_FAILURE,\n CLEAR_SECURE_STORAGE_SUCCESS,\n CLEAR_SECURE_STORAGE_FAILURE,\n GET_SIZE_SECURE_STORAGE_SUCCESS,\n GET_SIZE_SECURE_STORAGE_FAILURE,\n} from './types';\n\ntype SetItemsSuccessAction = { type: string };\ntype GetItemSuccessAction = { type: string, item: string };\ntype RemoveItemsSuccessAction = { type: string };\ntype ClearSuccessAction = { type: string };\ntype SizeSuccessAction = { type: string, size: MiniAppSecureStorageSize };\n\nconst setItems = (items: string): Function => {\n return (dispatch) => {\n return MiniApp.secureStorageService\n .setItems(JSON.parse(items))\n .then(() => {\n console.log('setItems Success: ');\n dispatch({\n type: SET_SECURE_STORAGE_SUCCESS,\n });\n return Promise.resolve(undefined);\n })\n .catch((error) => {\n console.log('SetItems Error: ', error);\n dispatch({\n type: SET_SECURE_STORAGE_FAILURE,\n error,\n });\n throw error;\n });\n };\n};\n\nconst getItem = (key: string): Function => {\n return (dispatch) => {\n return MiniApp.secureStorageService\n .getItem(key)\n .then((responseData) => {\n console.log('getItems SuccessAction: ', responseData);\n dispatch({\n type: GET_SECURE_STORAGE_SUCCESS,\n item: responseData,\n });\n return Promise.resolve(responseData);\n })\n .catch((error) => {\n console.log('getItems Error: ', error);\n dispatch({\n type: GET_SECURE_STORAGE_FAILURE,\n error,\n });\n throw error;\n });\n };\n};\n\nconst removeItems = (keys: [string]): Function => {\n return (dispatch) => {\n return MiniApp.secureStorageService\n .removeItems(keys)\n .then(() => {\n console.log('removeItems SuccessAction: ');\n dispatch({\n type: REMOVE_ITEMS_STORAGE_SUCCESS,\n });\n return Promise.resolve(undefined);\n })\n .catch((error) => {\n console.log('removeItems Error: ', error);\n dispatch({\n type: REMOVE_ITEMS_STORAGE_FAILURE,\n error,\n });\n throw error;\n });\n };\n};\n\nconst clear = (): Function => {\n return (dispatch) => {\n return MiniApp.secureStorageService\n .clear()\n .then((responseData) => {\n console.log('clear SuccessAction: ', responseData);\n dispatch({\n type: CLEAR_SECURE_STORAGE_SUCCESS,\n });\n return Promise.resolve(responseData);\n })\n .catch((error) => {\n console.log('clear Error: ', error);\n dispatch({\n type: CLEAR_SECURE_STORAGE_FAILURE,\n error,\n });\n throw error;\n });\n };\n};\n\nconst size = (): Function => {\n return (dispatch) => {\n return MiniApp.secureStorageService\n .size()\n .then((responseData) => {\n console.log('size SuccessAction: ', responseData);\n dispatch({\n type: GET_SIZE_SECURE_STORAGE_SUCCESS,\n size: responseData,\n });\n return Promise.resolve(responseData);\n })\n .catch((error) => {\n console.log('size Error: ', error);\n dispatch({\n type: GET_SIZE_SECURE_STORAGE_FAILURE,\n error,\n });\n throw error;\n });\n };\n};\n\nexport { setItems, getItem, removeItems, clear, size };\nexport type {\n SetItemsSuccessAction,\n GetItemSuccessAction,\n RemoveItemsSuccessAction,\n ClearSuccessAction,\n SizeSuccessAction,\n};\n","const SET_SECURE_STORAGE_SUCCESS = 'SET_SECURE_STORAGE_SUCCESS';\nconst SET_SECURE_STORAGE_FAILURE = 'SET_SECURE_STORAGE_FAILURE';\nconst GET_SECURE_STORAGE_SUCCESS = 'GET_SECURE_STORAGE_SUCCESS';\nconst GET_SECURE_STORAGE_FAILURE = 'GET_SECURE_STORAGE_FAILURE';\nconst REMOVE_ITEMS_STORAGE_SUCCESS = 'REMOVE_ITEMS_SECURE_STORAGE_SUCCESS';\nconst REMOVE_ITEMS_STORAGE_FAILURE = 'REMOVE_ITEMS_SECURE_STORAGE_FAILURE';\nconst CLEAR_SECURE_STORAGE_SUCCESS = 'CLEAR_SECURE_STORAGE_SUCCESS';\nconst CLEAR_SECURE_STORAGE_FAILURE = 'CLEAR_SECURE_STORAGE_FAILURE';\nconst GET_SIZE_SECURE_STORAGE_SUCCESS = 'GET_SIZE_SECURE_STORAGE_SUCCESS';\nconst GET_SIZE_SECURE_STORAGE_FAILURE = 'GET_SIZE_SECURE_STORAGE_FAILURE';\n\nexport {\n SET_SECURE_STORAGE_SUCCESS,\n SET_SECURE_STORAGE_FAILURE,\n GET_SECURE_STORAGE_SUCCESS,\n GET_SECURE_STORAGE_FAILURE,\n REMOVE_ITEMS_STORAGE_SUCCESS,\n REMOVE_ITEMS_STORAGE_FAILURE,\n CLEAR_SECURE_STORAGE_SUCCESS,\n CLEAR_SECURE_STORAGE_FAILURE,\n GET_SIZE_SECURE_STORAGE_SUCCESS,\n GET_SIZE_SECURE_STORAGE_FAILURE,\n};\n","import React, { useEffect } from 'react';\n\nimport {\n Button,\n TextField,\n CardContent,\n CardActions,\n makeStyles,\n} from '@material-ui/core';\nimport MiniApp, {\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n} from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\nimport GreyCard from '../components/GreyCard';\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n marginTop: '40px',\n },\n content: {\n height: '50%',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n actions: {\n justifyContent: 'center',\n },\n textfield: {\n width: '80%',\n maxWidth: 300,\n background: 'white',\n '& input': {\n color: theme.color.primary,\n lineHeight: '1.5em',\n fontSize: '1.2em',\n },\n },\n}));\n\nfunction Share() {\n const classes = useStyles();\n const defaultInputValue = 'This is JS-SDK-Sample.';\n let inputValue = defaultInputValue;\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Share',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n const handleInput = (e: SyntheticInputEvent) => {\n e.preventDefault();\n inputValue = e.currentTarget.value;\n };\n\n const shareContent = () => {\n const info = { content: inputValue }; //see js-miniapp-bridge/types/share-info\n MiniApp.shareInfo(info)\n .then((success) => {\n console.log(success);\n })\n .catch((error) => {\n console.error(error);\n });\n };\n\n return (\n \n \n \n \n \n \n Share\n \n \n \n );\n}\n\nexport default Share;\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n TextField,\n CardContent,\n CardActions,\n makeStyles,\n Typography,\n} from '@material-ui/core';\nimport MiniApp, {\n MAAnalyticsActionType,\n MAAnalyticsEventType,\n UniversalBridgeInfo,\n} from 'js-miniapp-sdk';\nimport { HostAppEvents } from 'js-miniapp-sdk';\nimport { sendAnalytics } from './helper';\nimport GreyCard from '../components/GreyCard';\n\nimport { red, green } from '@material-ui/core/colors';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n actions: {\n justifyContent: 'center',\n },\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n },\n sendInput: {\n width: '90%',\n marginTop: 10,\n marginBottom: 10,\n background: 'white',\n },\n receiveInput: {\n width: '90%',\n marginTop: 10,\n marginBottom: 10,\n disabled: 'disabled',\n caretColor: 'transparent',\n },\n formInput: {\n marginTop: 10,\n marginBottom: 10,\n background: 'white',\n width: '90%',\n },\n success: {\n color: green[500],\n marginTop: 20,\n textAlign: 'center',\n wordBreak: 'break-all',\n },\n faliure: {\n color: red[500],\n },\n}));\n\nconst UniversalBridge = () => {\n const classes = useStyles();\n const defaultJsonValue = '{\"data\":\"This is a sample json information\"}';\n let [inputValue, setInputValue] = useState(defaultJsonValue);\n let [infoInputKey, setInfoInputKey] = useState();\n let [infoInputValue, setInfoInputValue] = useState();\n let [infoInputDescription, setInfoInputDescription] = useState();\n let [receiveJsonInfo, setReceiveJsonInfo] = useState('');\n let [sendJsonStatus, setSendJsonStatus] = useState('');\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Universal Bridge',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n window.addEventListener(HostAppEvents.RECEIVE_JSON_INFO, function (e) {\n let message = e.detail.message;\n console.log(message);\n receiveJsonInfo = message;\n setReceiveJsonInfo(message);\n });\n\n const handleInput = (e: SyntheticInputEvent) => {\n e.preventDefault();\n setInputValue(e.currentTarget.value);\n };\n\n const clearSendInput = () => {\n setInputValue('');\n };\n\n const clearInfoSendInput = () => {\n setInfoInputKey('');\n setInfoInputValue('');\n setInfoInputDescription('');\n };\n\n const sendJson = () => {\n const info = { content: inputValue };\n MiniApp.universalBridge\n .sendJsonToHostapp(info)\n .then((success) => {\n console.log(success);\n setSendJsonStatus('SUCCESS');\n })\n .catch((miniAppError) => {\n console.error(miniAppError);\n setSendJsonStatus(miniAppError.message);\n });\n };\n\n const sendInfo = () => {\n const info: UniversalBridgeInfo = {\n key: infoInputKey,\n value: infoInputValue,\n description: infoInputDescription,\n };\n MiniApp.universalBridge\n .sendInfoToHostapp(info)\n .then((success) => {\n console.log(success);\n setSendJsonStatus('SUCCESS');\n })\n .catch((miniAppError) => {\n console.error(miniAppError);\n setSendJsonStatus(miniAppError.message);\n });\n };\n\n const showSendJsonStatus = () => {\n if (sendJsonStatus === '') {\n return
;\n }\n if (sendJsonStatus === 'SUCCESS') {\n return (\n \n \"{sendJsonStatus}\"\n \n );\n } else {\n return (\n \n \"Error: {sendJsonStatus}\"\n \n );\n }\n };\n\n return (\n
\n \n \n

Send JSON/String to HostApp

\n
{showSendJsonStatus()}
\n
\n \n \n \n \n \n Send Json\n \n \n Clear\n \n \n \n
\n setInfoInputKey(e.target.value)}\n />\n setInfoInputValue(e.target.value)}\n />\n setInfoInputDescription(e.target.value)}\n />\n
\n \n \n Send Info\n \n \n Clear\n \n \n \n \n

Receive JSON/String from HostApp

\n
\n \n \n \n
\n
\n );\n};\n\nexport default UniversalBridge;\n","// @flow\nimport React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n CardContent,\n CardActions,\n TextField,\n makeStyles,\n} from '@material-ui/core';\n\nimport GreyCard from '../components/GreyCard';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n actions: {\n justifyContent: 'center',\n paddingBottom: 16,\n },\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n },\n textfield: {\n width: '100%',\n },\n}));\n\nconst deepLinkStyle = makeStyles((theme) => ({\n content: {\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n paddingBottom: 0,\n height: '50px',\n },\n card: {\n width: '100%',\n height: '100px',\n },\n actions: {\n justifyContent: 'center',\n paddingBottom: 16,\n },\n}));\n\nconst UriSchemes = () => {\n const EXTERNAL_WEBVIEW_URL =\n 'https://htmlpreview.github.io/?https://raw.githubusercontent.com/rakutentech/js-miniapp/master/js-miniapp-sample/external-webview/index.html';\n const classes = useStyles();\n const deeplinkClass = deepLinkStyle();\n const [params, setParams] = useState('?testSendParam=someValue&test2=test2');\n const [callbackUrl, setCallbackUrl] = useState(\n `${window.location.protocol}//${window.location.host}/index.html`\n );\n const [externalUrl, setExternalUrl] = useState('');\n\n function validateParams(params: string) {\n return params.startsWith('?') && params.indexOf('=') >= 0;\n }\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'URI Schemes',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n function onOpenExternalWebview() {\n if (params && !validateParams(params)) {\n window.alert(\n 'Invalid params. Please input params in the format ?param1=value1¶m2=value2'\n );\n return;\n }\n\n let url = new URL(EXTERNAL_WEBVIEW_URL + params);\n\n url.search = url.search\n .concat(url.search ? '&' : '?')\n .concat(`callbackUrl=${encodeURIComponent(callbackUrl)}`);\n\n onOpenUrl(url);\n }\n\n function onOpenUrl(url: URL) {\n window.location.href = url;\n }\n\n return (\n
\n \n tel: scheme\n \n \n +1-123-456-7890\n \n \n\n tel:// scheme\n \n \n +1-123-456-7890\n \n \n\n mailto:\n \n \n Address / cc / bcc / subject / body\n \n \n\n \n External Webview Params & Callback\n \n \n setParams(e.currentTarget.value)}\n value={params}\n label=\"Params to pass\"\n variant=\"outlined\"\n color=\"primary\"\n inputProps={{\n 'data-testid': 'input-field',\n }}\n />\n \n \n setCallbackUrl(e.currentTarget.value)}\n value={callbackUrl}\n label=\"Mini App Return URL\"\n variant=\"outlined\"\n color=\"primary\"\n inputProps={{\n 'data-testid': 'callback-input-field',\n }}\n />\n \n \n \n Open\n \n \n \n
\n \n URL or Deep Link\n \n setExternalUrl(e.currentTarget.value)}\n value={externalUrl}\n label=\"Deep Link URL\"\n variant=\"outlined\"\n color=\"primary\"\n inputProps={{\n 'data-testid': 'deeplink-input-field',\n }}\n />\n \n \n externalUrl && onOpenUrl(externalUrl)}\n >\n Open\n \n \n \n
\n );\n};\n\nexport default UriSchemes;\n","import React, { useReducer, useEffect, useState } from 'react';\n\nimport {\n Avatar,\n Button,\n CardHeader,\n Container,\n CircularProgress,\n FormGroup,\n Typography,\n List,\n ListItem,\n ListItemAvatar,\n ListItemText,\n TextField,\n Paper,\n InputAdornment,\n} from '@material-ui/core';\nimport { red, green } from '@material-ui/core/colors';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Tab from '@material-ui/core/Tab';\nimport TabContext from '@material-ui/lab/TabContext';\nimport TabList from '@material-ui/lab/TabList';\nimport TabPanel from '@material-ui/lab/TabPanel';\nimport SearchIcon from '@material-ui/icons/Search';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport clsx from 'clsx';\nimport {\n CustomPermission,\n CustomPermissionResult,\n CustomPermissionName,\n CustomPermissionStatus,\n Contact,\n Points,\n} from 'js-miniapp-sdk';\nimport { connect } from 'react-redux';\n\nimport { requestCustomPermissions } from '../services/permissions/actions';\nimport {\n requestContactList,\n requestProfilePhoto,\n requestUserName,\n requestPoints,\n} from '../services/user/actions';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n scrollable: {\n overflowY: 'auto',\n width: '100%',\n paddingTop: 20,\n paddingBottom: 20,\n },\n card: {\n width: '100%',\n height: 'auto',\n },\n root: {\n background: theme.color.secondary,\n width: '85vw',\n maxWidth: 500,\n },\n wrapperContainer: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n paddingLeft: 0,\n },\n wrapper: {\n position: 'relative',\n marginTop: 10,\n },\n buttonSuccess: {\n backgroundColor: green[500],\n '&:hover': {\n backgroundColor: green[700],\n },\n },\n buttonFailure: {\n backgroundColor: red[500],\n '&:hover': {\n backgroundColor: red[700],\n },\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n error: {\n color: red[500],\n marginTop: 10,\n },\n success: {\n color: green[500],\n marginTop: 20,\n },\n rootUserGroup: {\n alignItems: 'center',\n },\n formInput: {\n width: '90%',\n marginTop: 10,\n },\n rootCardActions: {\n justifyContent: 'center',\n },\n caseSelector: {\n marginTop: 5,\n },\n button: {\n marginBottom: 15,\n },\n dataFormsWrapper: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n },\n paper: {\n width: '100%',\n paddingBottom: 10,\n marginBottom: 20,\n '&:last-child': {\n marginBottom: 0,\n },\n },\n profilePhoto: {\n height: 100,\n width: 100,\n },\n profilePhotoOuter: {\n display: 'flex',\n justifyContent: 'center',\n },\n userProfile: {\n maxHeight: 125,\n overflow: 'auto',\n },\n contactsList: {\n maxHeight: 320,\n overflow: 'auto',\n },\n red: {\n color: red[500],\n },\n}));\n\nexport const initialState = {\n isNamePhotoLoading: false,\n isNamePhottoError: false,\n hasRequestedNamePhotoPermissions: false,\n isContactsLoading: false,\n isContactsError: false,\n hasRequestedContactsPermissions: false,\n isPointsLoading: false,\n isPointsError: false,\n hasRequestedPointPermissions: false,\n};\n\ntype State = {\n isNamePhotoLoading: ?boolean,\n isNamePhotoError: ?boolean,\n hasRequestedNamePhotoPermissions: boolean,\n isContactsLoading: ?boolean,\n isContactsError: ?boolean,\n hasRequestedContactsPermissions: boolean,\n isPointsLoading: ?boolean,\n isPointsError: ?boolean,\n hasRequestedPointPermissions: boolean,\n};\n\ntype Action = {\n type: string,\n};\n\nexport const dataFetchReducer = (state: State, action: Action) => {\n switch (action.type) {\n case 'NAME_PHOTO_FETCH_INIT':\n return {\n ...state,\n isNamePhotoLoading: true,\n isNamePhotoError: false,\n hasRequestedNamePhotoPermissions: false,\n };\n case 'NAME_PHOTO_FETCH_SUCCESS':\n return {\n ...state,\n isNamePhotoLoading: false,\n isNamePhotoError: false,\n hasRequestedNamePhotoPermissions: true,\n };\n case 'NAME_PHOTO_FETCH_FAILURE':\n return {\n ...initialState,\n isNamePhotoLoading: false,\n isNamePhotoError: true,\n };\n case 'CONTACTS_FETCH_INIT':\n return {\n ...state,\n isContactsLoading: true,\n isContactsError: false,\n hasRequestedContactsPermissions: false,\n };\n case 'CONTACTS_FETCH_SUCCESS':\n return {\n ...state,\n isContactsLoading: false,\n isContactsError: false,\n hasRequestedContactsPermissions: true,\n };\n case 'CONTACTS_FETCH_FAILURE':\n return {\n ...initialState,\n isContactsLoading: false,\n isContactsError: true,\n };\n case 'POINTS_FETCH_INIT':\n return {\n ...state,\n isPointsLoading: true,\n isPointsError: false,\n hasRequestedPointPermissions: false,\n };\n case 'POINTS_FETCH_SUCCESS':\n return {\n ...state,\n isPointsLoading: false,\n isPointsError: false,\n hasRequestedPointPermissions: true,\n };\n case 'POINTS_FETCH_FAILURE':\n return {\n ...initialState,\n isPointsLoading: false,\n isPointsError: true,\n };\n default:\n throw Error('Unknown action type');\n }\n};\n\ntype UserDetailsProps = {\n permissions: CustomPermissionName[],\n userName: string,\n profilePhoto: string,\n contactList: Contact[],\n points: Points,\n getUserName: () => Promise,\n getProfilePhoto: () => Promise,\n getContacts: () => Promise,\n getPoints: () => Promise,\n requestPermissions: (\n permissions: CustomPermission[]\n ) => Promise,\n};\n\nfunction UserDetails(props: UserDetailsProps) {\n const [state, dispatch] = useReducer(dataFetchReducer, initialState);\n const classes = useStyles();\n\n const namePhotoButtonClassname = getButtonState(state.isNamePhotoError);\n const contactsButtonClassname = getButtonState(state.isContactsError);\n const pointsButtonClassname = getButtonState(state.isPointsError);\n\n const [showClearIcon, setShowClearIcon] = useState('none');\n const [searchText, setSearchText] = useState('');\n const dataFiltered = filterSearchData(searchText, props.contactList);\n\n const handleSearchTextChange = (\n event: React.ChangeEvent\n ): void => {\n setShowClearIcon(event.target.value === '' ? 'none' : 'flex');\n setSearchText(event.target.value);\n };\n\n const handleSearchReset = (): void => {\n setSearchText('');\n setShowClearIcon('none');\n };\n\n function filterSearchData(query: string, contactList: Contact[]) {\n if (!query) {\n return contactList;\n } else {\n let filteredContacts = contactList\n .filter(function (contact) {\n return contact.name.toLocaleLowerCase().includes(query.toLowerCase());\n })\n .map(function (contact) {\n return contact;\n });\n return filteredContacts;\n }\n }\n\n function getButtonState(isError: boolean) {\n return clsx({\n [classes.buttonFailure]: isError,\n [classes.buttonSuccess]: !isError,\n });\n }\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'User details',\n 'Screen',\n 'Page',\n ''\n );\n });\n\n function requestNamePhoto() {\n const permissionsList = [\n {\n name: CustomPermissionName.USER_NAME,\n description:\n 'We would like to display your Username on your profile page.',\n },\n {\n name: CustomPermissionName.PROFILE_PHOTO,\n description:\n 'We would like to display your Profile Photo on your profile page.',\n },\n ];\n\n props\n .requestPermissions(permissionsList)\n .then((permissions) => filterAllowedPermissions(permissions))\n .then((permissions) =>\n Promise.all([\n hasPermission(CustomPermissionName.USER_NAME, permissions)\n ? fetchUsername()\n : null,\n hasPermission(CustomPermissionName.PROFILE_PHOTO, permissions)\n ? fetchProfilePhoto()\n : null,\n ])\n )\n .then(() => dispatch({ type: 'NAME_PHOTO_FETCH_SUCCESS' }))\n .catch((e) => {\n console.error(e);\n dispatch({ type: 'NAME_PHOTO_FETCH_FAILURE' });\n });\n }\n\n function fetchUsername() {\n props\n .getUserName()\n .then((string) => {\n dispatch({ type: 'NAME_PHOTO_FETCH_SUCCESS' });\n })\n .catch((e) => {\n dispatch({ type: 'NAME_PHOTO_FETCH_FAILURE', error: e });\n });\n }\n\n function fetchProfilePhoto() {\n props\n .getProfilePhoto()\n .then((permissions) => {\n dispatch({ type: 'NAME_PHOTO_FETCH_SUCCESS' });\n })\n .catch((e) => {\n dispatch({ type: 'NAME_PHOTO_FETCH_FAILURE', error: e });\n });\n }\n\n function requestContacts() {\n const permissionsList = [\n {\n name: CustomPermissionName.CONTACT_LIST,\n description: 'We would like to send messages to your contacts.',\n },\n ];\n\n props\n .requestPermissions(permissionsList)\n .then((permissions) => filterAllowedPermissions(permissions))\n .then((permissions) =>\n Promise.all([\n hasPermission(CustomPermissionName.CONTACT_LIST, permissions)\n ? props.getContacts()\n : null,\n ])\n )\n .then(() => dispatch({ type: 'CONTACTS_FETCH_SUCCESS' }))\n .catch((e) => {\n console.error(e);\n dispatch({ type: 'CONTACTS_FETCH_FAILURE' });\n });\n }\n\n function requestPoints() {\n const permissionsList = [\n {\n name: CustomPermissionName.POINTS,\n description:\n 'We would like to display your Points on your profile page.',\n },\n ];\n props.points = undefined;\n\n props\n .requestPermissions(permissionsList)\n .then((permissions) => filterAllowedPermissions(permissions))\n .then((permissions) =>\n Promise.all([\n hasPermission(CustomPermissionName.POINTS, permissions)\n ? props.getPoints()\n : null,\n ])\n )\n .then(() => dispatch({ type: 'POINTS_FETCH_SUCCESS' }))\n .catch((e) => {\n console.error(e);\n dispatch({ type: 'POINTS_FETCH_FAILURE' });\n });\n }\n\n function filterAllowedPermissions(permissions) {\n return permissions\n .filter(\n (permission) => permission.status === CustomPermissionStatus.ALLOWED\n )\n .map((permission) => permission.name);\n }\n\n function handleNamePhotoClick(e) {\n if (!state.isNamePhotoLoading) {\n e.preventDefault();\n dispatch({ type: 'NAME_PHOTO_FETCH_INIT' });\n requestNamePhoto();\n }\n }\n\n function handleContactsClick(e) {\n if (!state.isContactsLoading) {\n e.preventDefault();\n dispatch({ type: 'CONTACTS_FETCH_INIT' });\n requestContacts();\n }\n }\n\n function handlePointsClick(e) {\n if (!state.isPointsLoading) {\n e.preventDefault();\n dispatch({ type: 'POINTS_FETCH_INIT' });\n requestPoints();\n }\n }\n\n function CardNamePhotoActionsForm() {\n const hasPhotoPermission =\n state.hasRequestedNamePhotoPermissions &&\n hasPermission(CustomPermissionName.PROFILE_PHOTO);\n\n const hasNamePermission =\n state.hasRequestedNamePhotoPermissions &&\n hasPermission(CustomPermissionName.USER_NAME);\n\n return (\n \n \n \n {state.hasRequestedNamePhotoPermissions && !hasPhotoPermission && (\n \n \n \n )}\n {hasPhotoPermission && (\n
\n \n
\n )}\n
\n \n \n
\n
\n \n Fetch User Name and Photo\n \n {state.isNamePhotoLoading && (\n \n )}\n
\n {state.isNamePhotoError && (\n \n Error fetching the user name and photo\n \n )}\n
\n );\n }\n\n function CardContactsActionsForm() {\n const hasContactsPermision = true;\n return (\n \n
\n \n Fetch Contacts\n \n {state.isContactsLoading && (\n \n )}\n
\n \n \n \n ),\n endAdornment: (\n \n \n \n ),\n }}\n />\n \n {hasContactsPermision && props.contactList && (\n \n )}\n \n {state.hasRequestedContactsPermissions && !hasContactsPermision && (\n \n \n \n )}\n {hasContactsPermision &&\n props.contactList &&\n dataFiltered.map((contact) => (\n \n \n \n \n \n \n {contact.name && contact.name !== '' && (\n {'Name: ' + contact.name}\n )}\n \n \n {contact.email && contact.email !== '' && (\n {'Email: ' + contact.email}\n )}\n \n \n {contact.allEmailList &&\n contact.allEmailList.length > 0 && (\n \n {'Email list: ' +\n contact.allEmailList.join(', ')}\n \n )}\n \n \n }\n />\n \n ))}\n \n \n\n {state.isContactsError && (\n \n Error fetching the contacts\n \n )}\n
\n );\n }\n\n function CardPointActionsForm() {\n return (\n \n \n \n \n \n \n \n\n
\n \n Fetch Points\n \n {state.isPointsLoading && (\n \n )}\n
\n {state.isPointsError && (\n \n Error fetching the points\n \n )}\n
\n );\n }\n\n function isPointsPermissionDenied() {\n return (\n state.hasRequestedPointPermissions &&\n !hasPermission(CustomPermissionName.POINTS)\n );\n }\n\n function hasPermission(permission, permissionList: ?(string[])) {\n permissionList = permissionList || props.permissions || [];\n if (permissionList.indexOf !== undefined) {\n return permissionList.indexOf(permission) > -1;\n } else if (permissionList.permissions.indexOf !== undefined) {\n return permissionList.permissions.indexOf(permission) > -1;\n }\n return false;\n }\n\n const [value, setValue] = React.useState('1');\n\n const handleChange = (event: Event, newValue: string) => {\n setValue(newValue);\n };\n\n return (\n \n \n \n \n \n \n \n {CardNamePhotoActionsForm()}\n {CardContactsActionsForm()}\n {CardPointActionsForm()}\n \n \n );\n}\n\nconst mapStateToProps = (state) => {\n return {\n permissions: state.permissions,\n userName: state.user.userName,\n profilePhoto: state.user.profilePhoto,\n contactList: state.user.contactList,\n points: state.user.points,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getUserName: () => dispatch(requestUserName()),\n getProfilePhoto: () => dispatch(requestProfilePhoto()),\n getContacts: () => dispatch(requestContactList()),\n getPoints: () => dispatch(requestPoints()),\n requestPermissions: (permissions) =>\n dispatch(requestCustomPermissions(permissions)),\n };\n};\n\nexport { UserDetails };\nexport default connect(mapStateToProps, mapDispatchToProps)(UserDetails);\n","import React, { useState, useEffect } from 'react';\n\nimport {\n Button,\n CardContent,\n CardActions,\n makeStyles,\n Snackbar,\n} from '@material-ui/core';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport { connect } from 'react-redux';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nimport GreyCard from '../components/GreyCard';\nimport {\n setMessagingUniqueId,\n setMauid,\n setUniqueId,\n} from '../services/uuid/actions';\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n width: '100%',\n height: 'auto',\n marginTop: '40px',\n display: 'grid',\n },\n content: {\n height: 'auto',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n wordBreak: 'break-word',\n },\n actions: {\n justifyContent: 'center',\n },\n uuidNotFound: {\n width: 200,\n },\n}));\n\ntype UUIDProps = {\n uniqueId: string,\n messagingUniqueId: string,\n mauid: string,\n uniqueIdError: string,\n messagingUniqueIdError: string,\n mauidError: string,\n getUniqueId: Function,\n getMessagingUniqueId: Function,\n getMauid: Function,\n};\n\nconst UuidFetcher = (props: UUIDProps) => {\n const classes = useStyles();\n const [copyStatus, setCopyStatus] = useState({\n success: false,\n error: false,\n });\n\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Unique ID',\n 'Screen',\n 'Page',\n ''\n );\n });\n function textCopied(text, result) {\n if (result) {\n setCopyStatus({ success: true, error: false });\n } else {\n setCopyStatus({ success: false, error: true });\n }\n }\n\n return (\n \n \n {props.uniqueId ?? props.uniqueIdError ?? 'Not Available'}\n \n \n \n GET UNIQUE ID\n \n \n \n Copy\n \n \n {\n setCopyStatus({ success: false, error: false });\n }}\n message=\"Copied to clipboard !!\"\n />\n {\n setCopyStatus({ success: false, error: false });\n }}\n message=\"Failed to copy!\"\n />\n \n \n {props.messagingUniqueId ??\n props.messagingUniqueIdError ??\n 'Not Available'}\n \n \n \n GET MESSAGING UNIQUE ID\n \n \n \n Copy\n \n \n {\n setCopyStatus({ success: false, error: false });\n }}\n message=\"Copied to clipboard !!\"\n />\n {\n setCopyStatus({ success: false, error: false });\n }}\n message=\"Failed to copy!\"\n />\n \n\n \n {props.mauid ?? props.mauidError ?? 'Not Available'}\n \n\n \n \n GET MAUID\n \n \n \n Copy\n \n \n \n \n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n uniqueId: state.uuid.uniqueId,\n uniqueIdError: state.uuid.uniqueIdError,\n messagingUniqueId: state.uuid.messagingUniqueId,\n messagingUniqueIdError: state.uuid.messagingUniqueIdError,\n mauid: state.uuid.mauid,\n mauidError: state.uuid.mauidError,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getUniqueId: () => dispatch(setUniqueId()),\n getMessagingUniqueId: () => dispatch(setMessagingUniqueId()),\n getMauid: () => dispatch(setMauid()),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UuidFetcher);\n","import MiniApp from 'js-miniapp-sdk';\n\nimport {\n SET_UNIQUE_ID,\n UNIQUE_ID_FETCH_ERROR,\n SET_MESSAGING_UNIQUE_ID,\n SET_MAUID,\n MESSAGING_UNIQUE_ID_FETCH_ERROR,\n MAUID_FETCH_ERROR,\n} from './types';\n\ntype GetUUIDAction = { type: String, payload: ?string, error: ?string };\n\ntype UUIDAction = GetUUIDAction;\n\nconst setUniqueId = (): Function => {\n return (dispatch) => {\n MiniApp.getUniqueId()\n .then((uuidFromSDK) => {\n dispatch({\n type: SET_UNIQUE_ID,\n payload: uuidFromSDK,\n });\n })\n .catch((error) => {\n dispatch({\n type: UNIQUE_ID_FETCH_ERROR,\n error,\n });\n });\n };\n};\n\nconst setMessagingUniqueId = (): Function => {\n return (dispatch) => {\n MiniApp.getMessagingUniqueId()\n .then((uuidFromSDK) => {\n dispatch({\n type: SET_MESSAGING_UNIQUE_ID,\n payload: uuidFromSDK,\n });\n })\n .catch((error) => {\n dispatch({\n type: MESSAGING_UNIQUE_ID_FETCH_ERROR,\n error,\n });\n });\n };\n};\n\nconst setMauid = (): Function => {\n return (dispatch) => {\n MiniApp.getMauid()\n .then((mauidFromSdk) => {\n dispatch({\n type: SET_MAUID,\n payload: mauidFromSdk,\n });\n })\n .catch((error) => {\n dispatch({\n type: MAUID_FETCH_ERROR,\n error,\n });\n });\n };\n};\n\nexport { setUniqueId, setMessagingUniqueId, setMauid };\nexport type { UUIDAction };\n","const SET_UNIQUE_ID = 'SET_UNIQUE_ID';\nconst UNIQUE_ID_FETCH_ERROR = 'UNIQUE_ID_FETCH_ERROR';\nconst SET_MESSAGING_UNIQUE_ID = 'SET_MESSAGING_UNIQUE_ID';\nconst MESSAGING_UNIQUE_ID_FETCH_ERROR = 'MESSAGING_UNIQU_ID_FETCH_ERROR';\nconst SET_MAUID = 'SET_MAUID';\nconst MAUID_FETCH_ERROR = 'MAUID_FETCH_ERROR';\nexport {\n SET_UNIQUE_ID,\n UNIQUE_ID_FETCH_ERROR,\n SET_MESSAGING_UNIQUE_ID,\n SET_MAUID,\n MESSAGING_UNIQUE_ID_FETCH_ERROR,\n MAUID_FETCH_ERROR,\n};\n","import { useState } from 'react';\n\nimport MiniApp from 'js-miniapp-sdk';\n\nconst useGeoLocation = () => {\n const [state, setState] = useState({\n isWatching: false,\n isLoading: false,\n });\n const watch = () => {\n return MiniApp.requestLocationPermission(\n 'We would like to display the location of your device.'\n )\n .then(() => {\n setState({\n isWatching: true,\n isLoading: true,\n });\n\n const timeout = setTimeout(() => {\n setState({\n isWatching: false,\n isLoading: false,\n error: 'Timeout',\n });\n }, 6000);\n\n navigator.geolocation.getCurrentPosition(\n (pos) => {\n clearTimeout(timeout);\n\n const { longitude, latitude } = pos.coords;\n setState({\n isWatching: true,\n isLoading: false,\n location: {\n latitude,\n longitude,\n },\n });\n },\n (_error) => {\n clearTimeout(timeout);\n\n setState({\n isWatching: false,\n isLoading: false,\n error: 'Location Disabled',\n });\n },\n {\n enableHighAccuracy: true,\n }\n );\n })\n .catch((error) =>\n setState({\n isWatching: false,\n isLoading: false,\n error,\n })\n );\n };\n\n const unwatch = () => {\n setState({\n isWatching: false,\n });\n };\n\n return [state, watch, unwatch];\n};\n\nexport default useGeoLocation;\n","import React, { useEffect } from 'react';\n\nimport {\n Button,\n CardActions,\n CardContent,\n CircularProgress,\n makeStyles,\n} from '@material-ui/core';\nimport LocationOffIcon from '@material-ui/icons/LocationOff';\nimport LocationSearchingIcon from '@material-ui/icons/LocationSearching';\nimport clsx from 'clsx';\n\nimport GreyCard from '../components/GreyCard';\nimport useGeoLocation from '../hooks/useGeoLocation';\nimport { sendAnalytics } from './helper';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n card: {\n alignItems: 'center',\n justifyContent: 'center',\n marginTop: '40px',\n },\n content: {\n height: '50%',\n justifyContent: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n locationContainer: {\n height: '70%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-around',\n '& div .label': {\n display: 'inline',\n padding: '.2em .6em .3em',\n fontSize: '75%',\n fontWeight: 700,\n lineHeight: 1,\n textAlign: 'center',\n whiteSpace: 'nowrap',\n verticalAlign: 'baseline',\n borderRadius: '.25em',\n },\n },\n actions: {\n justifyContent: 'center',\n },\n button: {},\n disabled: {\n opacity: 0.5,\n color: '#fff !important',\n backgroundColor: `${theme.color.primary} !important`,\n },\n buttonProgress: {\n position: 'absolute',\n top: 'calc(50% - 10px)',\n left: 'calc(50% - 10px)',\n },\n}));\n\nconst Location = (props: any) => {\n const classes = useStyles();\n const [state, watch, unwatch] = useGeoLocation();\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Location',\n 'Screen',\n 'Page',\n ''\n );\n });\n return (\n \n \n {state.error &&
Error: {state.error}
}\n\n {state.isLoading && (\n \n )}\n\n {state.location && state.isWatching && (\n \n
\n Longitude:\n {state.location.longitude}\n
\n
\n Latitude:\n {state.location.latitude}\n
\n \n )}\n
\n \n }\n variant=\"contained\"\n color=\"primary\"\n disabled={state.isWatching}\n className={clsx(classes.button, {\n [classes.disabled]: state.isWatching,\n })}\n onClick={watch}\n >\n TURN ON\n \n }\n variant=\"contained\"\n color=\"primary\"\n onClick={unwatch}\n disabled={!state.isWatching}\n className={clsx(classes.button, {\n [classes.disabled]: !state.isWatching,\n })}\n >\n TURN OFF\n \n \n
\n );\n};\n\nexport default Location;\n","// @flow\nimport React, { useEffect } from 'react';\nimport { sendAnalytics } from './helper';\n\nimport { Button, Card, CardContent, makeStyles } from '@material-ui/core';\nimport { MAAnalyticsActionType, MAAnalyticsEventType } from 'js-miniapp-sdk';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n height: 300,\n width: '100%',\n },\n content: {\n height: '50%',\n justifyContent: 'space-between',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n fontSize: 18,\n color: theme.color.primary,\n fontWeight: 'bold',\n },\n}));\n\nconst WindowActions = () => {\n const classes = useStyles();\n const onAlert = () => {\n window.alert('This is window alert!');\n };\n const onConfirm = () => {\n window.confirm('This is window confirm!');\n };\n const onPrompt = () => {\n window.prompt('This is window prompt!', 'sure!');\n };\n useEffect(() => {\n sendAnalytics(\n MAAnalyticsEventType.appear,\n MAAnalyticsActionType.open,\n 'Window actions',\n 'Screen',\n 'Page',\n ''\n );\n });\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport default WindowActions;\n","import React from 'react';\n\nimport AttachFileIcon from '@material-ui/icons/AttachFile';\nimport ChatIcon from '@material-ui/icons/Chat';\nimport CloudDownloadIcon from '@material-ui/icons/CloudDownload';\nimport EventIcon from '@material-ui/icons/CompareArrows';\nimport FingerprintIcon from '@material-ui/icons/Fingerprint';\nimport GifIcon from '@material-ui/icons/Gif';\nimport HomeIcon from '@material-ui/icons/Home';\nimport LaptopWindowsIcon from '@material-ui/icons/LaptopWindows';\nimport LinkIcon from '@material-ui/icons/Link';\nimport AdsIcon from '@material-ui/icons/LocalPlay';\nimport LocationOnIcon from '@material-ui/icons/LocationOn';\nimport MediaIcon from '@material-ui/icons/MusicVideo';\nimport NotificationImportantOutlinedIcon from '@material-ui/icons/NotificationImportantOutlined';\nimport PaletteIcon from '@material-ui/icons/Palette';\nimport PersonIcon from '@material-ui/icons/Person';\nimport PhotoCamera from '@material-ui/icons/PhotoCamera';\nimport SecurityIcon from '@material-ui/icons/Security';\nimport SendIcon from '@material-ui/icons/SendSharp';\nimport ShareIcon from '@material-ui/icons/Share';\nimport ShoppingCartIcon from '@material-ui/icons/ShoppingCart';\nimport StorageIcon from '@material-ui/icons/Storage';\nimport VpnKeyIcon from '@material-ui/icons/VpnKey';\n\nimport Ads from './pages/ads';\nimport { CloseConfirmAlert } from './pages/app-close-alert';\nimport AuthToken from './pages/auth-token';\nimport Camera from './pages/camera';\nimport ColorThemeComponent from './pages/color-theme';\nimport EventListener from './pages/event-listener';\nimport FileDownload from './pages/file-download';\nimport FileUploader from './pages/file-upload';\nimport GifPage from './pages/gifs';\nimport { PurchaseProductComponent } from './pages/in-app-purchase';\nimport Landing from './pages/landing';\nimport LocalStorage from './pages/local-storage';\nimport Media from './pages/media';\nimport TalkToChatBot from './pages/message';\nimport SecureStorageComponent from './pages/secure-storage';\nimport Share from './pages/share';\nimport UniversalBridge from './pages/universal-bridge';\nimport UriSchemes from './pages/uri-schemes';\nimport UserDetails from './pages/user-details';\nimport UuidFetcher from './pages/uuid-sdk';\nimport WebLocation from './pages/web-location';\nimport WindowActions from './pages/window-actions';\n\n//default root location when using ios\nconst iosHomeNavLink = { navLink: '/index.html', label: 'Home' };\n//default root location when using android\nconst androidHomeNavLink = { navLink: '/miniapp/index.html', label: 'Home' };\n//default supposed root location\n//todo fix this\nconst homeNavLink = { navLink: '/', label: 'Home' };\nconst landingNavLink = { navLink: '/landing', label: 'Home' };\nconst localStorageNavLink = {\n navLink: '/local_storage',\n label: 'Local Storage',\n};\nconst fetchUniqueIdNavLink = {\n navLink: '/fetch_id',\n label: 'Fetch Unique ID',\n};\nconst deviceLocationNavLink = {\n navLink: '/device_location',\n label: 'Device Location',\n};\nconst authTokenNavLink = {\n navLink: '/auth_token',\n label: 'Auth token',\n};\nconst userDetailNavLink = { navLink: '/user_detail', label: 'User Details' };\nconst messageNavLink = { navLink: '/chatbot', label: 'Message' };\nconst windowActionNavLink = {\n navLink: '/window_actions',\n label: 'Window Actions',\n};\nconst uriSchemesNavLink = { navLink: '/uri_schemes', label: 'URI Schemes' };\nconst eventListenerNavLink = {\n navLink: '/event_listener',\n label: 'Event Listener',\n};\nconst mediaNavLink = { navLink: '/media', label: 'Media' };\nconst shareNavLink = { navLink: '/share', label: 'Share' };\nconst adsNavLink = { navLink: '/ads', label: 'Ads' };\nconst cameraNavLink = { navLink: '/camera', label: 'Camera' };\nconst fileDownloadNavLink = {\n navLink: '/file_download',\n label: 'File Download',\n};\nconst fileUploadNavLink = { navLink: '/file_upload', label: 'File Upload' };\nconst gifsNavLink = { navLink: '/gifs', label: \"GIF's & WebP\" };\nconst secureStorageNavLink = {\n navLink: '/secure-storage',\n label: 'SecureStorage',\n};\nconst closeAlertNavLink = {\n navLink: '/close-confirm-alert',\n label: 'Close Feature',\n};\nconst universalBridgeNavLink = {\n navLink: '/universal-bridge',\n label: 'Universal Bridge',\n};\nconst inAppPurchaseNavLink = {\n navLink: '/in-app-purchase',\n label: 'Purchase',\n};\nconst colorThemeNavLink = {\n navLink: '/color-theme',\n label: 'Color Theme',\n};\n\nconst navLinks = [\n iosHomeNavLink,\n androidHomeNavLink,\n homeNavLink,\n landingNavLink,\n localStorageNavLink,\n fetchUniqueIdNavLink,\n deviceLocationNavLink,\n authTokenNavLink,\n userDetailNavLink,\n messageNavLink,\n windowActionNavLink,\n uriSchemesNavLink,\n eventListenerNavLink,\n mediaNavLink,\n shareNavLink,\n adsNavLink,\n cameraNavLink,\n fileDownloadNavLink,\n fileUploadNavLink,\n gifsNavLink,\n secureStorageNavLink,\n closeAlertNavLink,\n universalBridgeNavLink,\n inAppPurchaseNavLink,\n colorThemeNavLink,\n];\n\nconst homeItem = [\n {\n icon: ,\n label: landingNavLink.label,\n navLink: landingNavLink.navLink,\n element: ,\n },\n];\n\nconst appItems = [\n {\n icon: ,\n label: localStorageNavLink.label,\n navLink: localStorageNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: fetchUniqueIdNavLink.label,\n navLink: fetchUniqueIdNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: deviceLocationNavLink.label,\n navLink: deviceLocationNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: authTokenNavLink.label,\n navLink: authTokenNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: userDetailNavLink.label,\n navLink: userDetailNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: messageNavLink.label,\n navLink: messageNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: windowActionNavLink.label,\n navLink: windowActionNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: uriSchemesNavLink.label,\n navLink: uriSchemesNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: eventListenerNavLink.label,\n navLink: eventListenerNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: mediaNavLink.label,\n navLink: mediaNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: shareNavLink.label,\n navLink: shareNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: adsNavLink.label,\n navLink: adsNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: cameraNavLink.label,\n navLink: cameraNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: fileDownloadNavLink.label,\n navLink: fileDownloadNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: fileUploadNavLink.label,\n navLink: fileUploadNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: gifsNavLink.label,\n navLink: gifsNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: secureStorageNavLink.label,\n navLink: secureStorageNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: closeAlertNavLink.label,\n navLink: closeAlertNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: universalBridgeNavLink.label,\n navLink: universalBridgeNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: inAppPurchaseNavLink.label,\n navLink: inAppPurchaseNavLink.navLink,\n element: ,\n },\n {\n icon: ,\n label: colorThemeNavLink.label,\n navLink: colorThemeNavLink.navLink,\n element: ,\n },\n];\n\nconst navItems: Object[] = homeItem.concat(\n appItems.sort((a, b) => a.label.localeCompare(b.label))\n);\n\nexport { navItems, navLinks };\n","import React, { useEffect } from 'react';\n\nimport { Hidden, Tooltip, useTheme, useMediaQuery } from '@material-ui/core';\nimport Divider from '@material-ui/core/Divider';\nimport List from '@material-ui/core/List';\nimport ListItem from '@material-ui/core/ListItem';\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport { makeStyles } from '@material-ui/core/styles';\nimport SwipeableDrawer from '@material-ui/core/SwipeableDrawer';\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport clsx from 'clsx';\nimport { connect } from 'react-redux';\nimport { NavLink } from 'react-router-dom';\nimport semver from 'semver';\n\nimport { setPageTitle } from '../services/home/actions';\nimport { setHostEnvironmentInfo } from '../services/landing/actions';\n\nconst useStyles = makeStyles((theme) => ({\n drawer: {},\n drawerPaper: {\n [theme.breakpoints.up('sm')]: {\n height: 'calc(100% - 64px)',\n top: '64px !important',\n },\n },\n drawerPaperContent: {\n height: '100%',\n width: 250,\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n drawerPaperContentTopList: {\n height: 'calc(100% - 70px)',\n overflowY: 'scroll',\n [theme.breakpoints.down('xs')]: {\n height: '100%',\n },\n },\n drawerPaperShrink: {\n width: '70px',\n overflowX: 'hidden',\n },\n shrinkedListItem: {\n paddingLeft: '24px',\n },\n NavListRoot: {\n paddingTop: 1,\n },\n tooltip: {\n backgroundColor: theme.color.primary,\n },\n tooltipArrow: {\n color: theme.color.primary,\n },\n navLink: {\n height: 56,\n },\n activeNavLink: {\n backgroundColor: theme.color.primary,\n color: 'white',\n '& .icon': {\n color: 'white',\n },\n },\n}));\n\ntype ResponsiveDrawerProps = {\n shrinked: boolean,\n show: boolean,\n width: any,\n navItems: Array,\n onShrink: Function,\n onOpenClose: Function,\n changeTitle: Function,\n sdkVersion: string,\n getHostInfo: Function,\n};\n\nconst ResponsiveDrawer = (props: ResponsiveDrawerProps) => {\n useEffect(() => {\n try {\n props.getHostInfo();\n } catch (e) {\n console.log(e);\n }\n }, [props]);\n const classes = useStyles();\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('xs'));\n if (isMobile) {\n props = { ...props, shrinked: false };\n }\n const toggleShrink = () => {\n props.onShrink();\n };\n\n const isSupportedSdkVersion = (supportedAbove, supportedBelow) => {\n const sdkVersion = props.sdkVersion || '0.0.1';\n supportedAbove = supportedAbove || '0.0.1';\n supportedBelow = supportedBelow || '10000.0.0';\n\n return (\n semver.gte(sdkVersion, supportedAbove) &&\n semver.lte(sdkVersion, supportedBelow)\n );\n };\n\n return (\n props.onOpenClose(e)}\n onOpen={(e) => props.onOpenClose(e)}\n >\n \n \n {props.show &&\n props.navItems.map(\n (it) =>\n isSupportedSdkVersion(\n it.supportedAboveSdkVersion,\n it.supportedBelowSdkVersion\n ) && (\n \n {\n props.changeTitle(it.label);\n if (isMobile) {\n props.onOpenClose(undefined);\n }\n }}\n component={NavLink}\n to={it.navLink}\n key={it.label}\n activeclassname={classes.activeNavLink}\n className={clsx(classes.navLink, {\n [classes.shrinkedListItem]: props.shrinked,\n })}\n >\n {it.icon}\n \n \n \n )\n )}\n \n \n \n \n \n \n \n {props.shrinked ? : }\n \n \n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = (state, props) => {\n return {\n ...props,\n sdkVersion: state.info.sdkVersion,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n changeTitle: (title) => dispatch(setPageTitle(title)),\n getHostInfo: () => dispatch(setHostEnvironmentInfo()),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ResponsiveDrawer);\n","import { SET_CURRENT_PAGE_TITLE } from './types';\n\ntype SetPageAction = { type: string, payload: string };\ntype HomeAction = SetPageAction;\n\nconst setPageTitle = (title: string): SetPageAction => {\n return {\n type: SET_CURRENT_PAGE_TITLE,\n payload: title,\n };\n};\n\nexport { setPageTitle };\nexport type { HomeAction };\n","const SET_CURRENT_PAGE_TITLE = 'SET_CURRENT_PAGE_TITLE';\n\nexport { SET_CURRENT_PAGE_TITLE };\n","import React, { Fragment, useState, useEffect } from 'react';\n\nimport AppBar from '@material-ui/core/AppBar';\nimport IconButton from '@material-ui/core/IconButton';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Toolbar from '@material-ui/core/Toolbar';\nimport Typography from '@material-ui/core/Typography';\nimport CloseIcon from '@material-ui/icons/Close';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport { connect } from 'react-redux';\nimport { useLocation, useNavigate, useParams } from 'react-router-dom';\n\nimport { navLinks } from '../routes';\nimport Drawer from './Drawer';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flexGrow: 1,\n },\n menuButton: {\n marginRight: theme.spacing(2),\n },\n title: {\n // flexGrow: 1,\n },\n}));\n\ntype ToolBarProps = {\n showDrawer: Boolean,\n actions: any,\n onShrinkToggle: Function,\n onDrawerToggle: Function,\n navItems: any,\n};\n\nconst ToolBar = (props: ToolBarProps) => {\n const classes = useStyles();\n const [showDrawerState, setDrawer] = useState(props.showDrawer ?? false);\n\n const location = useLocation();\n const [title, setTitle] = useState('');\n useEffect(() => {\n const navLinkLabel: { navLink: string, label: string } = navLinks.find(\n (item) => item.navLink === location.pathname\n ) ?? { navLink: location.pathname, label: 'Sample MiniApp' };\n setTitle(navLinkLabel.label);\n }, [location.pathname]);\n useEffect(\n () => {\n setDrawer(props.showDrawer);\n }, // eslint-disable-next-line\n [props.showDrawer]\n );\n const [shrinkState, setShrink] = useState(false);\n const toggleDrawer = () => {\n const showFlag = !showDrawerState;\n props.onDrawerToggle(showFlag);\n setDrawer(showFlag);\n };\n const onDrawerShrink = () => {\n const shrinkFlag = !shrinkState;\n props.onShrinkToggle(shrinkFlag);\n setShrink(shrinkFlag);\n };\n\n const onOpenClose = (event) => {\n if (\n event &&\n event.type === 'keydown' &&\n (event.key === 'Tab' || event.key === 'Shift')\n ) {\n return;\n }\n toggleDrawer();\n };\n return (\n \n \n \n \n {showDrawerState ? (\n \n ) : (\n \n )}\n \n \n {title}\n \n
{props.actions}
\n
\n
\n \n
\n );\n};\n\nfunction withRouter(Component) {\n function ComponentWithRouterProp(props) {\n let location = useLocation();\n let navigate = useNavigate();\n let params = useParams();\n return ;\n }\n\n return ComponentWithRouterProp;\n}\n\nconst mapStateToProps = (state, props) => {\n return { ...props };\n};\n\nexport default connect(mapStateToProps)(withRouter(ToolBar));\n","import React, { useState, useEffect } from 'react';\n\nimport {\n makeStyles,\n Container,\n useTheme,\n useMediaQuery,\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport { BrowserRouter as Router, Route, Routes } from 'react-router-dom';\n\nimport { navItems } from './../routes';\nimport ToolBar from '../components/ToolBar';\n\nconst DRAWER_WIDTH = '250px';\nconst DRAWER_SHRINKED_WIDTH = '70px';\n\nconst useStyles = makeStyles((theme) => ({\n mainContent: {\n width: '100%',\n height: 'calc(100% - 64px)',\n },\n mainContentMobile: {\n height: 'calc(100% - 56px)',\n },\n wrapperContainer: {\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'initial',\n alignItems: 'center',\n },\n drawerClosed: {\n width: '100% !important',\n marginLeft: '0 !important',\n },\n drawerOpen: {\n width: `calc(100% - ${DRAWER_WIDTH})`,\n marginLeft: DRAWER_WIDTH,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n drawerOpenShrink: {\n width: `calc(100% - ${DRAWER_SHRINKED_WIDTH})`,\n marginLeft: DRAWER_SHRINKED_WIDTH,\n transition: theme.transitions.create(['margin', 'width'], {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.enteringScreen,\n }),\n },\n}));\n\nconst Home = (props: any) => {\n const classes = useStyles();\n const theme = useTheme();\n const isMobile = useMediaQuery(theme.breakpoints.down('xs'));\n const [shrink, setShrink] = useState(false);\n const [showDrawer, setShowDrawer] = useState(!isMobile);\n useEffect(() => {\n setShowDrawer(!isMobile);\n }, [isMobile]);\n const onShrinkToggle = (shrinkState) => {\n setShrink(shrinkState);\n };\n const onDrawerToggle = (show) => {\n setShowDrawer(show);\n };\n return (\n \n \n \n \n \n {navItems.map((it) => (\n (\n \n {it.label}\n \n ))\n }\n >\n ))}\n \n \n \n \n \n );\n};\n\nexport default Home;\n","import type { DownloadFileAction } from './actions';\nimport {\n FILE_DOWNLOAD_FAILURE,\n FILE_DOWNLOAD_SUCCESS,\n FILE_DOWNLOAD_INIT,\n} from './types';\n\ntype FileDownloadState = {\n +filename: ?string,\n};\n\nconst defaultState: FileDownloadState = {\n filename: undefined,\n error: undefined,\n isLoading: false,\n};\n\nconst FileDownloadReducer = (\n state: FileDownloadState = defaultState,\n action: DownloadFileAction = {}\n): FileDownloadState => {\n if (action.type === FILE_DOWNLOAD_INIT) {\n return {\n ...defaultState,\n isLoading: true,\n };\n } else if (action.type === FILE_DOWNLOAD_SUCCESS) {\n return {\n ...defaultState,\n filename: action.filename,\n };\n } else if (action.type === FILE_DOWNLOAD_FAILURE) {\n return {\n ...defaultState,\n error: action.error,\n };\n }\n return state;\n};\n\nexport { FileDownloadReducer };\n","import type { HomeAction } from './actions';\nimport { SET_CURRENT_PAGE_TITLE } from './types';\n\ntype HomePageState = {\n title: string,\n};\n\nconst homeState: HomePageState = {\n title: 'Home',\n};\n\nexport default (\n state: HomePageState = homeState,\n action: HomeAction\n): HomePageState => {\n if (action !== undefined && action.type === SET_CURRENT_PAGE_TITLE) {\n return { ...state, title: action.payload };\n }\n return state;\n};\n","import { HostEnvironmentInfo } from 'js-miniapp-sdk';\n\nimport type {\n RequestHostInfoSuccessAction,\n OnStorageReadySuccessAction,\n} from './actions';\nimport {\n REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS,\n ON_SECURE_STORAGE_READY_SUCCESS,\n ON_SECURE_STORAGE_READY_FAILURE,\n} from './types';\n\nconst defaultInfo = {};\nconst HostEnvironmentInfoReducer = (\n state: ?HostEnvironmentInfo = defaultInfo,\n action: RequestHostInfoSuccessAction\n): ?HostEnvironmentInfo => {\n switch (action.type) {\n case REQUEST_HOST_ENVIRONMENT_INFO_SUCCESS:\n return action.info;\n default:\n return state;\n }\n};\n\nconst defaultStorageStatusItem = null;\nconst SecureStorageStatusReducer = (\n state: ?string = defaultStorageStatusItem,\n action: OnStorageReadySuccessAction\n) => {\n switch (action.type) {\n case ON_SECURE_STORAGE_READY_SUCCESS:\n return {\n isReady: true,\n error: null,\n };\n case ON_SECURE_STORAGE_READY_FAILURE:\n return {\n isReady: false,\n error: action.error,\n ...state,\n };\n default:\n return {\n isReady: false,\n error: null,\n ...state,\n };\n }\n};\n\nexport { HostEnvironmentInfoReducer, SecureStorageStatusReducer };\n","import type { MessageType, SetMessageTypeAction } from './types';\nimport { MessageTypeId, SET_MESSAGE_TYPES } from './types';\n\ntype MessageTypeState = {\n messageTypes: Array,\n};\n\nconst messageTypeState = {\n messageTypes: [\n {\n id: MessageTypeId.SINGLE_CONTACT,\n name: 'Send a message to a single contact',\n },\n {\n id: MessageTypeId.SINGLE_CONTACT_ID,\n name: 'Send a message to a specific contact',\n },\n {\n id: MessageTypeId.MULTIPLE_CONTACTS,\n name: 'Send a message to multiple contacts',\n },\n ],\n};\n\nexport default (state: MessageTypeState, action: SetMessageTypeAction) => {\n if (action.type === SET_MESSAGE_TYPES) {\n return { ...state, messageTypes: action.payload };\n }\n return messageTypeState;\n};\n","import { CustomPermissionName, CustomPermissionStatus } from 'js-miniapp-sdk';\n\nimport type { PermissionsAction } from './actions';\nimport {\n REQUEST_PERMISSIONS_SUCCESS,\n REQUEST_PERMISSIONS_FAILURE,\n} from './types';\n\ntype PermissionsState = {\n type: REQUEST_PERMISSIONS_FAILURE,\n permissions: CustomPermissionResult[],\n error: MiniAppError,\n};\n\nconst defaultState: PermissionsState = {\n type: undefined,\n permissions: [],\n error: null,\n};\n\nconst PermissionsReducer = (\n state: CustomPermissionName[] = defaultState,\n action: PermissionsAction\n): CustomPermissionName[] => {\n switch (action.type) {\n case REQUEST_PERMISSIONS_SUCCESS:\n const denied = action.permissions\n .filter((it) => it.status === CustomPermissionStatus.DENIED)\n .map((it) => it.name);\n const allowed = action.permissions\n .filter((it) => it.status === CustomPermissionStatus.ALLOWED)\n .map((it) => it.name);\n const array = state.permissions\n .concat(allowed)\n .filter((permission) => denied.indexOf(permission) <= -1);\n\n return {\n type: REQUEST_PERMISSIONS_SUCCESS,\n permissions: array,\n error: action.error,\n };\n case REQUEST_PERMISSIONS_FAILURE:\n return {\n ...defaultState,\n error: action.error,\n };\n default:\n return state;\n }\n};\n\nexport { PermissionsReducer };\n","import { combineReducers } from 'redux';\n\nimport type {\n SetItemsSuccessAction,\n GetItemSuccessAction,\n RemoveItemsSuccessAction,\n SizeSuccessAction,\n ClearSuccessAction,\n} from './actions';\nimport {\n CLEAR_SECURE_STORAGE_SUCCESS,\n GET_SECURE_STORAGE_SUCCESS,\n GET_SIZE_SECURE_STORAGE_SUCCESS,\n REMOVE_ITEMS_STORAGE_SUCCESS,\n SET_SECURE_STORAGE_SUCCESS,\n} from './types';\n\nconst defaultSetItems = null;\nconst setItemsReducer = (\n state: ?string = defaultSetItems,\n action: SetItemsSuccessAction\n): ?string => {\n switch (action.type) {\n case SET_SECURE_STORAGE_SUCCESS:\n return action.type;\n default:\n return state;\n }\n};\n\nconst defaultGetItems = null;\nconst getItemsReducer = (\n state: ?string = defaultGetItems,\n action: GetItemSuccessAction\n): ?string => {\n switch (action.type) {\n case GET_SECURE_STORAGE_SUCCESS:\n return action.item;\n default:\n return state;\n }\n};\n\nconst defaultRemoveItems = null;\nconst removeItemsReducer = (\n state: ?string = defaultRemoveItems,\n action: RemoveItemsSuccessAction\n): ?string => {\n switch (action.type) {\n case REMOVE_ITEMS_STORAGE_SUCCESS:\n return action.type;\n default:\n return state;\n }\n};\n\nconst defaultSizeItem = null;\nconst getSizeReducer = (\n state: ?string = defaultSizeItem,\n action: SizeSuccessAction\n): ?string => {\n switch (action.type) {\n case GET_SIZE_SECURE_STORAGE_SUCCESS:\n return action.size;\n default:\n return state;\n }\n};\n\nconst defaultClearItem = null;\nconst clearStorageReducer = (\n state: ?string = defaultClearItem,\n action: ClearSuccessAction\n): ?string => {\n switch (action.type) {\n case CLEAR_SECURE_STORAGE_SUCCESS:\n return action.type;\n default:\n return state;\n }\n};\n\nexport default combineReducers({\n setItems: setItemsReducer,\n getItem: getItemsReducer,\n removeItems: removeItemsReducer,\n size: getSizeReducer,\n clear: clearStorageReducer,\n});\n","import { Points } from 'js-miniapp-sdk';\nimport { combineReducers } from 'redux';\n\nimport type {\n UserNameSuccessAction,\n ProfilePhotoSuccessAction,\n ContactListSuccessAction,\n AccessTokenSuccessAction,\n PointsSuccessAction,\n} from './actions';\nimport {\n REQUEST_CONTACT_LIST_SUCCESS,\n REQUEST_USER_NAME_SUCCESS,\n REQUEST_PROFILE_PHOTO_SUCCESS,\n REQUEST_ACCESS_TOKEN_SUCCESS,\n REQUEST_POINTS_SUCCESS,\n} from './types';\n\nconst defaultUserName = null;\nconst userNameReducer = (\n state: ?string = defaultUserName,\n action: UserNameSuccessAction\n): ?string => {\n switch (action.type) {\n case REQUEST_USER_NAME_SUCCESS:\n return action.userName;\n default:\n return state;\n }\n};\n\nconst defaultProfilePhoto = null;\nconst profilePhotoReducer = (\n state: ?string = defaultProfilePhoto,\n action: ProfilePhotoSuccessAction\n): ?string => {\n switch (action.type) {\n case REQUEST_PROFILE_PHOTO_SUCCESS:\n return action.url;\n default:\n return state;\n }\n};\n\nconst defaultContactList = null;\nconst contactListReducer = (\n state: ?(string[]) = defaultContactList,\n action: ContactListSuccessAction\n): ?(string[]) => {\n switch (action.type) {\n case REQUEST_CONTACT_LIST_SUCCESS:\n return action.contacts;\n default:\n return state;\n }\n};\n\nconst defaultAccessToken = null;\nconst accessTokenReducer = (\n state: ?string = defaultAccessToken,\n action: AccessTokenSuccessAction\n): ?string => {\n switch (action.type) {\n case REQUEST_ACCESS_TOKEN_SUCCESS:\n return action.token;\n default:\n return state;\n }\n};\n\nconst defaultPoints = {};\nconst pointsReducer = (\n state: ?Points = defaultPoints,\n action: PointsSuccessAction\n): ?Points => {\n switch (action.type) {\n case REQUEST_POINTS_SUCCESS:\n return action.points;\n default:\n return state;\n }\n};\n\nexport default combineReducers({\n userName: userNameReducer,\n profilePhoto: profilePhotoReducer,\n contactList: contactListReducer,\n accessToken: accessTokenReducer,\n points: pointsReducer,\n});\n","import type { UUIDAction } from './actions';\nimport {\n SET_UNIQUE_ID,\n UNIQUE_ID_FETCH_ERROR,\n SET_MESSAGING_UNIQUE_ID,\n SET_MAUID,\n MESSAGING_UNIQUE_ID_FETCH_ERROR,\n MAUID_FETCH_ERROR,\n} from './types';\n\ntype UUIDState = {\n +uniqueId: ?string,\n +messagingUniqueId: ?string,\n +mauid: ?string,\n};\n\nconst defaultState: UUIDState = {\n uniqueId: undefined,\n messagingUniqueId: undefined,\n mauid: undefined,\n uniqueIdError: undefined,\n messagingUniqueIdError: undefined,\n mauidError: undefined,\n};\n\nconst UUIDReducer = (\n state: UUIDState = defaultState,\n action: UUIDAction = {}\n): UUIDState => {\n if (action.type === SET_UNIQUE_ID) {\n return {\n ...defaultState,\n uniqueId: action.payload,\n };\n }\n if (action.type === SET_MESSAGING_UNIQUE_ID) {\n return {\n ...defaultState,\n messagingUniqueId: action.payload,\n };\n } else if (action.type === SET_MAUID) {\n return {\n ...defaultState,\n mauid: action.payload,\n };\n } else if (action.type === MESSAGING_UNIQUE_ID_FETCH_ERROR) {\n return {\n ...defaultState,\n messagingUniqueIdError: action.error,\n };\n } else if (action.type === MAUID_FETCH_ERROR) {\n return {\n ...defaultState,\n mauidError: action.error,\n };\n } else if (action.type === UNIQUE_ID_FETCH_ERROR) {\n return {\n ...defaultState,\n uniqueIdError: action.error,\n };\n }\n\n return state;\n};\n\nexport { UUIDReducer };\n","import { combineReducers } from 'redux';\n\nimport { FileDownloadReducer } from './filedownload/reducers';\nimport HomeStateReducer from './home/reducers';\nimport {\n HostEnvironmentInfoReducer,\n SecureStorageStatusReducer,\n} from './landing/reducers';\nimport MessageReducer from './message/reducers';\nimport { PermissionsReducer } from './permissions/reducers';\nimport storageReducer from './secure-storage/reducers';\nimport userReducer from './user/reducers';\nimport { UUIDReducer } from './uuid/reducers';\n\nexport default combineReducers({\n message: MessageReducer,\n home: HomeStateReducer,\n permissions: PermissionsReducer,\n user: userReducer,\n uuid: UUIDReducer,\n info: HostEnvironmentInfoReducer,\n file: FileDownloadReducer,\n secureStorage: storageReducer,\n secureStorageStatus: SecureStorageStatusReducer,\n});\n","import { createStore, applyMiddleware } from 'redux';\nimport thunk from 'redux-thunk';\n\nimport reducers from './reducers';\n\nexport default createStore(reducers, applyMiddleware(thunk));\n","import { createTheme } from '@material-ui/core';\nimport { grey } from '@material-ui/core/colors';\n\nexport default createTheme({\n palette: {\n primary: {\n main: '#bf0000',\n },\n secondary: grey,\n },\n color: {\n primary: '#bf0000',\n secondary: 'lightgrey',\n },\n});\n","import React from 'react';\n\nimport { makeStyles, ThemeProvider } from '@material-ui/core';\nimport { Provider } from 'react-redux';\n\nimport Home from './pages/home';\nimport store from './services/store';\nimport Theme from './theme';\n\nconst useStyles = makeStyles((theme) => ({\n App: {\n width: '100%',\n textAlign: 'center',\n },\n}));\n\nfunction App() {\n const classes = useStyles();\n return (\n \n \n
\n \n
\n
\n
\n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport './index.css';\nimport App from './App';\n//$FlowFixMe\nimport * as serviceWorker from './serviceWorker';\n\nconst container = document.getElementById('root');\nconst root = createRoot(container);\nroot.render(\n \n \n \n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","!function(r){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=r();else if(\"function\"==typeof define&&define.amd)define([],r);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).MiniApp=r()}}((function(){var r,e,t,n=(r=function(r,t){(function(r){(function(){\"use strict\";function r(r){if(r>2147483647)throw new RangeError('The value \"'+r+'\" is invalid for option \"size\"');var e=new Uint8Array(r);return e.__proto__=n.prototype,e}function n(r,e,t){if(\"number\"==typeof r){if(\"string\"==typeof e)throw new TypeError('The \"string\" argument must be of type string. Received type number');return u(r)}return o(r,e,t)}function o(e,t,o){if(\"string\"==typeof e)return function(e,t){if(\"string\"==typeof t&&\"\"!==t||(t=\"utf8\"),!n.isEncoding(t))throw new TypeError(\"Unknown encoding: \"+t);var o=0|c(e,t),i=r(o),u=i.write(e,t);return u!==o&&(i=i.slice(0,u)),i}(e,t);if(ArrayBuffer.isView(e))return a(e);if(null==e)throw TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof e);if(F(e,ArrayBuffer)||e&&F(e.buffer,ArrayBuffer))return function(r,e,t){if(e<0||r.byteLength=2147483647)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+2147483647..toString(16)+\" bytes\");return 0|r}function c(r,e){if(n.isBuffer(r))return r.length;if(ArrayBuffer.isView(r)||F(r,ArrayBuffer))return r.byteLength;if(\"string\"!=typeof r)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof r);var t=r.length,o=arguments.length>2&&!0===arguments[2];if(!o&&0===t)return 0;for(var i=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return t;case\"utf8\":case\"utf-8\":return U(r).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*t;case\"hex\":return t>>>1;case\"base64\":return x(r).length;default:if(i)return o?-1:U(r).length;e=(\"\"+e).toLowerCase(),i=!0}}function p(r,e,t){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===t||t>this.length)&&(t=this.length),t<=0)return\"\";if((t>>>=0)<=(e>>>=0))return\"\";for(r||(r=\"utf8\");;)switch(r){case\"hex\":return O(this,e,t);case\"utf8\":case\"utf-8\":return b(this,e,t);case\"ascii\":return P(this,e,t);case\"latin1\":case\"binary\":return w(this,e,t);case\"base64\":return S(this,e,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return M(this,e,t);default:if(n)throw new TypeError(\"Unknown encoding: \"+r);r=(r+\"\").toLowerCase(),n=!0}}function f(r,e,t){var n=r[e];r[e]=r[t],r[t]=n}function l(r,e,t,o,i){if(0===r.length)return-1;if(\"string\"==typeof t?(o=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),L(t=+t)&&(t=i?0:r.length-1),t<0&&(t=r.length+t),t>=r.length){if(i)return-1;t=r.length-1}else if(t<0){if(!i)return-1;t=0}if(\"string\"==typeof e&&(e=n.from(e,o)),n.isBuffer(e))return 0===e.length?-1:d(r,e,t,o,i);if(\"number\"==typeof e)return e&=255,\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.call(r,e,t):d(r,[e],t,o,i);throw new TypeError(\"val must be string, number or Buffer\")}function d(r,e,t,n,o){var i,u=1,a=r.length,s=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(r.length<2||e.length<2)return-1;u=2,a/=2,s/=2,t/=2}function c(r,e){return 1===u?r[e]:r.readUInt16BE(e*u)}if(o){var p=-1;for(i=t;ia&&(t=a-s),i=t;i>=0;i--){for(var f=!0,l=0;lo&&(n=o):n=o;var i=e.length;n>i/2&&(n=i/2);for(var u=0;u>8,o=t%256,i.push(o),i.push(n);return i}(e,r.length-t),r,t,n)}function S(r,e,t){return 0===e&&t===r.length?J.fromByteArray(r):J.fromByteArray(r.slice(e,t))}function b(r,e,t){t=Math.min(r.length,t);for(var n=[],o=e;o239?4:c>223?3:c>191?2:1;if(o+f<=t)switch(f){case 1:c<128&&(p=c);break;case 2:128==(192&(i=r[o+1]))&&(s=(31&c)<<6|63&i)>127&&(p=s);break;case 3:i=r[o+1],u=r[o+2],128==(192&i)&&128==(192&u)&&(s=(15&c)<<12|(63&i)<<6|63&u)>2047&&(s<55296||s>57343)&&(p=s);break;case 4:i=r[o+1],u=r[o+2],a=r[o+3],128==(192&i)&&128==(192&u)&&128==(192&a)&&(s=(15&c)<<18|(63&i)<<12|(63&u)<<6|63&a)>65535&&s<1114112&&(p=s)}null===p?(p=65533,f=1):p>65535&&(p-=65536,n.push(p>>>10&1023|55296),p=56320|1023&p),n.push(p),o+=f}return function(r){var e=r.length;if(e<=A)return String.fromCharCode.apply(String,r);for(var t=\"\",n=0;ne&&(r+=\" ... \"),\"\"},n.prototype.compare=function(r,e,t,o,i){if(F(r,Uint8Array)&&(r=n.from(r,r.offset,r.byteLength)),!n.isBuffer(r))throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+typeof r);if(void 0===e&&(e=0),void 0===t&&(t=r?r.length:0),void 0===o&&(o=0),void 0===i&&(i=this.length),e<0||t>r.length||o<0||i>this.length)throw new RangeError(\"out of range index\");if(o>=i&&e>=t)return 0;if(o>=i)return-1;if(e>=t)return 1;if(this===r)return 0;for(var u=(i>>>=0)-(o>>>=0),a=(t>>>=0)-(e>>>=0),s=Math.min(u,a),c=this.slice(o,i),p=r.slice(e,t),f=0;f>>=0,isFinite(t)?(t>>>=0,void 0===n&&(n=\"utf8\")):(n=t,t=void 0)}var o=this.length-e;if((void 0===t||t>o)&&(t=o),r.length>0&&(t<0||e<0)||e>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");n||(n=\"utf8\");for(var i=!1;;)switch(n){case\"hex\":return h(this,r,e,t);case\"utf8\":case\"utf-8\":return g(this,r,e,t);case\"ascii\":return y(this,r,e,t);case\"latin1\":case\"binary\":return E(this,r,e,t);case\"base64\":return v(this,r,e,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return m(this,r,e,t);default:if(i)throw new TypeError(\"Unknown encoding: \"+n);n=(\"\"+n).toLowerCase(),i=!0}},n.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var A=4096;function P(r,e,t){var n=\"\";t=Math.min(r.length,t);for(var o=e;oo)&&(t=o);for(var i=\"\",u=e;ut)throw new RangeError(\"Trying to access beyond buffer length\")}function _(r,e,t,o,i,u){if(!n.isBuffer(r))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||er.length)throw new RangeError(\"Index out of range\")}function C(r,e,t,n,o,i){if(t+n>r.length)throw new RangeError(\"Index out of range\");if(t<0)throw new RangeError(\"Index out of range\")}function j(r,e,t,n,o){return e=+e,t>>>=0,o||C(r,0,t,4),$.write(r,e,t,n,23,4),t+4}function B(r,e,t,n,o){return e=+e,t>>>=0,o||C(r,0,t,8),$.write(r,e,t,n,52,8),t+8}n.prototype.slice=function(r,e){var t=this.length;(r=~~r)<0?(r+=t)<0&&(r=0):r>t&&(r=t),(e=void 0===e?t:~~e)<0?(e+=t)<0&&(e=0):e>t&&(e=t),e>>=0,e>>>=0,t||I(r,e,this.length);for(var n=this[r],o=1,i=0;++i>>=0,e>>>=0,t||I(r,e,this.length);for(var n=this[r+--e],o=1;e>0&&(o*=256);)n+=this[r+--e]*o;return n},n.prototype.readUInt8=function(r,e){return r>>>=0,e||I(r,1,this.length),this[r]},n.prototype.readUInt16LE=function(r,e){return r>>>=0,e||I(r,2,this.length),this[r]|this[r+1]<<8},n.prototype.readUInt16BE=function(r,e){return r>>>=0,e||I(r,2,this.length),this[r]<<8|this[r+1]},n.prototype.readUInt32LE=function(r,e){return r>>>=0,e||I(r,4,this.length),(this[r]|this[r+1]<<8|this[r+2]<<16)+16777216*this[r+3]},n.prototype.readUInt32BE=function(r,e){return r>>>=0,e||I(r,4,this.length),16777216*this[r]+(this[r+1]<<16|this[r+2]<<8|this[r+3])},n.prototype.readIntLE=function(r,e,t){r>>>=0,e>>>=0,t||I(r,e,this.length);for(var n=this[r],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*e)),n},n.prototype.readIntBE=function(r,e,t){r>>>=0,e>>>=0,t||I(r,e,this.length);for(var n=e,o=1,i=this[r+--n];n>0&&(o*=256);)i+=this[r+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*e)),i},n.prototype.readInt8=function(r,e){return r>>>=0,e||I(r,1,this.length),128&this[r]?-1*(255-this[r]+1):this[r]},n.prototype.readInt16LE=function(r,e){r>>>=0,e||I(r,2,this.length);var t=this[r]|this[r+1]<<8;return 32768&t?4294901760|t:t},n.prototype.readInt16BE=function(r,e){r>>>=0,e||I(r,2,this.length);var t=this[r+1]|this[r]<<8;return 32768&t?4294901760|t:t},n.prototype.readInt32LE=function(r,e){return r>>>=0,e||I(r,4,this.length),this[r]|this[r+1]<<8|this[r+2]<<16|this[r+3]<<24},n.prototype.readInt32BE=function(r,e){return r>>>=0,e||I(r,4,this.length),this[r]<<24|this[r+1]<<16|this[r+2]<<8|this[r+3]},n.prototype.readFloatLE=function(r,e){return r>>>=0,e||I(r,4,this.length),$.read(this,r,!0,23,4)},n.prototype.readFloatBE=function(r,e){return r>>>=0,e||I(r,4,this.length),$.read(this,r,!1,23,4)},n.prototype.readDoubleLE=function(r,e){return r>>>=0,e||I(r,8,this.length),$.read(this,r,!0,52,8)},n.prototype.readDoubleBE=function(r,e){return r>>>=0,e||I(r,8,this.length),$.read(this,r,!1,52,8)},n.prototype.writeUIntLE=function(r,e,t,n){r=+r,e>>>=0,t>>>=0,n||_(this,r,e,t,Math.pow(2,8*t)-1,0);var o=1,i=0;for(this[e]=255&r;++i>>=0,t>>>=0,n||_(this,r,e,t,Math.pow(2,8*t)-1,0);var o=t-1,i=1;for(this[e+o]=255&r;--o>=0&&(i*=256);)this[e+o]=r/i&255;return e+t},n.prototype.writeUInt8=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,1,255,0),this[e]=255&r,e+1},n.prototype.writeUInt16LE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,2,65535,0),this[e]=255&r,this[e+1]=r>>>8,e+2},n.prototype.writeUInt16BE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,2,65535,0),this[e]=r>>>8,this[e+1]=255&r,e+2},n.prototype.writeUInt32LE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,4,4294967295,0),this[e+3]=r>>>24,this[e+2]=r>>>16,this[e+1]=r>>>8,this[e]=255&r,e+4},n.prototype.writeUInt32BE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,4,4294967295,0),this[e]=r>>>24,this[e+1]=r>>>16,this[e+2]=r>>>8,this[e+3]=255&r,e+4},n.prototype.writeIntLE=function(r,e,t,n){if(r=+r,e>>>=0,!n){var o=Math.pow(2,8*t-1);_(this,r,e,t,o-1,-o)}var i=0,u=1,a=0;for(this[e]=255&r;++i>0)-a&255;return e+t},n.prototype.writeIntBE=function(r,e,t,n){if(r=+r,e>>>=0,!n){var o=Math.pow(2,8*t-1);_(this,r,e,t,o-1,-o)}var i=t-1,u=1,a=0;for(this[e+i]=255&r;--i>=0&&(u*=256);)r<0&&0===a&&0!==this[e+i+1]&&(a=1),this[e+i]=(r/u>>0)-a&255;return e+t},n.prototype.writeInt8=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,1,127,-128),r<0&&(r=255+r+1),this[e]=255&r,e+1},n.prototype.writeInt16LE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,2,32767,-32768),this[e]=255&r,this[e+1]=r>>>8,e+2},n.prototype.writeInt16BE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,2,32767,-32768),this[e]=r>>>8,this[e+1]=255&r,e+2},n.prototype.writeInt32LE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,4,2147483647,-2147483648),this[e]=255&r,this[e+1]=r>>>8,this[e+2]=r>>>16,this[e+3]=r>>>24,e+4},n.prototype.writeInt32BE=function(r,e,t){return r=+r,e>>>=0,t||_(this,r,e,4,2147483647,-2147483648),r<0&&(r=4294967295+r+1),this[e]=r>>>24,this[e+1]=r>>>16,this[e+2]=r>>>8,this[e+3]=255&r,e+4},n.prototype.writeFloatLE=function(r,e,t){return j(this,r,e,!0,t)},n.prototype.writeFloatBE=function(r,e,t){return j(this,r,e,!1,t)},n.prototype.writeDoubleLE=function(r,e,t){return B(this,r,e,!0,t)},n.prototype.writeDoubleBE=function(r,e,t){return B(this,r,e,!1,t)},n.prototype.copy=function(r,e,t,o){if(!n.isBuffer(r))throw new TypeError(\"argument should be a Buffer\");if(t||(t=0),o||0===o||(o=this.length),e>=r.length&&(e=r.length),e||(e=0),o>0&&o=this.length)throw new RangeError(\"Index out of range\");if(o<0)throw new RangeError(\"sourceEnd out of bounds\");o>this.length&&(o=this.length),r.length-e=0;--u)r[u+e]=this[u+t];else Uint8Array.prototype.set.call(r,this.subarray(t,o),e);return i},n.prototype.fill=function(r,e,t,o){if(\"string\"==typeof r){if(\"string\"==typeof e?(o=e,e=0,t=this.length):\"string\"==typeof t&&(o=t,t=this.length),void 0!==o&&\"string\"!=typeof o)throw new TypeError(\"encoding must be a string\");if(\"string\"==typeof o&&!n.isEncoding(o))throw new TypeError(\"Unknown encoding: \"+o);if(1===r.length){var i=r.charCodeAt(0);(\"utf8\"===o&&i<128||\"latin1\"===o)&&(r=i)}}else\"number\"==typeof r&&(r&=255);if(e<0||this.length>>=0,t=void 0===t?this.length:t>>>0,r||(r=0),\"number\"==typeof r)for(u=e;u55295&&t<57344){if(!o){if(t>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(u+1===n){(e-=3)>-1&&i.push(239,191,189);continue}o=t;continue}if(t<56320){(e-=3)>-1&&i.push(239,191,189),o=t;continue}t=65536+(o-55296<<10|t-56320)}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,t<128){if((e-=1)<0)break;i.push(t)}else if(t<2048){if((e-=2)<0)break;i.push(t>>6|192,63&t|128)}else if(t<65536){if((e-=3)<0)break;i.push(t>>12|224,t>>6&63|128,63&t|128)}else{if(!(t<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;i.push(t>>18|240,t>>12&63|128,t>>6&63|128,63&t|128)}}return i}function x(r){return J.toByteArray(function(r){if((r=(r=r.split(\"=\")[0]).trim().replace(T,\"\")).length<2)return\"\";for(;r.length%4!=0;)r+=\"=\";return r}(r))}function N(r,e,t,n){for(var o=0;o=e.length||o>=r.length);++o)e[o+t]=r[o];return o}function F(r,e){return r instanceof e||null!=r&&null!=r.constructor&&null!=r.constructor.name&&r.constructor.name===e.name}function L(r){return r!=r}}).call(this)}).call(this,n({}).Buffer)},function(t){return e||r(e={exports:{},parent:t},e.exports),e.exports}),o={};Object.defineProperty(o,\"__esModule\",{value:!0}),o.MiniAppSecureStorageEvents=void 0,(t=o.MiniAppSecureStorageEvents||(o.MiniAppSecureStorageEvents={})).onReady=\"miniappsecurestorageready\",t.onLoadError=\"miniappsecurestorageloaderror\";var i={};Object.defineProperty(i,\"__esModule\",{value:!0}),i.AccessTokenData=void 0;i.AccessTokenData=function(r){this.token=r.token,this.validUntil=new Date(r.validUntil),this.scopes=new a(r.scopes)};var u,a=function(r){this.audience=r.audience,this.scopes=r.scopes},s={},c=this&&this.__extends||(u=function(r,e){return(u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])})(r,e)},function(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function t(){this.constructor=r}u(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)});Object.defineProperty(s,\"__esModule\",{value:!0}),s.MiniAppError=void 0;var p=function(r){function e(t){var n=r.call(this)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.name=t.type,n.message=t.message,n}return c(e,r),e}(Error);s.MiniAppError=p;var f,l,d={},h=this&&this.__extends||(f=function(r,e){return(f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])})(r,e)},function(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function t(){this.constructor=r}f(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)});Object.defineProperty(d,\"__esModule\",{value:!0}),d.parseAuthError=d.AuthorizationFailureError=d.ScopesNotSupportedError=d.AudienceNotSupportedError=void 0,function(r){r.AudienceNotSupportedError=\"AudienceNotSupportedError\",r.ScopesNotSupportedError=\"ScopesNotSupportedError\",r.AuthorizationFailureError=\"AuthorizationFailureError\"}(l||(l={}));var g=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"The value passed for 'audience' is not supported.\",n}return h(e,r),e}(s.MiniAppError);d.AudienceNotSupportedError=g;var y=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"The value passed for 'scopes' is not supported.\",n}return h(e,r),e}(s.MiniAppError);d.ScopesNotSupportedError=y;var E=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n}return h(e,r),e}(s.MiniAppError);d.AuthorizationFailureError=E,d.parseAuthError=function(r){switch(l[r.type]){case l.AuthorizationFailureError:return new E(r);case l.AudienceNotSupportedError:return new g(r);case l.ScopesNotSupportedError:return new y(r);default:return}};var v,m,S={},b=this&&this.__extends||(v=function(r,e){return(v=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])})(r,e)},function(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function t(){this.constructor=r}v(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)});Object.defineProperty(S,\"__esModule\",{value:!0}),S.parseDownloadError=S.DownloadHttpError=S.SaveFailureError=S.InvalidUrlError=S.DownloadFailedError=void 0,function(r){r.DownloadFailedError=\"DownloadFailedError\",r.InvalidUrlError=\"InvalidUrlError\",r.SaveFailureError=\"SaveFailureError\",r.DownloadHttpError=\"DownloadHttpError\"}(m||(m={}));var A=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Failed to download the file.\",n}return b(e,r),e}(s.MiniAppError);S.DownloadFailedError=A;var P=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"The provided URL is invalid.\",n}return b(e,r),e}(s.MiniAppError);S.InvalidUrlError=P;var w=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Failed to save the file to the device.\",n}return b(e,r),e}(s.MiniAppError);S.SaveFailureError=w;var O=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.code=t.code,n.message=t.message,n}return b(e,r),e}(s.MiniAppError);S.DownloadHttpError=O,S.parseDownloadError=function(r){switch(m[r.type]){case m.DownloadFailedError:return new A(r);case m.InvalidUrlError:return new P(r);case m.SaveFailureError:return new w(r);case m.DownloadHttpError:return new O(r);default:return}};var M,I,_={},C=this&&this.__extends||(M=function(r,e){return(M=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])})(r,e)},function(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function t(){this.constructor=r}M(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)});Object.defineProperty(_,\"__esModule\",{value:!0}),_.parseStorageError=_.SecureStorageIOError=_.SecureStorageUnavailableError=_.SecureStorageBusyError=_.SecureStorageFullError=void 0,function(r){r.SecureStorageFullError=\"SecureStorageFullError\",r.SecureStorageBusyError=\"SecureStorageBusyError\",r.SecureStorageUnavailableError=\"SecureStorageUnavailableError\",r.SecureStorageIOError=\"SecureStorageIOError\"}(I||(I={}));var j=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Storage limit is exceeded or full already\",n}return C(e,r),e}(s.MiniAppError);_.SecureStorageFullError=j;var B=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Storage is busy, please try again\",n}return C(e,r),e}(s.MiniAppError);_.SecureStorageBusyError=B;var T=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Storage is not yet loaded or failed to load\",n}return C(e,r),e}(s.MiniAppError);_.SecureStorageUnavailableError=T;var U=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Unable to read/write changes in Storage.\",n}return C(e,r),e}(s.MiniAppError);_.SecureStorageIOError=U,_.parseStorageError=function(r){switch(I[r.type]){case I.SecureStorageFullError:return new j(r);case I.SecureStorageBusyError:return new B(r);case I.SecureStorageUnavailableError:return new T(r);case I.SecureStorageIOError:return new U(r);default:return}};var x,N,F={},L=this&&this.__extends||(x=function(r,e){return(x=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,e){r.__proto__=e}||function(r,e){for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=e[t])})(r,e)},function(r,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Class extends value \"+String(e)+\" is not a constructor or null\");function t(){this.constructor=r}x(r,e),r.prototype=null===e?Object.create(e):(t.prototype=e.prototype,new t)});Object.defineProperty(F,\"__esModule\",{value:!0}),F.parseInAppPurchaseError=F.UserCancelledPurchaseError=F.ProductPurchasedAlreadyError=F.ProductNotFoundError=F.ConsumeFailedError=F.PurchaseFailedError=void 0,function(r){r.PurchaseFailedError=\"PurchaseFailedError\",r.ConsumeFailedError=\"ConsumeFailedError\",r.ProductNotFoundError=\"ProductNotFoundError\",r.ProductPurchasedAlreadyError=\"ProductPurchasedAlreadyError\",r.UserCancelledPurchaseError=\"UserCancelledPurchaseError\"}(N||(N={}));var D=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Product Purchase failed, please try again later\",n}return L(e,r),e}(s.MiniAppError);F.PurchaseFailedError=D;var R=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Unable to consume the product, please make sure the product is purchased already\",n}return L(e,r),e}(s.MiniAppError);F.ConsumeFailedError=R;var k=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"Unable to find the ProductId. Please make sure that the productId is registered in Google Play\",n}return L(e,r),e}(s.MiniAppError);F.ProductNotFoundError=k;var H=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"This Product is purchased already\",n}return L(e,r),e}(s.MiniAppError);F.ProductPurchasedAlreadyError=H;var z=function(r){function e(t){var n=r.call(this,t)||this;return n.errorInput=t,Object.setPrototypeOf(n,e.prototype),n.message=\"User cancelled the purchase\",n}return L(e,r),e}(s.MiniAppError);F.UserCancelledPurchaseError=z,F.parseInAppPurchaseError=function(r){switch(N[r.type]){case N.PurchaseFailedError:return new D(r);case N.ConsumeFailedError:return new R(r);case N.ProductNotFoundError:return new k(r);case N.ProductPurchasedAlreadyError:return new H(r);case N.UserCancelledPurchaseError:return new z(r);default:return}};var K={};Object.defineProperty(K,\"__esModule\",{value:!0}),K.UserCancelledPurchaseError=K.ProductPurchasedAlreadyError=K.ProductNotFoundError=K.ConsumeFailedError=K.PurchaseFailedError=K.SecureStorageIOError=K.SecureStorageUnavailableError=K.SecureStorageBusyError=K.SecureStorageFullError=K.ScopesNotSupportedError=K.SaveFailureError=K.parseMiniAppError=K.MiniAppError=K.InvalidUrlError=K.DownloadHttpError=K.DownloadFailedError=K.AudienceNotSupportedError=K.AuthorizationFailureError=void 0,Object.defineProperty(K,\"AuthorizationFailureError\",{enumerable:!0,get:function(){return d.AuthorizationFailureError}}),Object.defineProperty(K,\"AudienceNotSupportedError\",{enumerable:!0,get:function(){return d.AudienceNotSupportedError}}),Object.defineProperty(K,\"ScopesNotSupportedError\",{enumerable:!0,get:function(){return d.ScopesNotSupportedError}}),Object.defineProperty(K,\"DownloadFailedError\",{enumerable:!0,get:function(){return S.DownloadFailedError}}),Object.defineProperty(K,\"DownloadHttpError\",{enumerable:!0,get:function(){return S.DownloadHttpError}}),Object.defineProperty(K,\"InvalidUrlError\",{enumerable:!0,get:function(){return S.InvalidUrlError}}),Object.defineProperty(K,\"SaveFailureError\",{enumerable:!0,get:function(){return S.SaveFailureError}}),Object.defineProperty(K,\"SecureStorageFullError\",{enumerable:!0,get:function(){return _.SecureStorageFullError}}),Object.defineProperty(K,\"SecureStorageBusyError\",{enumerable:!0,get:function(){return _.SecureStorageBusyError}}),Object.defineProperty(K,\"SecureStorageUnavailableError\",{enumerable:!0,get:function(){return _.SecureStorageUnavailableError}}),Object.defineProperty(K,\"SecureStorageIOError\",{enumerable:!0,get:function(){return _.SecureStorageIOError}}),Object.defineProperty(K,\"PurchaseFailedError\",{enumerable:!0,get:function(){return F.PurchaseFailedError}}),Object.defineProperty(K,\"ConsumeFailedError\",{enumerable:!0,get:function(){return F.ConsumeFailedError}}),Object.defineProperty(K,\"ProductNotFoundError\",{enumerable:!0,get:function(){return F.ProductNotFoundError}}),Object.defineProperty(K,\"ProductPurchasedAlreadyError\",{enumerable:!0,get:function(){return F.ProductPurchasedAlreadyError}}),Object.defineProperty(K,\"UserCancelledPurchaseError\",{enumerable:!0,get:function(){return F.UserCancelledPurchaseError}}),Object.defineProperty(K,\"MiniAppError\",{enumerable:!0,get:function(){return s.MiniAppError}}),K.parseMiniAppError=function(r){try{var t=JSON.parse(r);return(0,d.parseAuthError)(t)||(0,S.parseDownloadError)(t)||(0,_.parseStorageError)(t)||(0,F.parseInAppPurchaseError)(t)||new s.MiniAppError(t)}catch(e){return console.error(e),new s.MiniAppError({type:\"MiniAppError\",message:\"Failed to parse the error: \"+r})}};for(var J={toByteArray:function(r){var e,t,n=Z(r),o=n[0],i=n[1],u=new Y(function(r,e,t){return 3*(e+t)/4-t}(0,o,i)),a=0,s=i>0?o-4:o;for(t=0;t>16&255,u[a++]=e>>8&255,u[a++]=255&e;return 2===i&&(e=W[r.charCodeAt(t)]<<2|W[r.charCodeAt(t+1)]>>4,u[a++]=255&e),1===i&&(e=W[r.charCodeAt(t)]<<10|W[r.charCodeAt(t+1)]<<4|W[r.charCodeAt(t+2)]>>2,u[a++]=e>>8&255,u[a++]=255&e),u},fromByteArray:function(r){for(var e,t=r.length,n=t%3,o=[],i=0,u=t-n;iu?u:i+16383));return 1===n?(e=r[t-1],o.push(q[e>>2]+q[e<<4&63]+\"==\")):2===n&&(e=(r[t-2]<<8)+r[t-1],o.push(q[e>>10]+q[e>>4&63]+q[e<<2&63]+\"=\")),o.join(\"\")}},q=[],W=[],Y=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,V=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",G=0,X=V.length;G0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var t=r.indexOf(\"=\");return-1===t&&(t=e),[t,t===e?0:4-t%4]}function Q(r,e,t){for(var n,o,i=[],u=e;u>18&63]+q[o>>12&63]+q[o>>6&63]+q[63&o]);return i.join(\"\")}W[\"-\".charCodeAt(0)]=62,W[\"_\".charCodeAt(0)]=63;var $={read:function(r,e,t,n,o){var i,u,a=8*o-n-1,s=(1<>1,p=-7,f=t?o-1:0,l=t?-1:1,d=r[e+f];for(f+=l,i=d&(1<<-p)-1,d>>=-p,p+=a;p>0;i=256*i+r[e+f],f+=l,p-=8);for(u=i&(1<<-p)-1,i>>=-p,p+=n;p>0;u=256*u+r[e+f],f+=l,p-=8);if(0===i)i=1-c;else{if(i===s)return u?NaN:1/0*(d?-1:1);u+=Math.pow(2,n),i-=c}return(d?-1:1)*u*Math.pow(2,i-n)},write:function(r,e,t,n,o,i){var u,a,s,c=8*i-o-1,p=(1<>1,l=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,h=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,u=p):(u=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-u))<1&&(u--,s*=2),(e+=u+f>=1?l/s:l*Math.pow(2,1-f))*s>=2&&(u++,s/=2),u+f>=p?(a=0,u=p):u+f>=1?(a=(e*s-1)*Math.pow(2,o),u+=f):(a=e*Math.pow(2,f-1)*Math.pow(2,o),u=0));o>=8;r[t+d]=255&a,d+=h,a/=256,o-=8);for(u=u<0;r[t+d]=255&u,d+=h,u/=256,c-=8);r[t+d-h]|=128*g}},rr={};(function(r){(function(){\"use strict\";var t=this&&this.__assign||function(){return(t=Object.assign||function(r){for(var e,t=1,n=arguments.length;te?(null==r?void 0:r.substring(0,e-1))+\"\\u2026\":r}rr.MiniAppBridge=s;function f(t){var n=r.from(t,\"base64\").toString(\"utf8\"),o=n.replace(/\\\\(\\d{3})/g,(function(r,e){return String.fromCharCode(function(r){return Number.parseInt(r,8)}(e))})),i=JSON.stringify(o),u=i.replace(/\\\\\\\\/g,\"\\\\\");return!0===function(r){try{JSON.parse(r)}catch(e){return!1}return!0}(u)?JSON.parse(u):JSON.parse(i)}}).call(this)}).call(this,n({}).Buffer);var er={};function tr(){if(\"undefined\"!=typeof window)return window.MiniAppSDKLogger}Object.defineProperty(er,\"__esModule\",{value:!0}),er.MiniAppSDKLogger=void 0;var nr=function(){function r(r){this.logger=r}return r.prototype.logOnConsole=function(r,e){ir(r).apply(null,e)},r.prototype.log=function(r,e){this.lastLog={icon:r.icon,messageType:r.type,message:e},this.logger.log(r.icon,r.type,e),this.logOnConsole(r,e)},r}();er.MiniAppSDKLogger=nr;var or=function(){function r(r,e){this.type=r,this.icon=e}return r.debug=new r(\"debug\",\"\\ud83d\\udcd8\"),r.log=new r(\"log\",\"\\ud83d\\udcd7\"),r.warn=new r(\"warning\",\"\\ud83d\\udcd9\"),r.error=new r(\"error\",\"\\ud83d\\udcd5\"),r}();function ir(r){switch(r){case or.debug:return cr;case or.warn:return ar;case or.error:return sr;default:return ur}}var ur=console.log,ar=console.warn,sr=console.error,cr=console.debug;function pr(r,e){var t=tr();void 0!==t?t.log(r,e):ir(r).apply(null,e)}console.log=function(){for(var r=[],e=0;e