From 9fa39cd1f3b8bee9c943d5e43d4b5639da74c6f4 Mon Sep 17 00:00:00 2001 From: CI Publisher Date: Tue, 17 Oct 2023 08:14:26 +0000 Subject: [PATCH] sample: Deploy JS Sample App [ci skip] --- sample/asset-manifest.json | 8 ++++---- sample/index.html | 2 +- sample/js-miniapp-sample.zip | Bin 2724562 -> 2724634 bytes ...ifest.fdd6a9c6ae541605e71cf6087a88e138.js} | 8 ++++---- sample/service-worker.js | 2 +- sample/static/js/main.91c94cc2.chunk.js.map | 1 - ...c94cc2.chunk.js => main.9e9148d9.chunk.js} | 4 ++-- sample/static/js/main.9e9148d9.chunk.js.map | 1 + 8 files changed, 13 insertions(+), 13 deletions(-) rename sample/{precache-manifest.44a3eb8972e6b85304185fbd1da073c6.js => precache-manifest.fdd6a9c6ae541605e71cf6087a88e138.js} (81%) delete mode 100644 sample/static/js/main.91c94cc2.chunk.js.map rename sample/static/js/{main.91c94cc2.chunk.js => main.9e9148d9.chunk.js} (90%) create mode 100644 sample/static/js/main.9e9148d9.chunk.js.map 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 1f6ecb23a15069bbeac5ba0e3dd990298fe814cf..42611b40bd2438e7cab9ed953be1920d48970055 100644 GIT binary patch delta 106251 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�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
    {LscAevI+)NjHCqs= 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�}TO4eP(LIT@OvosnMOeoW0kj?rSeyj~W&}Wq1c##k|Crt}r|c^`5*4L#DD!&Cp=C(htc~@&-WZbkIujZGijyLFcI^tGuY4aHY^uI zhy_owR%hp;Dd&D_ofHz$sHl-~Ci6*(wh7nw`ymmU-!MxPH&&=QJ(|L0K2B@2@oV9A z`1?6qBaZjFG{L|2wJ<*qcyHuHa~+cJ6IMhT*dS9O>&9(n^__J`j97CQaa}*JaV!s; zWy?Ij zT^u|Z>svq6Kh|GZjWoy5nxYwoKY;7Yc(FAbaeV-^mCchTXJN`K7nK&nlMs9u478Ll z@W~&&dmq`z0QI?CbfG8s*B>Ef5{eTC5if5SY!R+qV$RHL zH?Li{qmPHd*5R6BF~dWlO+hXBgyT79PaGmAK#E3kF})*xV%ZFMx_*yPPfrw2T1JOC z`1)Q?(J)pL_)SSG(fIfLys&ujdS#^EHO292H#ChoFw@9D>Y2NQJVF$cffWX^2rd)p zT`ZMisQ&RvVwfjm#)&v))t(qQ-XY%;{Yn_SG7HV=4xsUBSuc}oNPkwj4t$@dkeqzN zacbGcTzl7tQWp%YL#K>{g`ksq38s)c`5&ga++ z%|0eF?AQtk->oggK4{?1W`cdc5VSUZ3-Jz{9g|4%6LA;9!UB^u#}u8c60pTv1kc(^ zngEH$E#BPcZ9wyV;7>eHwzn+%ON42KIo&Cu-#63Yh{-vKH~vtT>XBdWxM=&PTj_{m@P?MRGu83{VXS9r;~#DPuL_4LJdc^ z5aLa5rxp2!q?jPnm;R>KAgvNCMzF+;WWXIEMS_q$B*tw!v(%S?)*eX?e&bqyd+XtP z^XzE<%VLDtWFwFa-wDgAILp!|FufNO_kJ-=Y9(d~eh|}*f+g}CDQX?CCWr#+Q`ZK0UepIa zAV8I^GX>h*(*@cNG6WGIx%r3e^VSc(mDH)bSQ_YUsz34Z7;A@hD>&Ut| zp!o4KS}EqMxw$@yCY2POBWI_RKthwr-mF=Jr8Oyo1Di~T%naW%N9)b$oY~&7IRw0P zq1BdJ{W&`~&0T*^S+b9kG+GNkHP~K*iqo9 z_a*}$x#6RsGhp09g#rLd6%gW)U>s3M`1O_9y??e&Khf4die$cYAn|H;~n zM)mrSDtg@Cu`1j(nj#PoIGBsm*2YHEQo>r)5-K7rAj&TS6%(+w73CKfvlJJH3J8hw zI(q8sVF57yN-FugduBu^G7}vD$i)NzNC4D-29Jii7KTWo3Z7689|vnFkFTr8bEwC^ z`~PJM%5;JlFo=|i4n_B}^m4G~`$v-hl8jL#YRmtUoS`-jmj9&EqoYEVqgZGqh=CaJ zga12fRCQ1+7=#f3xrfM({f8Z>29n}rn-et=Aj-)bs=tLSv%@_A{lBsgEE{yVXMbfP^9duWOW0N648Po4F&bclm^F!$fX`t5sm9Lh(}2Y(t^5leAktiM~; ze(P3Ty+$lt0|5Q(7yzb!r5^y({X@62rGpEv1XMymSlmW}*V^9O<@vvF8hXv&;c(CR zeP{O303!$-0NcO9p|OMhzv2Fey?^c-*#wk+F=~e2Rxlv^6TrAA{RskOh_*y9A+|>( I7-jnZ0Ye-U_5c6? delta 106251 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¤SlNFIx!Jd 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%0D^d!=88P0fzoVDyzYtE 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 R5ez*Ah>Ol11w@qhe*irziar1U 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