{"version":3,"sources":["assets/china_ic_apprequired.png","assets/icon_close.png","assets/download_error.svg","assets/icon_web_button_normal.png","assets/icon_web_button_pressed.png","assets/icon_web_base.svg","assets/noImage.jpg","assets/noImage_iOS.jpg","assets/icon_web_logo_pressed.png","network/Global.js","network/Lang.js","network/AxiosInstance.js","components/ModalAppRequiredInfo.js","components/VideoDownloadExceededInfo.js","components/DownloadBtnComponent.js","layout/ServiceNotAvilable.js","layout/QRCodeData.js","layout/Home.js","layout/UnAuthorizedAccess.js","App.js","serviceWorker.js","reducers/i18n.js","index.js","assets/icon_web_logo_normal.png","assets/global_ic_apprequired.png"],"names":["module","exports","__webpack_require__","p","Strings","WEB_API","WEB_CHECK_IPORIGIN_COUNTRY","WEB_CHECK_IPFOR_GLOBALSITES","WEB_GET_DATAFROM_URL","CONSTANTS","AUTH_TOKEN","USER_ID","LOGIN_FAILURE_COUNT","DEFAULT_TOKEN_QRCODE","DEFAULT_QRCODE_PASSWORD","URL_STRING","HOMEPAGE","QRCODE_URL","ACCESS_DENIED","SERVICE_NOT_AVAILABLE","ERROR_CODE","USER_NOT_EXIST","INCORRECT_PASSWORD","BLOB_CDN_URL","BASE_PATH","CONTAINER","translationsObject","en","IMAGE_NOT_AVAILABLE","ENTERPASSWORD","INPUTPASSWORD","PASSWORD","INCORRECTPASSWORD","REMAINIG_ATTEMPT","SUBMIT","CANCEL","MAX_TRY_EXCEEDED","EXPIRY_DATE","BTN_DOWNLOAD_VIDEO","BTN_DOWNLOAD_VIDEO_CN","BTN_INSTALL_APP","APP_REQUIRED_INFO","APP_REQUIRED_INFO_CN","APP_REQUIRED_BTN_OK","TITLE_DOWNLOAD_EXCEEDED","SUBTITLE_DOWNLOAD_EXCEEDED","BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED","WARN_MSG_DOWNLOAD_NOT_SUPPORTED","ja","fr","de","es","zh-cn","zh-hk","zh-tw","ko","pt","it","APIHandler","Promise","resolve","reject","axios","get","then","res","AxiosInstance","create","baseURL","data","Translate","require","ModalAppRequiredInfo","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","state","iconLiplayApp","globalAppIcon","appRequiredInfoMsg","isChinaWebApp","setState","chinaAppIcon","react_default","a","createElement","value","_this$props","isVisible","handleOk","handleCancel","_this$state","modal","visible","footer","title","src","iconClose","onClick","className","alt","es_button","closable","maskClosable","centered","Component","imgIconFailed","VideoDownloadExceededInfo","titleText","subtitleText","dismissButtonText","setDownloadExceededTexts","VideoDownloadExceededInfo_Translate","topValueOfDownloadButton","topValueOfCenterContent","dismissBtnStyle","handleBackBtn","style","display","concat","top","margin","textAlign","id","styles","gb","downloadBtn","borderColor","borderRadius","backgroundColor","color","width","height","cn","padding","installBtn","CHINA_APK_DOWNLOAD_URL","CHINA_IOS_DOWNLOAD_URL","DownloadBtnComponent","handleOnClickInstall","window","open","handleOnClickInstalliOS","document","location","renderDownloadButtonDiv","isVideoDownloadButtonVisible","isVideoButtonDisabled","isChinaConfig","handleDownloadBtnClick","refDownloadBtn","isAndroid","disabled","ref","DownloadBtnComponent_Translate","isIOS","Header","Layout","Content","ServiceNotAvilable","flexDirection","justifyContent","layout_default","flex","minHeight","alignContent","fontSize","navigator","language","Fragment","ServiceNotAvilable_Translate","href","iconWebPlayButtonNormal","iconWebPlayButtonPressed","iconWeblogoNormal","iconWebBaseImage","imgNoImageInfo","imgNoImageInfoIos","FormItem","Form","Item","normalImageDivstyle","msTransform","WebkitTransform","transform","iosImageDescStyle","paddingTop","paddingRight","paddingLeft","normalImageDescStyle","VIDEO_DOWNLOAD","STATUS_FLAG","DISABLED","ENABLED","DEFAULT_OR_NOT_DEFINED","isSamsungBrowser","userAgent","includes","QrCodeData","componentDidMount","isServiceDown","addEventListener","updateDimensions","setVideoDownloadExceededInfoStyle","handleLocalStorageExpiry","localStorage","getItem","GlobalStrings","split","Date","removeItem","handleSetFailureCount","count","values","oneday","setMinutes","getMinutes","push","setItem","join","e","mapToBlobCdnUrl","blobUrl","handleGetQrCodeData","password","failCount","parseInt","modalErrorMessage","QRCodeData_Translate","showRemainingAttempts","hash","sha256","update","hashedPassword","hex","config","headers","Authorization","showMainContainerLoading","loading_passwordImage","post","uId","Uid","response","console","log","date","expirationDate","cdnImageUrl","isProductionBuild","imageUrl","cdnAudioUrl","audioUrl","checkVideoDownloadAllowed","videoDownloadFlag","dataExpiryDate","loading","imageExist","showSoundbtn","isVideoDownloadCountExceeded","status","formRef","form","setFieldsValue","Password","failureCount","modalLoginFailureCount","currentState","objectSpread","showNoImageInfo","handleImageLoaded","showMainContainer","setTimeout","playSound","sound","getElementById","soundIconPressedState","play","onplaying","showPlaying","showWebPlayBtnIcon","onended","handleSoundFinishedPlaying","handleOntouchStartPlayBtn","web_play_btn_icon","web_icon_logo_instax","handleResetSound","duration","paused","renderImageDivision","setImageUrl","isOpera","isFirefox","fullBrowserVersion","isChrome","onLoad","bind","assertThisInitialized","onTouchStart","onTouchEnd","onTouchMove","event","preventDefault","onMouseDown","onMouseUp","draggable","onContextMenuCapture","showModal","handleCreate","validateFields","err","saveFormRef","handleOkAppRequiredModal","_this$state2","firebaseDynamicLink","isAppRequiredModalVisible","CustomUriParams","encodeURIComponent","btoa","replace","dynamicLinkParams","isVideoDownloadExceedWarningVisible","isVideoDownloadSupportedPlatform","handleCancelAppRequiredModal","renderPasswordPopUp","PasswordPopUp","wrappedComponentRef","onCancel","onCreate","renderAppRequiredModal","_this$state3","components_ModalAppRequiredInfo","renderVideoDownloadExceededInfo","_this$state4","topValueCenterContentOverlay","topValueDownloadButtonOverlay","downloadExceededDismissBtnStyle","components_VideoDownloadExceededInfo","handleBackBtnDownloadExceededInfo","downloadBtnRef","React","createRef","match","params","uid","playFromPosition","soundCheckiPasswordProtect","verifiedIp","_this2","countrywiseRestrictionChina","countrywiseRestrictionInChina","countrywiseRestrictionGlobal","countrywiseRestrictionInGlobal","soundPasswordProtect","firebaseDynamicLinkForVideoDownload","isChinaBuild","handleCountrywiseRestrictionForChina","handleCountryRestrictionForGlobal","handleAppStart","removeEventListener","_this3","history","_this4","bodyRect","body","getBoundingClientRect","downloadBtnRect","ReactDOM","findDOMNode","current","offset","topValueForCenterContent","dismissBtnWidth","downloadExceededDismissStyle","_this$state5","layout_ServiceNotAvilable","onError","onEnded","components_DownloadBtnComponent","es_alert","description","type","showIcon","spin","_Component2","_class","apply","arguments","inherits","createClass","key","getFieldDecorator","okText","cancelText","onOk","maxWidth","es_form","layout","label","rules","required","message","input","autoFocus","spinning","Home","cardwidth","currentPage","handleCountrywiseRestriction","Home_Header","fontFamily","UnAuthorizedAcesss","screenWidthConfig","breakpoints","innerWidth","contentPadding","UnAuthorizedAccess_Header","UnAuthorizedAccess_Content","App","initialiseApiHandler","init","Switch","Route","exact","path","name","component","QRCodeData","withRouter","Boolean","hostname","i18n","action","i18nStrings","store","createStore","combineReducers","reducers","i18nReducer","applyMiddleware","thunk","syncTranslationWithStore","dispatch","loadTranslations","languages","userLanguage","setLocale","toLowerCase","render","BrowserRouter","src_App","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.df6f5968.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/china_ic_apprequired.a16d5b68.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAACoCAYAAAB0S6W0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA5FJREFUeNrs3V1u2kAUgFGMujDYSvfQZ+C5e+hWYGcUpFAl1FFCPaT353xSFCXhgYxP7LEdeabz+bySorY2BAJUAlSASoBKgApQCVABKgEqASpAJUAFqASoBKgAlQAVoBKgEqACVAJUgEqASoAKUAlQCVABKgEqQCVAJUAFqASoAJUAlQBV5r5Ff4PTNP31vZ/775vr5x/7XyebcFnR18mawr/BF6AvKHeXj83dS04XqFvUAP3fQD96o1t71DdHmf399y7jswf0CUAvg32c2XNCOg/zOk7Hd358HZvD6zGKvv2znCRtPvm6421+Cue747hzFj9+0B+pJdJP4PyDdO7wD+jX1grpAzjTFR7ogjllC6SVcWbag0LaEGcmoAeH+344r2W7UL9kg5S5BLVwLN7c2HCZaexcdMkdoxJ70gF/qIdMv2+qs/juSDseRdJdZuqKtOsUJ+V10G5IO8+/016o74K0+8lh6jtJ1ZG6clHgVmdVpHAWAVoRKZzFgFZCCmdRoBWQwlkcaGakcDYBmhEpnM2AZkIKZ1OgGZDC2RxoZKRwAhoWKZyAhkUKJ6BhkcIJaFikcAIaFimcgIZFCiegYZHCCWhYpHACGhYpnONK8+CGr2gErBvYLDg9wDYR0EFIV1lwZgDqED/+cO+wDmg5pHACGhYpnICGRQonoGGRwgloWKRwAhoWKZyACtBmDbyA33qxMUBj44QU0PA4IQU0PE5IAQ2PE1JAw+OEFNDwOCEF9MtwblcWGwM0Ks7rHSIr4gEaFuftC0gBDYsTUkDD44QU0PA4IQU0PE5IAQ2PE1JAw+OEFNDwOCEFNDxOSAENjxNSQMPjhBTQNI9AhLQh0GzP54S0EdCsD4+FtAHQ7E82hrQw0CqP3Ya0INBqz4SHtBDQqgsWQFoAaPXVNCBNDLTLUi/dka7hjF9npGs4IQUUTkirA7W8YE+kmfag1r5siDQF0Mtgwjke6Q7QcW3gHI7UHnTg3BPOJyDNcJiv+g/LrZZ6+VekGcZonWTw4Xz+nBTQBZ3gHI70BOi4DnCORXp5XYq97XQ+n2O/wWl6Pak/zpx9XjfIAc7Zk6APxyv89s8E9P7sE8rHztbnxgtQqcEcVIBKgEqAClAJUAlQASoBKkAlQCVABagEqACVAJUAFaASoAJUAlQCVIBKgApQCVAJUAEqASpADYEAlQAVoBKgEqACVAJUgEqASrP9FmAApwEUh4zHfDwAAAAASUVORK5CYII=\"","module.exports = __webpack_public_path__ + \"static/media/download_error.0c34165d.svg\";","module.exports = __webpack_public_path__ + \"static/media/icon_web_button_normal.0c769c21.png\";","module.exports = __webpack_public_path__ + \"static/media/icon_web_button_pressed.8f5cbb3e.png\";","module.exports = __webpack_public_path__ + \"static/media/icon_web_base.b6fa09f8.svg\";","module.exports = __webpack_public_path__ + \"static/media/noImage.ee789127.jpg\";","module.exports = __webpack_public_path__ + \"static/media/noImage_iOS.ced9bc54.jpg\";","module.exports = \"data:image/png;base64,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\"","const Strings = {\r\n /**\r\n * API \r\n */\r\n WEB_API: {\r\n\r\n WEB_CHECK_IPORIGIN_COUNTRY: \"api/user/checkIpOriginCountry\",\r\n WEB_CHECK_IPFOR_GLOBALSITES: \"api/user/checkIfIpFromRestrictedCountry\",\r\n WEB_GET_DATAFROM_URL: \"api/user/getDataByUid\",\r\n\r\n },\r\n /**\r\n * Constants\r\n */\r\n CONSTANTS: {\r\n AUTH_TOKEN: \"AuthToken\",\r\n USER_ID: \"USER_ID\",\r\n LOGIN_FAILURE_COUNT: \"LOGIN_FAILURE_COUNT\",\r\n\r\n DEFAULT_TOKEN_QRCODE: \"webtoken1235\",\r\n DEFAULT_QRCODE_PASSWORD: \"0000\"\r\n },\r\n\r\n /**\r\n * Url Strings\r\n */\r\n URL_STRING: {\r\n\r\n HOMEPAGE: \"/\",\r\n QRCODE_URL: \"/:uid\",\r\n ACCESS_DENIED: \"/accessdenied\",\r\n SERVICE_NOT_AVAILABLE: \"/notavilable\"\r\n },\r\n\r\n /**\r\n * Error Codes\r\n */\r\n ERROR_CODE: {\r\n\r\n USER_NOT_EXIST: 6003,\r\n INCORRECT_PASSWORD: 16003,\r\n SERVICE_NOT_AVAILABLE: 503\r\n },\r\n BLOB_CDN_URL: {\r\n BASE_PATH: \"https://liplay-cdn.instax.com/instaxstoragecontainer\",\r\n CONTAINER: \"instaxstoragecontainer\",\r\n }\r\n\r\n};\r\n\r\nexport default Strings;","const translationsObject = {\r\n en: {\r\n IMAGE_NOT_AVAILABLE: \"The image was not uploaded or has been deleted\",\r\n ENTERPASSWORD: \"Enter Password\",\r\n INPUTPASSWORD: \"Please input the pin/password \",\r\n PASSWORD: \"Password\",\r\n INCORRECTPASSWORD: \"Incorrect Password\",\r\n REMAINIG_ATTEMPT: \"Remaining Attempts\",\r\n SUBMIT: \"SUBMIT\",\r\n CANCEL: \"CANCEL\",\r\n MAX_TRY_EXCEEDED: \"You have exceeded the maximum number of attempts, Please retry after some time..!\",\r\n EXPIRY_DATE: \"Browse period\",\r\n BTN_DOWNLOAD_VIDEO: \"Download\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"Download\",\r\n BTN_INSTALL_APP: \"Install\",\r\n APP_REQUIRED_INFO: `The free instax mini LiPlay app is required for downloading. \\n` +\r\n `If the app is installed, it will start automatically and downloading will begin. \\n` +\r\n `If the app is not installed, you will be taken to the App Store or Google Play Store, where you can download the app.`,\r\n APP_REQUIRED_INFO_CN: `The free instax mini LiPlay app is required for downloading. \\n ` +\r\n `If the app is already installed, press “Download”. \\n` +\r\n `If the app is not installed, press “Install”.`,\r\n APP_REQUIRED_BTN_OK: \"OK\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"You have reached the download limit.\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"Cannot download as there are no more downloads remaining.\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"OK\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"The Android or iOS app is required to use the download function.\"\r\n },\r\n ja: {\r\n IMAGE_NOT_AVAILABLE: \"画像がアップロードされていないか、削除されています。\"\r\n , ENTERPASSWORD: \"Enter Password\",\r\n INPUTPASSWORD: \"Please input the pin/password \",\r\n PASSWORD: \"Password\",\r\n INCORRECTPASSWORD: \"Incorrect Password\",\r\n REMAINIG_ATTEMPT: \"Remaining Attempts\",\r\n SUBMIT: \"SUBMIT\",\r\n CANCEL: \"CANCEL\",\r\n MAX_TRY_EXCEEDED: \"You have exceeded the maximum number of attempts, Please retry after some time..!\",\r\n EXPIRY_DATE: \"閲覧期限\",\r\n BTN_DOWNLOAD_VIDEO: \"ダウンロード\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"Download\",\r\n BTN_INSTALL_APP: \"Install\",\r\n APP_REQUIRED_INFO: `ダウンロード機能を利用するためには\"instax mini LiPlay\"(無料アプリ)が必要です。\\n` +\r\n `アプリがインストールされている場合は自動でアプリが起動し、ダウンロードが開始されます。\\n` +\r\n `アプリがインストールされていない場合はアプリストアへ移動しますので、アプリをダウンロードしてください。`,\r\n APP_REQUIRED_INFO_CN: `ダウンロード機能を利用するためには\"instax mini LiPlay\"(無料アプリ)が必要です。\\n` +\r\n `アプリがインストールされている場合は”Download\"、\\n ` +\r\n `アプリがインストールされていない場合は”Install”を押してください。`,\r\n APP_REQUIRED_BTN_OK: \"OK\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"ダウンロード上限回数に達しました。\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"ダウンロード上限回数に達しているためダウンロードできません。\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"OK\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"ダウンロード機能を使うにはアプリはAndroid又はiOSのアプリが必要になります。\"\r\n },\r\n fr: {\r\n IMAGE_NOT_AVAILABLE: \"L’image n’a pas été téléversée ou a été supprimée.\"\r\n , ENTERPASSWORD: \"Enter Password\",\r\n INPUTPASSWORD: \"Please input the pin/password \",\r\n PASSWORD: \"Password\",\r\n INCORRECTPASSWORD: \"Incorrect Password\",\r\n REMAINIG_ATTEMPT: \"Remaining Attempts\",\r\n SUBMIT: \"SUBMIT\",\r\n CANCEL: \"CANCEL\",\r\n MAX_TRY_EXCEEDED: \"You have exceeded the maximum number of attempts, Please retry after some time..!\",\r\n EXPIRY_DATE: \"Période de navigation\",\r\n BTN_DOWNLOAD_VIDEO: \"Télécharger\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"Télécharger\",\r\n BTN_INSTALL_APP: \"Installer\",\r\n APP_REQUIRED_INFO: `L'application gratuite instax mini LiPlay est requise pour le téléchargement. \\n` +\r\n `Si l'application est installée, elle démarre automatiquement et le téléchargement commence. \\n ` +\r\n ` Si l'application n'est pas installée, vous serez dirigé vers l'App Store ou le Google Play Store, où vous pourrez télécharger l'application.`,\r\n APP_REQUIRED_INFO_CN: `L'application gratuite instax mini LiPlay est requise pour le téléchargement. \\n` +\r\n `Si l'application est déjà installée, cliquez sur « Télécharger ». \\n` +\r\n `Si l'application n'est pas installée, cliquez sur « Installer ».`,\r\n APP_REQUIRED_BTN_OK: \"OK\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"Vous avez atteint la limite de téléchargement.\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"Téléchargement impossible, car il ne reste plus de téléchargements.\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"OK\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"L'application Android ou iOS est nécessaire pour utiliser la fonction de téléchargement.\"\r\n },\r\n de: {\r\n IMAGE_NOT_AVAILABLE: \"Das Bild wurde nicht hochgeladen oder wurde gelöscht.\"\r\n , ENTERPASSWORD: \"Enter Password\",\r\n INPUTPASSWORD: \"Please input the pin/password \",\r\n PASSWORD: \"Password\",\r\n INCORRECTPASSWORD: \"Incorrect Password\",\r\n REMAINIG_ATTEMPT: \"Remaining Attempts\",\r\n SUBMIT: \"SUBMIT\",\r\n CANCEL: \"CANCEL\",\r\n MAX_TRY_EXCEEDED: \"You have exceeded the maximum number of attempts, Please retry after some time..!\",\r\n EXPIRY_DATE: \"Zu durchsuchender Zeitraum\",\r\n BTN_DOWNLOAD_VIDEO: \"Download\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"Download\",\r\n BTN_INSTALL_APP: \"Installieren\",\r\n APP_REQUIRED_INFO: `Zum Herunterladen wird die kostenlose „instax mini LiPlay“-App benötigt. \\n ` +\r\n `Wenn die App installiert ist, startet sie automatisch und der Download beginnt. \\n ` +\r\n `Wenn die App nicht installiert ist, werden Sie zum App Store oder Google Play Store weitergeleitet, wo Sie die App herunterladen können.`,\r\n APP_REQUIRED_INFO_CN: `Zum Herunterladen wird die kostenlose „instax mini LiPlay“-App benötigt. \\n` +\r\n `Wenn die App bereits installiert ist, klicken Sie auf „Download“. \\n` +\r\n `Wenn die App nicht installiert ist, klicken Sie auf „Installieren“.`,\r\n APP_REQUIRED_BTN_OK: \"OK\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"Sie haben das Download-Limit erreicht.\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"Herunterladen nicht möglich, da keine Downloads mehr übrig sind.\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"OK\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"Um die Download-Funktion verwenden zu können, ist die Android- oder iOS-App erforderlich.\"\r\n },\r\n es: {\r\n IMAGE_NOT_AVAILABLE: \"La imagen no se ha cargado o se ha eliminado.\"\r\n , ENTERPASSWORD: \"Enter Password\",\r\n INPUTPASSWORD: \"Please input the pin/password \",\r\n PASSWORD: \"Password\",\r\n INCORRECTPASSWORD: \"Incorrect Password\",\r\n REMAINIG_ATTEMPT: \"Remaining Attempts\",\r\n SUBMIT: \"SUBMIT\",\r\n CANCEL: \"CANCEL\",\r\n MAX_TRY_EXCEEDED: \"You have exceeded the maximum number of attempts, Please retry after some time..!\",\r\n EXPIRY_DATE: \"Examinar periodo\",\r\n BTN_DOWNLOAD_VIDEO: \"Descargar\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"Descargar\",\r\n BTN_INSTALL_APP: \"Instalar\",\r\n APP_REQUIRED_INFO: `Se requiere la aplicación instax mini LiPlay para realizar la descarga. \\n` +\r\n `Si está instalada, la aplicación se iniciará automáticamente y comenzará la descarga. \\n` +\r\n `Si la aplicación no está instalada, serás dirigido a App Store o Google Play Store, donde puedes descargar la aplicación.`,\r\n APP_REQUIRED_INFO_CN: `Se requiere la aplicación instax mini LiPlay gratuita para realizar la descarga. \\n` +\r\n `Si la aplicación ya está instalada, pulsa “Descargar”.\\n` +\r\n `Si la aplicación no está instalada, pulsa “Instalar”.`,\r\n APP_REQUIRED_BTN_OK: \"Aceptar\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"Has alcanzado el límite de descarga.\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"No es posible descargar porque no queda ninguna descarga.\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"Aceptar\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"Se requiere la aplicación Android o iOS para usar la función de descarga.\"\r\n },\r\n 'zh-cn': { //Simplified Chinese\r\n IMAGE_NOT_AVAILABLE: \"图片未上传或已被删除。\",\r\n ENTERPASSWORD: \"输入密码\",\r\n INPUTPASSWORD: \"请输入pin码/密码\",\r\n PASSWORD: \"密码\",\r\n INCORRECTPASSWORD: \"密码不正确\",\r\n REMAINIG_ATTEMPT: \"剩余可输入次数\",\r\n SUBMIT: \"提交\",\r\n CANCEL: \"取消\",\r\n MAX_TRY_EXCEEDED: \"You have exceeded the maximum number of attempts, Please retry after some time..!\",\r\n EXPIRY_DATE: \"浏览期间\",\r\n BTN_DOWNLOAD_VIDEO: \"下载\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"下载\",\r\n BTN_INSTALL_APP: \"安装\",\r\n APP_REQUIRED_INFO: `需要instax mini LiPlay应用程序(免费)才能下载。 \\n` +\r\n `如果安装了该应用程序,将自动启动并开始下载。 \\n` +\r\n `如果未安装该应用程序,会将您转到App Store或Google Play Store,您可以在其中下载该应用程序。`,\r\n APP_REQUIRED_INFO_CN: `需要instax mini LiPlay应用程序(免费)才能下载。 \\n` +\r\n `如果您已经安装了该应用程序,将自动启动并开始下载。\\n ` +\r\n `如果您尚未安装该应用程序,请点击“安装”按钮,进行下载。`,\r\n APP_REQUIRED_BTN_OK: \"确定\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"您已达到下载次数上限。\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"无法下载,因为没有更多剩余下载次数。\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"确定\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"使用下载功能需要Android或iOS应用程序。\"\r\n },\r\n 'zh-hk': { //Traditional Chinese\r\n IMAGE_NOT_AVAILABLE: \"圖片未上傳或已被刪除。\",\r\n ENTERPASSWORD: \"輸入密碼\",\r\n INPUTPASSWORD: \"請輸入 PIN 碼/密碼\",\r\n PASSWORD: \"密碼\",\r\n INCORRECTPASSWORD: \"密碼錯誤\",\r\n REMAINIG_ATTEMPT: \"剩餘的嘗試次數\",\r\n SUBMIT: \"提交\",\r\n CANCEL: \"取消\",\r\n MAX_TRY_EXCEEDED: \"You have exceeded the maximum number of attempts, Please retry after some time..!\",\r\n EXPIRY_DATE: \"瀏覽期間\",\r\n BTN_DOWNLOAD_VIDEO: \"下載\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"下載\",\r\n BTN_INSTALL_APP: \"安裝\",\r\n APP_REQUIRED_INFO: `需要安裝免費版 instax mini LiPlay 應用程式才能下載。\\n` +\r\n `如果安裝了應用程式,應用程式將自動啟動並開始下載。 \\n` +\r\n `如果未安裝應用程式,系統將會引導您到 App Store 或 Google Play 商店下載該應用程式。`,\r\n APP_REQUIRED_INFO_CN: `需要安裝免費版 instax mini LiPlay 應用程式才能下載。 \\n` +\r\n `如果已安裝應用程式,請按「下載」。\\n` +\r\n `如果未安裝應用程式,請按「安裝」。`,\r\n APP_REQUIRED_BTN_OK: \"確定\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"您已達到下載限制。\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"無法下載,因為沒有其他剩餘的檔案要下載。\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"確定\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"您需要 Android 或 iOS 應用程式才能使用下載功能。\"\r\n },\r\n 'zh-tw': { //Traditional Chinese\r\n IMAGE_NOT_AVAILABLE: \"圖片未上傳或已被刪除。\",\r\n ENTERPASSWORD: \"輸入密碼\",\r\n INPUTPASSWORD: \"請輸入 PIN 碼/密碼\",\r\n PASSWORD: \"密碼\",\r\n INCORRECTPASSWORD: \"密碼錯誤\",\r\n REMAINIG_ATTEMPT: \"剩餘的嘗試次數\",\r\n SUBMIT: \"提交\",\r\n CANCEL: \"取消\",\r\n MAX_TRY_EXCEEDED: \"You have exceeded the maximum number of attempts, Please retry after some time..!\",\r\n EXPIRY_DATE: \"瀏覽期間\",\r\n BTN_DOWNLOAD_VIDEO: \"下載\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"下載\",\r\n BTN_INSTALL_APP: \"安裝\",\r\n APP_REQUIRED_INFO: `需要安裝免費版 instax mini LiPlay 應用程式才能下載。\\n` +\r\n `如果安裝了應用程式,應用程式將自動啟動並開始下載。 \\n` +\r\n `如果未安裝應用程式,系統將會引導您到 App Store 或 Google Play 商店下載該應用程式。`,\r\n APP_REQUIRED_INFO_CN: `需要安裝免費版 instax mini LiPlay 應用程式才能下載。 \\n` +\r\n `如果已安裝應用程式,請按「下載」。\\n` +\r\n `如果未安裝應用程式,請按「安裝」。`,\r\n APP_REQUIRED_BTN_OK: \"確定\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"您已達到下載限制。\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"無法下載,因為沒有其他剩餘的檔案要下載。\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"確定\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"您需要 Android 或 iOS 應用程式才能使用下載功能。\"\r\n },\r\n\r\n ko: {\r\n IMAGE_NOT_AVAILABLE: \"이미지가 업로드되지 않았거나 삭제되었습니다.\",\r\n ENTERPASSWORD: \"Enter Password\",\r\n INPUTPASSWORD: \"Please input the pin/password \",\r\n PASSWORD: \"Password\",\r\n INCORRECTPASSWORD: \"Incorrect Password\",\r\n REMAINIG_ATTEMPT: \"Remaining Attempts\",\r\n SUBMIT: \"SUBMIT\",\r\n CANCEL: \"CANCEL\",\r\n MAX_TRY_EXCEEDED: \"You have exceeded the maximum number of attempts, Please retry after some time..!\",\r\n EXPIRY_DATE: \"검색 기간\",\r\n BTN_DOWNLOAD_VIDEO: \"다운로드\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"다운로드\",\r\n BTN_INSTALL_APP: \"설치\",\r\n APP_REQUIRED_INFO: `무료 instax mini LiPlay 앱이 있어야 다운로드 가능합니다. \\n` +\r\n `앱이 설치된 경우, 자동으로 앱이 시작되어 다운로드를 개시합니다. \\n` +\r\n `앱이 설치되지 않은 경우, 앱을 다운로드하실 수 있도록 App Store나 Google Play Store로 이동합니다.`,\r\n APP_REQUIRED_INFO_CN: `무료 instax mini LiPlay 앱이 있어야 다운로드 가능합니다. \\n` +\r\n `앱을 이미 설치한 경우 “다운로드”를 누르십시오. \\n` +\r\n `앱이 설치되지 않은 경우 “설치”를 누르십시오.`,\r\n APP_REQUIRED_BTN_OK: \"OK\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"다운로드 한도에 도달했습니다.\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"다운로드 한도에 도달해 더 이상 다운로드할 수 없습니다.\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"OK\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"Android 또는 iOS 앱이 있어야 다운로드 기능을 사용할 수 있습니다.\"\r\n },\r\n pt: {\r\n IMAGE_NOT_AVAILABLE: \"A imagem não foi carregada ou foi apagada.\",\r\n ENTERPASSWORD: \"Enter Password\",\r\n INPUTPASSWORD: \"Please input the pin/password \",\r\n PASSWORD: \"Password\",\r\n INCORRECTPASSWORD: \"Incorrect Password\",\r\n REMAINIG_ATTEMPT: \"Remaining Attempts\",\r\n SUBMIT: \"SUBMIT\",\r\n CANCEL: \"CANCEL\",\r\n MAX_TRY_EXCEEDED: \"You have exceeded the maximum number of attempts, Please retry after some time..!\",\r\n EXPIRY_DATE: \"Tempo de navegação\",\r\n BTN_DOWNLOAD_VIDEO: \"Download\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"Download\",\r\n BTN_INSTALL_APP: \"Instalar\",\r\n APP_REQUIRED_INFO: `É necessário ter o aplicativo gratuito instax mini LiPlay para baixar. \\n` +\r\n `Se o aplicativo estiver instalado, ele será iniciado automaticamente e o download começará. \\n` +\r\n `Se o aplicativo não estiver instalado, você será levado à Loja de Aplicativos ou à Loja do Google Play, onde poderá baixar o aplicativo.`,\r\n APP_REQUIRED_INFO_CN: `É necessário ter o aplicativo gratuito instax mini LiPlay para baixar. \\n ` +\r\n `Se o aplicativo já estiver instalado, pressione \"Download\". \\n` +\r\n `Se o aplicativo não estiver instalado, pressione \"Instalar\".`,\r\n APP_REQUIRED_BTN_OK: \"OK\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"Você atingiu o limite de downloads.\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"Não é possível baixar porque não há mais downloads disponíveis.\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"OK\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"O aplicativo para Android ou iOS é necessário para utilizar a função de download.\"\r\n },\r\n it: {\r\n IMAGE_NOT_AVAILABLE: \"L'immagine non è stata caricata o è stata eliminata\",\r\n ENTERPASSWORD: \"Inserisci la password\",\r\n INPUTPASSWORD: \"Si prega di inserire il pin/password\",\r\n PASSWORD: \"Password\",\r\n INCORRECTPASSWORD: \"Password errata\",\r\n REMAINIG_ATTEMPT: \"Tentativi rimanenti\",\r\n SUBMIT: \"INVIA\",\r\n CANCEL: \"ANNULLA\",\r\n MAX_TRY_EXCEEDED: \"Hai superato il numero massimo di tentativi, si prega di riprovare dopo un po'!\",\r\n EXPIRY_DATE: \"Periodo di navigazione\",\r\n BTN_DOWNLOAD_VIDEO: \"Scarica\",\r\n BTN_DOWNLOAD_VIDEO_CN: \"Scarica\",\r\n BTN_INSTALL_APP: \"Installazione\",\r\n APP_REQUIRED_INFO: `È necessario installare l'app gratuita instax mini LiPlay per il download. \\n` +\r\n `Se l'app è già installata, si avvierà automaticamente e inizierà il download. \\n` +\r\n `Se l'app non è installata, verrai indirizzato a App Store o Google Play Store, dove potrai scaricare l'app.`,\r\n APP_REQUIRED_INFO_CN: `È necessario installare l'app gratuita instax mini LiPlay per il download. \\n ` +\r\n `Se l'app è già installata, premi \"Download\". \\n` +\r\n `Se l'app non è installata, premi \"Installazione\".`,\r\n APP_REQUIRED_BTN_OK: \"OK\",\r\n TITLE_DOWNLOAD_EXCEEDED: \"Hai raggiunto il limite di download.\",\r\n SUBTITLE_DOWNLOAD_EXCEEDED: \"Impossibile effettuare il download poiché non sono rimasti altri download.\",\r\n BACK_BUTTON_TEXT_DOWNLOAD_EXCEEDED: \"OK\",\r\n WARN_MSG_DOWNLOAD_NOT_SUPPORTED: \"Per utilizzare la funzione di download è necessaria l'app per Android o iOS.\"\r\n }\r\n};\r\n\r\n\r\nexport default translationsObject;","import axios from \"axios\";\r\n/**\r\n * Local : \"http://192.167.0.83:90/\"\r\n\r\n * */\r\n\r\n/***Reading baseUrl from config.json\r\n * \r\n */\r\nexport default class APIHandler {\r\n\r\n static AxiosInstance;\r\n\r\n init() {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n axios.get('config.json').then((res) => {\r\n\r\n APIHandler.AxiosInstance = axios.create({\r\n baseURL: res.data.baseURL\r\n });\r\n resolve();\r\n });\r\n })\r\n }\r\n}\r\n\r\n\r\n","import React, { Component } from \"react\"\r\nimport { Modal, Button } from \"antd\"\r\nimport \"../css/ModalAppRequiredInfo.css\"\r\nimport chinaAppIcon from \"../assets/china_ic_apprequired.png\"\r\nimport globalAppIcon from \"../assets/global_ic_apprequired.png\"\r\nimport iconClose from \"../assets/icon_close.png\"\r\nvar Translate = require('react-redux-i18n').Translate;\r\n\r\nclass ModalAppRequiredInfo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n iconLiplayApp: globalAppIcon,\r\n appRequiredInfoMsg: \"\"\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n\r\n if (this.props.isChinaWebApp) {\r\n this.setState({\r\n iconLiplayApp: chinaAppIcon,\r\n appRequiredInfoMsg: \r\n })\r\n }\r\n else {\r\n this.setState({\r\n iconLiplayApp: globalAppIcon,\r\n appRequiredInfoMsg: \r\n })\r\n }\r\n }\r\n\r\n render() {\r\n const { isVisible, handleOk, handleCancel } = this.props;\r\n const { appRequiredInfoMsg, iconLiplayApp } = this.state;\r\n return (\r\n\r\n < div >\r\n \r\n \"\"\r\n
{appRequiredInfoMsg}
\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n \r\n }\r\n closable={false} /**for avoiding default close-btn */\r\n maskClosable={false}\r\n centered /** it makes the modal vertically center. */\r\n className=\"modal-app-required\"\r\n />\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default ModalAppRequiredInfo;","import React, { Component } from 'react';\r\nimport { Button } from 'antd';\r\nimport '../css/common.css'\r\nimport '../css/VideoDownloadExceededInfo.css'\r\nvar Translate = require('react-redux-i18n').Translate;\r\nvar imgIconFailed = require('./../assets/download_error.svg');\r\n\r\nclass VideoDownloadExceededInfo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n titleText: \"Title\",\r\n subtitleText: \"Subtitle\",\r\n dismissButtonText: \"Back\"\r\n }\r\n }\r\n\r\n componentWillReceiveProps() {\r\n this.setDownloadExceededTexts();\r\n }\r\n\r\n setDownloadExceededTexts() {\r\n this.setState({\r\n dismissButtonText: ,\r\n titleText: ,\r\n subtitleText: \r\n });\r\n }\r\n\r\n render() {\r\n const { titleText, subtitleText, dismissButtonText } = this.state\r\n const { isVisible, topValueOfDownloadButton, topValueOfCenterContent, dismissBtnStyle,\r\n handleBackBtn } = this.props\r\n\r\n return (\r\n
\r\n
\r\n \"\"\r\n \r\n

{titleText}

\r\n

{subtitleText}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\nexport default VideoDownloadExceededInfo;","import React, { Component } from 'react'\r\nimport { Button } from 'antd';\r\nimport { isAndroid, isIOS } from 'react-device-detect';\r\nimport '../css/qrcodedata.css';\r\nvar Translate = require('react-redux-i18n').Translate;\r\n\r\nconst styles = {\r\n gb: {\r\n downloadBtn: {\r\n borderColor: \"#857e6b\",\r\n borderRadius: \"6px\",\r\n backgroundColor: \"#f6f6f6\",\r\n color: \"#857e6b\",\r\n width: \"59.8%\",\r\n height: \"29pt\"\r\n }\r\n },\r\n cn: {\r\n downloadBtn: {\r\n borderColor: \"#857e6b\",\r\n borderRadius: \"6px\",\r\n backgroundColor: \"#f6f6f6\",\r\n color: \"#857e6b\",\r\n padding: \"2pt\",\r\n height: \"27pt\"\r\n },\r\n installBtn: {\r\n borderColor: \"#857e6b\",\r\n borderRadius: \"6px\",\r\n backgroundColor: \"#f6f6f6\",\r\n color: \"#857e6b\",\r\n padding: \"2pt\",\r\n height: \"27pt\"\r\n }\r\n }\r\n}\r\nconst CHINA_APK_DOWNLOAD_URL = \"https://www.fujifilm.com.cn/instax/apk/instax_mini_liplay_for_android.html\";\r\nconst CHINA_IOS_DOWNLOAD_URL = \"https://apps.apple.com/cn/app/instax-mini-liplay-for-china/id1460567773\";\r\nclass DownloadBtnComponent extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n\r\n handleOnClickInstall = () => {\r\n window.open(CHINA_APK_DOWNLOAD_URL, \"_blank\");\r\n }\r\n\r\n handleOnClickInstalliOS = () => {\r\n document.location = CHINA_IOS_DOWNLOAD_URL;\r\n }\r\n renderDownloadButtonDiv = () => {\r\n const {\r\n isVideoDownloadButtonVisible, isVideoButtonDisabled, isChinaConfig,\r\n handleDownloadBtnClick, refDownloadBtn } = this.props;\r\n if (isChinaConfig && isAndroid) {\r\n return
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n //for using custom uri scheme\r\n else if (isChinaConfig && isIOS) {\r\n return
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n //global\r\n else {\r\n return
\r\n \r\n
\r\n }\r\n\r\n }\r\n render() {\r\n return (
\r\n {this.renderDownloadButtonDiv()}\r\n
)\r\n }\r\n\r\n}\r\nexport default DownloadBtnComponent","import React from 'react'\r\nimport Layout from \"antd/lib/layout/layout\";\r\nconst { Header, Content } = Layout;\r\nvar Translate = require(\"react-redux-i18n\").Translate;\r\n\r\nfunction ServiceNotAvilable() {\r\n return (\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {\" \"}\r\n
\r\n
\r\n \r\n \r\n {navigator.language == \"ja\" ? (\r\n <>\r\n \r\n
\r\n \r\n \r\n Webページ\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n Currently, there is a problem with the sound print\r\n service.\r\n
\r\n As soon as it is restored, we will make an\r\n announcement through a push notification and update\r\n the information on\r\n \r\n {\" \"}\r\n our web site.\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ServiceNotAvilable","// ***********************************************************************\r\n// Assembly : FujiFilm.InstaxMini.UserWeb\r\n// Author : Pranav K\r\n// Created : 05-11-2018\r\n// Modified On : 14-03-2020\r\n// ***********************************************************************\r\n// \r\n// Copyright © 2018\r\n// \r\n// \r\n// ***********************************************************************\r\nimport React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport GlobalStrings from \"../network/Global\";\r\nimport LangStrings from \"../network/Lang\";\r\nimport APIHandler from '../network/AxiosInstance';\r\nimport { sha256 } from 'js-sha256';\r\n// eslint-disable-next-line\r\nimport '../css/qrcodedata.css';\r\nimport axios from 'axios';\r\nimport { Input, Alert, Form, Modal, Spin } from 'antd';\r\nimport { isIOS, isAndroid, browserName, browserVersion, fullBrowserVersion, isOpera, isChrome,isFirefox } from \"react-device-detect\";\r\nimport ModalAppRequiredInfo from '../components/ModalAppRequiredInfo';\r\nimport VideoDownloadExceededInfo from '../components/VideoDownloadExceededInfo';\r\nimport DownloadBtnComponent from '../components/DownloadBtnComponent';\r\nimport ServiceNotAvilable from './ServiceNotAvilable';\r\nvar iconWebPlayButtonNormal = require('./../assets/icon_web_button_normal.png');\r\nvar iconWebPlayButtonPressed = require('./../assets/icon_web_button_pressed.png')\r\nvar iconWeblogoNormal = require('./../assets/icon_web_logo_normal.png');\r\nvar iconWebBaseImage = require('./../assets/icon_web_base.svg');\r\nvar imgNoImageInfo = require('./../assets/noImage.jpg');\r\nvar imgNoImageInfoIos = require('./../assets/noImage_iOS.jpg');\r\n\r\nconst FormItem = Form.Item;\r\nvar Translate = require('react-redux-i18n').Translate;\r\n\r\nconst normalImageDivstyle = {\r\n msTransform: \"rotate(90deg)\",\r\n WebkitTransform: \" rotate(90deg)\",\r\n transform: \"rotate(90deg)\"\r\n}\r\n\r\nconst iosImageDescStyle = {\r\n paddingTop: \"17%\",\r\n paddingRight: \"7%\",\r\n paddingLeft: \"10%\",\r\n flex: 1, justifyContent: \"center\",\r\n display: \"flex\"\r\n}\r\n\r\nconst normalImageDescStyle = {\r\n paddingRight: \"7%\",\r\n paddingLeft: \"10%\",\r\n paddingTop: \"17%\",\r\n flex: 1,\r\n justifyContent: \"center\",\r\n display: \"flex\"\r\n}\r\n\r\nconst VIDEO_DOWNLOAD = {\r\n STATUS_FLAG: {\r\n DISABLED: 100,\r\n ENABLED: 101,\r\n DEFAULT_OR_NOT_DEFINED: 0\r\n }\r\n}\r\n\r\nconst navigatorUserAgent = navigator.userAgent;\r\nconst isSamsungBrowser = navigatorUserAgent.includes(\"SamsungBrowser\"); //Checking for Samsung browser\r\n\r\nclass QrCodeData extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.downloadBtnRef = React.createRef();\r\n this.state = {\r\n Uid: this.props.match.params.uid,\r\n imageUrl: null,\r\n audioUrl: \"null\",\r\n dataExpiryDate: \"\",\r\n loading: true,\r\n showSoundbtn: \"\",\r\n showNoImageInfo: 'none',\r\n showMainContainer: \"none\",\r\n showMainContainerLoading: \"\",\r\n showPlaying: \"none\",\r\n playFromPosition: 0,\r\n visible: false,\r\n imageExist: true,\r\n web_play_btn_icon: iconWebPlayButtonNormal,\r\n web_icon_logo_instax: iconWeblogoNormal,\r\n loading_passwordImage: false,\r\n modalErrorMessage: \"\",\r\n modalLoginFailureCount: 0,\r\n showRemainingAttempts: \"none\",\r\n showWebPlayBtnIcon: \"\",\r\n soundCheckiPasswordProtect: false,\r\n verifiedIp: false,\r\n soundIconPressedState: false,\r\n isVideoDownloadButtonVisible: \"none\",\r\n isVideoButtonDisabled: false,\r\n isVideoDownloadCountExceeded: false,\r\n isVideoDownloadExceedWarningVisible: false,\r\n isVideoDownloadSupportedPlatform: true,\r\n isAppRequiredModalVisible: false,\r\n topValueDownloadButtonOverlay: 0,\r\n topValueCenterContentOverlay: 0,\r\n downloadExceededDismissBtnStyle: null,\r\n firebaseDynamicLink: null,\r\n isChinaConfig: false,\r\n isProductionBuild: true,\r\n isServiceDown: false\r\n }\r\n\r\n }\r\n\r\n componentWillMount() {\r\n axios.get('config.json').then((res) => {\r\n var countrywiseRestrictionChina = res.data.countrywiseRestrictionInChina;\r\n var countrywiseRestrictionGlobal = res.data.countrywiseRestrictionInGlobal;\r\n var soundPasswordProtect = res.data.soundCheckiPasswordProtect;\r\n var firebaseDynamicLinkForVideoDownload = res.data.firebaseDynamicLink;\r\n var isChinaBuild = res.data.isChinaBuild;\r\n var isProductionBuild = res.data.isProductionBuild;\r\n // eslint-disable-next-line\r\n if (soundPasswordProtect == \"true\") {\r\n soundPasswordProtect = true\r\n } else {\r\n soundPasswordProtect = false\r\n }\r\n this.setState({\r\n firebaseDynamicLink: firebaseDynamicLinkForVideoDownload,\r\n isChinaConfig: isChinaBuild,\r\n soundCheckiPasswordProtect: soundPasswordProtect,\r\n isProductionBuild : isProductionBuild\r\n })\r\n // eslint-disable-next-line\r\n if (countrywiseRestrictionChina == \"true\") {\r\n //China Deploy\r\n this.handleCountrywiseRestrictionForChina();\r\n }\r\n // eslint-disable-next-line\r\n else if (countrywiseRestrictionGlobal == \"true\") {\r\n //Global Deploy\r\n this.handleCountryRestrictionForGlobal();\r\n }\r\n else {\r\n this.setState({ verifiedIp: true });\r\n this.handleAppStart();\r\n }\r\n });\r\n\r\n }\r\n\r\n componentDidMount = () => {\r\n // update the dimensions when browser resize event triggers.\r\n if(!this.state.isServiceDown){\r\n window.addEventListener('resize', this.updateDimensions);\r\n }\r\n }\r\n\r\n updateDimensions = () => {\r\n if(!this.state.isServiceDown){\r\n this.setVideoDownloadExceededInfoStyle()\r\n } \r\n };\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('resize', this.updateDimensions);\r\n }\r\n\r\n /**\r\n * Countrywise Restriction Part of China\r\n */\r\n handleCountrywiseRestrictionForChina() {\r\n\r\n APIHandler.AxiosInstance.post(GlobalStrings.WEB_API.WEB_CHECK_IPORIGIN_COUNTRY)\r\n .then(response => {\r\n console.log(response);\r\n if (response.data.status === 0) {\r\n this.setState({ verifiedIp: true });\r\n this.handleAppStart();\r\n }\r\n\r\n else {\r\n this.setState({ verifiedIp: false })\r\n this.props.history.push(GlobalStrings.URL_STRING.ACCESS_DENIED);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Handle Countrywise(China-country) restriction For Global\r\n */\r\n handleCountryRestrictionForGlobal() {\r\n APIHandler.AxiosInstance.post(GlobalStrings.WEB_API.WEB_CHECK_IPFOR_GLOBALSITES)\r\n .then(response => {\r\n\r\n console.log(response);\r\n if (response.data.status === 0) {\r\n this.setState({ verifiedIp: true });\r\n this.handleAppStart();\r\n }\r\n else {\r\n this.setState({ verifiedIp: false })\r\n this.props.history.push(GlobalStrings.URL_STRING.ACCESS_DENIED);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Start Call After Verification\r\n * Check If Passwordpromt Needed\r\n */\r\n handleAppStart() {\r\n const { soundCheckiPasswordProtect } = this.state;\r\n\r\n if (soundCheckiPasswordProtect) {\r\n this.setState({\r\n showMainContainerLoading: \"none\",\r\n visible: true\r\n });\r\n } else {\r\n this.handleGetQrCodeData(GlobalStrings.CONSTANTS.DEFAULT_QRCODE_PASSWORD);\r\n }\r\n this.handleLocalStorageExpiry();\r\n }\r\n\r\n handleLocalStorageExpiry = () => {\r\n //check if past expiration date\r\n if (localStorage.getItem(GlobalStrings.CONSTANTS.LOGIN_FAILURE_COUNT) != null) {\r\n var value = localStorage.getItem(GlobalStrings.CONSTANTS.LOGIN_FAILURE_COUNT).split(\";\");\r\n\r\n if (new Date(value[1]) < new Date()) {\r\n localStorage.removeItem(GlobalStrings.CONSTANTS.LOGIN_FAILURE_COUNT);\r\n }\r\n }\r\n }\r\n\r\n handleSetFailureCount = (count) => {\r\n var values = [];\r\n var oneday = new Date();\r\n oneday.setMinutes(oneday.getMinutes() + 1); //one min from now\r\n values.push(count);\r\n values.push(oneday);\r\n try {\r\n localStorage.setItem(GlobalStrings.CONSTANTS.LOGIN_FAILURE_COUNT, values.join(\";\"));\r\n }\r\n catch (e) { }\r\n\r\n }\r\n\r\n /**For mapping blob url to global CDN Url */\r\n mapToBlobCdnUrl = (blobUrl) => {\r\n return (\r\n GlobalStrings.BLOB_CDN_URL.BASE_PATH +\r\n blobUrl.split(GlobalStrings.BLOB_CDN_URL.CONTAINER)[1]\r\n );\r\n };\r\n\r\n handleGetQrCodeData = (password) => {\r\n //Checking login failure count.\r\n this.handleLocalStorageExpiry();\r\n var loginFailureCount = localStorage.getItem(GlobalStrings.CONSTANTS.LOGIN_FAILURE_COUNT);\r\n if (loginFailureCount == null) {\r\n this.handleSetFailureCount('0');\r\n }\r\n var failCount = localStorage.getItem(GlobalStrings.CONSTANTS.LOGIN_FAILURE_COUNT).split(\";\");\r\n var countInt = parseInt(failCount[0], 10) + 1;\r\n if (countInt > 5) {\r\n this.setState({\r\n modalErrorMessage: ,\r\n showRemainingAttempts: \"none\"\r\n });\r\n return;\r\n }\r\n\r\n //Password hashing using sha256\r\n var hash = sha256.create();\r\n hash.update(password);\r\n var hashedPassword = hash.hex();\r\n\r\n let config = {\r\n headers: {\r\n Authorization: 'Bearer ' + GlobalStrings.CONSTANTS.DEFAULT_TOKEN_QRCODE,\r\n }\r\n }\r\n this.setState({\r\n showMainContainerLoading: \"\",\r\n loading_passwordImage: true,\r\n modalErrorMessage: \"\",\r\n showRemainingAttempts: \"none\"\r\n });\r\n\r\n //Handling API response.\r\n APIHandler.AxiosInstance.post(GlobalStrings.WEB_API.WEB_GET_DATAFROM_URL,\r\n { uId: this.state.Uid, password: hashedPassword }, config)\r\n .then(response => {\r\n console.log(response)\r\n this.setState({ loading_passwordImage: false })\r\n if (response.data.data) {\r\n var dateTime = response.data.data.expirationDate;\r\n var date = dateTime.split(\"T\")[0];\r\n // var cdnImageUrl = \"https://api.blob.instax.com/instaxstoragecontainer\"\r\n // + response.data.data.imageUrl.split(\"instaxstoragecontainer\")[1];\r\n // var cdnAudioUrl = \"https://api.blob.instax.com/instaxstoragecontainer\"\r\n // + response.data.data.audioUrl.split(\"instaxstoragecontainer\")[1];\r\n var cdnImageUrl = (!this.state.isChinaConfig && this.state.isProductionBuild )? this.mapToBlobCdnUrl(response.data.data.imageUrl) : response.data.data.imageUrl\r\n var cdnAudioUrl = (!this.state.isChinaConfig && this.state.isProductionBuild )? this.mapToBlobCdnUrl(response.data.data.audioUrl) : response.data.data.audioUrl\r\n this.checkVideoDownloadAllowed(response.data.data.videoDownloadFlag);\r\n this.setState({\r\n imageUrl: cdnImageUrl,\r\n audioUrl: cdnAudioUrl,\r\n dataExpiryDate: date,\r\n loading: false,\r\n imageExist: true,\r\n showSoundbtn: '',\r\n isVideoDownloadCountExceeded: response.data.data.isVideoDownloadCountExceeded\r\n });\r\n\r\n this.handleCancel();\r\n this.handleSetFailureCount('0');\r\n }\r\n\r\n else if (response.data.status === GlobalStrings.ERROR_CODE.INCORRECT_PASSWORD) {\r\n const form = this.formRef.props.form;\r\n form.setFieldsValue({ 'Password': \"\" });\r\n\r\n var failureCount = localStorage.getItem(GlobalStrings.CONSTANTS.LOGIN_FAILURE_COUNT).split(\";\");\r\n var count = parseInt(failureCount[0], 10) + 1;\r\n\r\n this.handleSetFailureCount(count);\r\n\r\n if (count >= 5) {\r\n this.setState({\r\n modalErrorMessage: ,\r\n showRemainingAttempts: \"none\"\r\n });\r\n return;\r\n } else {\r\n this.setState({\r\n modalErrorMessage: ,\r\n modalLoginFailureCount: count,\r\n showRemainingAttempts: \"\"\r\n });\r\n }\r\n }\r\n else if(response.data.status === GlobalStrings.ERROR_CODE.SERVICE_NOT_AVAILABLE){\r\n this.setState(currentState => ({\r\n ...currentState,\r\n isServiceDown: true\r\n }));\r\n }\r\n else {\r\n this.setState({\r\n showSoundbtn: 'none',\r\n showNoImageInfo: ' ',\r\n loading: false,\r\n imageExist: false,\r\n visible: false,\r\n imageUrl: imgNoImageInfo\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * This for checking video download permission is granted or not.\r\n */\r\n checkVideoDownloadAllowed = (videoDownloadFlag) => {\r\n\r\n //check the video status flag for enabling or disabling the download button.\r\n // eslint-disable-next-line\r\n if (videoDownloadFlag == VIDEO_DOWNLOAD.STATUS_FLAG.ENABLED) {\r\n this.setState({ isVideoDownloadButtonVisible: \"\" })\r\n } else {\r\n this.setState({ isVideoDownloadButtonVisible: \"none\" })\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Image Loaded Call-back from img tag.\r\n */\r\n handleImageLoaded = () => {\r\n this.setState({\r\n showMainContainerLoading: \"none\",\r\n showMainContainer: \"\"\r\n })\r\n\r\n //For getting dimesions after loading the image.\r\n setTimeout(() => {\r\n this.setVideoDownloadExceededInfoStyle();\r\n }, 500);\r\n }\r\n\r\n /**\r\n * For Playing Audio\r\n */\r\n playSound = () => {\r\n\r\n var sound = document.getElementById(\"id_audio\");\r\n \r\n if (this.state.soundIconPressedState) {\r\n\r\n /**Play Sound */\r\n sound.play();\r\n\r\n /**Sound started playing */\r\n sound.onplaying = () => {\r\n this.setState({\r\n showPlaying: \"\",\r\n showWebPlayBtnIcon: \"none\",\r\n soundIconPressedState: false\r\n });\r\n };\r\n \r\n /**Sound stopped playing */\r\n sound.onended = () => {\r\n this.handleSoundFinishedPlaying();\r\n }\r\n }\r\n }\r\n\r\n handleOntouchStartPlayBtn = () => {\r\n this.setState({\r\n web_play_btn_icon: iconWebPlayButtonPressed,\r\n web_icon_logo_instax: require('./../assets/icon_web_logo_pressed.png'),\r\n soundIconPressedState: true\r\n });\r\n //Allow only 5 Seconds for Pressed State\r\n setTimeout(this.handleResetSound, 5000)\r\n }\r\n\r\n /**\r\n * Reset Sound \r\n */\r\n handleResetSound = () => {\r\n\r\n var sound = document.getElementById(\"id_audio\");\r\n if (sound.duration <= 0 || sound.paused) {\r\n this.setState({\r\n showPlaying: \"none\",\r\n showWebPlayBtnIcon: \"\",\r\n soundIconPressedState: false,\r\n web_play_btn_icon: iconWebPlayButtonNormal,\r\n web_icon_logo_instax: require('./../assets/icon_web_logo_normal.png')\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Sound Finished Callback -react-sound\r\n */\r\n handleSoundFinishedPlaying = () => {\r\n\r\n this.setState({\r\n showPlaying: \"none\",\r\n soundIconPressedState: false,\r\n showWebPlayBtnIcon: \"\",\r\n web_play_btn_icon: iconWebPlayButtonNormal,\r\n web_icon_logo_instax: require('./../assets/icon_web_logo_normal.png')\r\n });\r\n }\r\n\r\n /***\r\n * Used to render Image Division\r\n * Styling used in Chrome(Ver.>88) and Opera uses-\r\n * same styling as iOS devices. (for image exif info.)\r\n */\r\n renderImageDivision = () => {\r\n const { showNoImageInfo, imageExist, web_play_btn_icon,\r\n showSoundbtn, showWebPlayBtnIcon, dataExpiryDate } = this.state;\r\n var setImageUrl = imgNoImageInfoIos;\r\n \r\n if (isIOS || isOpera || isFirefox || (isSamsungBrowser && fullBrowserVersion >= 13) || (isChrome && fullBrowserVersion > 88) ) {\r\n console.log(\"iOS Device or greater than Chrome 88 or Opera\");\r\n if (imageExist) {\r\n setImageUrl = this.state.imageUrl;\r\n }\r\n return
\r\n
\r\n \"\"\r\n \"\"\r\n\r\n this.handleOntouchStartPlayBtn()}\r\n onTouchEnd={()=>this.playSound()}\r\n onTouchMove={event => event.preventDefault()}\r\n onMouseDown={()=>this.handleOntouchStartPlayBtn()}\r\n onMouseUp={()=>this.playSound()}\r\n > \r\n \"\"\r\n \r\n \r\n
\r\n
\r\n
\r\n INFORMATION: \r\n
\r\n
\r\n : {dataExpiryDate}\r\n
\r\n
\r\n
\r\n }\r\n else if(isSamsungBrowser && fullBrowserVersion <13 ){\r\n return
\r\n
\r\n \"\" event.preventDefault()} />\r\n \"\"\r\n\r\n this.handleOntouchStartPlayBtn()}\r\n onTouchEnd={()=>this.playSound()}\r\n onTouchMove={event => event.preventDefault()}\r\n onMouseDown={()=>this.handleOntouchStartPlayBtn()}\r\n onMouseUp={()=>this.playSound()}\r\n >\r\n event.preventDefault()}\r\n draggable=\"false\" className=\"class_webplay_btnicon\" src={web_play_btn_icon} alt=\"\" />\r\n \r\n \r\n
\r\n
\r\n
\r\n INFORMATION: \r\n
\r\n
\r\n : {dataExpiryDate}\r\n
\r\n
\r\n
\r\n }\r\n else{\r\n return
\r\n
\r\n \"\" event.preventDefault()} />\r\n \"\"\r\n\r\n this.handleOntouchStartPlayBtn()}\r\n onTouchEnd={()=>this.playSound()}\r\n onTouchMove={event => event.preventDefault()}\r\n onMouseDown={()=>this.handleOntouchStartPlayBtn()}\r\n onMouseUp={()=>this.playSound()}\r\n >\r\n event.preventDefault()}\r\n draggable=\"false\" className=\"class_webplay_btnicon\" src={web_play_btn_icon} alt=\"\" />\r\n \r\n \r\n
\r\n
\r\n
\r\n INFORMATION: \r\n
\r\n
\r\n : {dataExpiryDate}\r\n
\r\n
\r\n
\r\n }\r\n }\r\n\r\n /**\r\n * Sound Cheki Password Protection Operations.\r\n */\r\n showModal = () => {\r\n this.setState({ visible: true });\r\n }\r\n\r\n handleCancel = () => {\r\n this.setState({ visible: false });\r\n }\r\n\r\n handleCreate = () => {\r\n const form = this.formRef.props.form;\r\n\r\n form.validateFields((err, values) => {\r\n if (err) {\r\n return;\r\n }\r\n this.handleGetQrCodeData(values.Password);\r\n\r\n });\r\n }\r\n\r\n saveFormRef = (formRef) => {\r\n this.formRef = formRef;\r\n }\r\n\r\n /**\r\n * Redirect to app if exist\r\n * or goto playstore / app store using firebase dynamic link.\r\n */\r\n handleOkAppRequiredModal = () => {\r\n\r\n const { Uid, imageUrl, audioUrl, isVideoDownloadCountExceeded, firebaseDynamicLink, isChinaConfig } = this.state;\r\n //on clicking ok button , disable the download button and dismiss the modal\r\n this.setState({\r\n isVideoButtonDisabled: true,\r\n isAppRequiredModalVisible: false\r\n })\r\n //if download count exceeded then show warning and exit\r\n if (isVideoDownloadCountExceeded) {\r\n return false;\r\n }\r\n\r\n //custom uri scheme for China\r\n if (isChinaConfig) {\r\n if (isAndroid) {\r\n //android browser compatible code (including UC) \r\n var CustomUriParams = \"intent://https://instax.com?uid=\" + Uid + \"&imageUrl=\" + encodeURIComponent(window.btoa(imageUrl)) + \"&audioUrl=\" + encodeURIComponent(window.btoa(audioUrl));\r\n window.location.replace(CustomUriParams + \"#Intent;package=com.fujifilm.instaxminiLiPlayChina;scheme=com.fujifilm.instaxminiliplaychina;end\", \"_blank\");\r\n }\r\n else if (isIOS) {\r\n CustomUriParams = \"https://instax.com?uid=\" + Uid + \"&imageUrl=\" + encodeURIComponent(window.btoa(imageUrl)) + \"&audioUrl=\" + encodeURIComponent(window.btoa(audioUrl));\r\n document.location = firebaseDynamicLink + CustomUriParams;\r\n }\r\n return false;\r\n }\r\n\r\n //Uncomment for enabling dev dynamic link => for iOS\r\n // if (isIOS) {\r\n // var devFirebaseDynamicLink = \"https://instaxminiplaydev.page.link/?efr=1&ibi=com.trenser.Instax-Mini-Play&isi=1440150749&amv=9&apn=com.fujifilm.instaxminiLiPlayChina&link=\";\r\n // var dynamicLinkParams = \"https://instax.com?uid%3D\" + Uid + \"%26imageUrl%3D\" + encodeURIComponent(window.btoa(imageUrl)) + \"%26audioUrl%3D\" + encodeURIComponent(window.btoa(audioUrl));\r\n // window.open(devFirebaseDynamicLink + dynamicLinkParams, \"_blank\");\r\n // return false;\r\n // }\r\n //Uncomment when using production build, Dynamic Link in production is same for both iOS/andriod.\r\n var dynamicLinkParams = \"https://instax.com?uid%3D\" + Uid + \"%26imageUrl%3D\" + encodeURIComponent(window.btoa(imageUrl)) + \"%26audioUrl%3D\" + encodeURIComponent(window.btoa(audioUrl));\r\n window.open(firebaseDynamicLink + dynamicLinkParams, \"_self\");\r\n\r\n //Prod global => https://instaxminiliplay.page.link/?efr=1&ibi=com.fujifilm.instaxminiLiPlay&isi=1460567208&amv=10&apn=com.fujifilm.instaxminiLiPlay&link=\r\n //Prod china => https://instaxminiliplaychina.page.link/?efr=1&ibi=com.fujifilm.instaxminiLiPlayChina&isi=1460567773&amv=10&apn=com.fujifilm.instaxminiLiPlayChina&link= \r\n }\r\n\r\n /**\r\n * If download Limit Exceeded then show warning msg.\r\n * If is Andriod/iOS show the App Required Modal. \r\n */\r\n handleDownloadBtnClick = () => {\r\n\r\n //show warning message if other than iOS/Andriod.\r\n if (isIOS || isAndroid) {\r\n //show exceeded modal if download count exceeded. \r\n if (this.state.isVideoDownloadCountExceeded) {\r\n this.setState({\r\n isVideoDownloadExceedWarningVisible: this.state.isVideoDownloadCountExceeded,\r\n isVideoButtonDisabled: true\r\n })\r\n return false;\r\n }\r\n //check if it is iOS or android platform.\r\n //then show the app required modal.\r\n\r\n this.setState({\r\n isVideoDownloadSupportedPlatform: true,\r\n isAppRequiredModalVisible: true\r\n });\r\n\r\n } else {\r\n this.setState({\r\n isVideoDownloadSupportedPlatform: false\r\n })\r\n return false;\r\n }\r\n }\r\n\r\n /**\r\n * Dismiss the app required modal.\r\n */\r\n handleCancelAppRequiredModal = () => {\r\n this.setState({ isAppRequiredModalVisible: false })\r\n }\r\n\r\n /**\r\n * Used to invoke password Modal.\r\n */\r\n renderPasswordPopUp = () => {\r\n if (this.state.visible) {\r\n return \r\n }\r\n }\r\n\r\n /**\r\n * It is used to render App Required Modal,\r\n * When Clicking the Download Button \r\n */\r\n renderAppRequiredModal = () => {\r\n const { isAppRequiredModalVisible, isChinaConfig } = this.state;\r\n if (isAppRequiredModalVisible) {\r\n return \r\n }\r\n }\r\n\r\n /**\r\n * Used to render video dowmload info.\r\n */\r\n renderVideoDownloadExceededInfo = () => {\r\n const {\r\n isVideoDownloadExceedWarningVisible, topValueCenterContentOverlay,\r\n topValueDownloadButtonOverlay, downloadExceededDismissBtnStyle\r\n } = this.state;\r\n\r\n return \r\n }\r\n\r\n /**\r\n * Get Overlay layout - Position\r\n * For child video download component..\r\n */\r\n setVideoDownloadExceededInfoStyle() {\r\n var bodyRect = document.body.getBoundingClientRect();\r\n var downloadBtnRect = ReactDOM.findDOMNode(this.downloadBtnRef.current).getBoundingClientRect();\r\n var offset = downloadBtnRect.top - bodyRect.top;\r\n\r\n const percentUptoOverlayCenterContent = (54) / 100;\r\n var topValueForCenterContent = offset * percentUptoOverlayCenterContent - downloadBtnRect.height;\r\n var dismissBtnWidth = downloadBtnRect.width;\r\n if (this.state.isChinaConfig && isAndroid) {\r\n // there is two buttons and spacing in the case of china : download & install\r\n dismissBtnWidth = downloadBtnRect.width * 2.1\r\n }\r\n const downloadExceededDismissStyle = {\r\n borderColor: \"#857e6b\",\r\n borderRadius: \"8px\",\r\n backgroundColor: \"white\",\r\n color: \"#857e6b\",\r\n padding: \"0 39.6%\",\r\n height: downloadBtnRect.height,\r\n width: dismissBtnWidth\r\n }\r\n\r\n this.setState({\r\n topValueDownloadButtonOverlay: offset,\r\n topValueCenterContentOverlay: topValueForCenterContent,\r\n downloadExceededDismissBtnStyle: downloadExceededDismissStyle\r\n });\r\n }\r\n\r\n /**\r\n * handle back button of the download exceeded info\r\n */\r\n handleBackBtnDownloadExceededInfo = () => {\r\n this.setState({ isVideoDownloadExceedWarningVisible: false });\r\n }\r\n\r\n /**\r\n * main rendering method.\r\n */\r\n render() {\r\n const { showMainContainer,\r\n showMainContainerLoading,\r\n web_icon_logo_instax,\r\n isVideoDownloadButtonVisible, isVideoButtonDisabled,\r\n isVideoDownloadSupportedPlatform, isChinaConfig\r\n } = this.state;\r\n\r\n return (\r\n
\r\n {this.renderVideoDownloadExceededInfo()}\r\n {\r\n this.state.isServiceDown ? :\r\n
\r\n
\r\n \"\" event.preventDefault()} src={web_icon_logo_instax} />\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {this.renderImageDivision()}\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
}\r\n type=\"warning\"\r\n closable\r\n showIcon\r\n />\r\n
\r\n {this.renderAppRequiredModal()}\r\n {this.renderPasswordPopUp()}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Password Prompt Modal\r\n */\r\nconst PasswordPopUp = Form.create()(\r\n class extends Component {\r\n render() {\r\n const { visible, onCancel, onCreate, form, loading_passwordImage,\r\n showRemainingAttempts,\r\n modalErrorMessage, modalLoginFailureCount } = this.props;\r\n const { getFieldDecorator } = form;\r\n return (\r\n
\r\n }\r\n okText={}\r\n cancelText={}\r\n onCancel={onCancel}\r\n onOk={onCreate}\r\n style={{ maxWidth: \"350px\" }}\r\n maskClosable={false}\r\n className=\"modal-password-prompt\"\r\n >\r\n
\r\n }>\r\n {getFieldDecorator('Password', {\r\n rules: [{ required: true, message: }],\r\n })(\r\n \r\n )}\r\n \r\n
\r\n {modalErrorMessage}\r\n \r\n
\r\n
\r\n \r\n .. {5 - modalLoginFailureCount}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n }\r\n);\r\n\r\n\r\nexport default QrCodeData;\r\n\r\n","// ***********************************************************************\r\n// Assembly : FujiFilm.InstaxMini.UserWeb\r\n// Author : Pranav K\r\n// Created : 30-11-2018\r\n// ***********************************************************************\r\n// \r\n// Copyright © 2018\r\n// \r\n// \r\n// ***********************************************************************\r\nimport React, { Component } from 'react';\r\nimport Layout from 'antd/lib/layout/layout';\r\nimport GlobalStrings from \"../network/Global\";\r\nimport axios from 'axios';\r\nimport APIHandler from '../network/AxiosInstance';\r\nconst { Header } = Layout;\r\n\r\n/**\r\n * Sample HomePage\r\n * \r\n */\r\nclass Home extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n cardwidth: 800,\r\n verifiedIp: false,\r\n currentPage: window.location.href.split(\"://\")[1]\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n\r\n //Check whether country restriction active or not.\r\n axios.get('config.json').then((res) => {\r\n var countrywiseRestrictionChina = res.data.countrywiseRestrictionInChina;\r\n var countrywiseRestrictionGlobal = res.data.countrywiseRestrictionInGlobal;\r\n // eslint-disable-next-line\r\n if (countrywiseRestrictionChina == \"true\") {\r\n this.handleCountrywiseRestriction();\r\n }\r\n // eslint-disable-next-line \r\n else if (countrywiseRestrictionGlobal == \"true\") {\r\n this.handleCountryRestrictionForGlobal();\r\n }\r\n else {\r\n this.setState({ verifiedIp: true })\r\n }\r\n });\r\n\r\n }\r\n\r\n /**\r\n * IP Restriction Part\r\n */\r\n handleCountrywiseRestriction() {\r\n\r\n APIHandler.AxiosInstance.post(GlobalStrings.WEB_API.WEB_CHECK_IPORIGIN_COUNTRY)\r\n .then(response => {\r\n console.log(response);\r\n\r\n if (response.data.status === 0) {\r\n this.setState({ verifiedIp: true })\r\n }\r\n\r\n else {\r\n this.setState({ verifiedIp: false })\r\n this.props.history.push(GlobalStrings.URL_STRING.ACCESS_DENIED);\r\n }\r\n });\r\n }\r\n\r\n handleCountryRestrictionForGlobal() {\r\n APIHandler.AxiosInstance.post(GlobalStrings.WEB_API.WEB_CHECK_IPFOR_GLOBALSITES)\r\n .then(response => {\r\n\r\n console.log(response);\r\n if (response.data.status === 0) {\r\n this.setState({ verifiedIp: true });\r\n }\r\n else {\r\n this.setState({ verifiedIp: false })\r\n this.props.history.push(GlobalStrings.URL_STRING.ACCESS_DENIED);\r\n }\r\n });\r\n }\r\n\r\n\r\n render() {\r\n const { verifiedIp, currentPage } = this.state;\r\n if (verifiedIp) {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{currentPage}

\r\n
\r\n
\r\n
)\r\n } else {\r\n return (
)\r\n }\r\n }\r\n}\r\nexport default Home;","// ***********************************************************************\r\n// Assembly : FujiFilm.InstaxMini.UserWeb\r\n// Author : Pranav K\r\n// Created : 30-11-2018\r\n// ***********************************************************************\r\n// \r\n// Copyright © 2018\r\n// \r\n// \r\n// ***********************************************************************\r\nimport React, { Component } from 'react';\r\nimport Layout from 'antd/lib/layout/layout';\r\nconst { Header, Content } = Layout;\r\n\r\nclass UnAuthorizedAcesss extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n loading: true,\r\n cardwidth: 800,\r\n contentPadding: '0px 150px'\r\n }\r\n console.log(this.props)\r\n console.log(this.props.match.params.uid)\r\n }\r\n\r\n componentDidMount() {\r\n this.screenWidthConfig();\r\n }\r\n /**\r\n * Adjust card width according to screen width.\r\n */\r\n screenWidthConfig = () => {\r\n const breakpoints = {\r\n desktop: 1040,\r\n tablet: 840,\r\n mobile: 540\r\n };\r\n if (window.innerWidth > breakpoints.mobile) {\r\n this.setState({ cardwidth: window.innerWidth - 50 })\r\n this.setState({ contentPadding: '0px 20px' })\r\n\r\n } else if (window.innerWidth <= breakpoints.mobile) {\r\n this.setState({ cardwidth: window.innerWidth - 50 })\r\n this.setState({ contentPadding: '0px 20px' })\r\n }\r\n }\r\n render() {\r\n const { contentPadding } = this.state;\r\n return (\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Access Denied..!!\r\n
\r\n \r\n You are not authorized to view this page..!\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n\r\n \r\n \r\n\r\n )\r\n }\r\n\r\n}\r\nexport default UnAuthorizedAcesss;","import React, { Component } from 'react';\r\nimport { Route, Switch, withRouter } from 'react-router-dom';\r\nimport QRCodeData from './layout/QRCodeData';\r\nimport APIHandler from './network/AxiosInstance';\r\nimport GlobalStrings from \"./network/Global\";\r\nimport Home from './layout/Home';\r\nimport UnAuthorizedAcesss from './layout/UnAuthorizedAccess';\r\n\r\n/**\r\n * Class App Routes to All Components.\r\n */\r\nclass App extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = { initialiseApiHandler: false }\r\n\r\n }\r\n\r\n componentDidMount() {\r\n new APIHandler().init().then(() => {\r\n\r\n this.setState({ initialiseApiHandler: true });\r\n })\r\n }\r\n\r\n render() {\r\n if (this.state.initialiseApiHandler) {\r\n\r\n return (\r\n\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n );\r\n } else {\r\n return (\r\n
\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default withRouter(App);\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\r\n );\r\n });\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n\r\n // Execute callback\r\n if (config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","const i18n = (state, action) => {\r\n switch (action.type) {\r\n case 'i18n': return state;\r\n default: return state\r\n }\r\n}\r\n\r\nexport default i18n;","// ***********************************************************************\r\n// Assembly : FujiFilm.InstaxMini.AdminUI\r\n// Author : Pranav K\r\n// Created : 23-10-2018\r\n//\r\n// Last Modified By : Pranav K\r\n// Last Modified On : 23-10-2018\r\n// ***********************************************************************\r\n// \r\n// Copyright © 2018\r\n// \r\n// \r\n// ***********************************************************************\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './css/index.css';\r\n// import './../node_modules/bootstrap/dist/css/bootstrap.min.css';\r\n// import '../node_modules/font-awesome/css/font-awesome.min.css';\r\nimport App from './App';\r\nimport i18nStrings from './network/Lang.js'\r\nimport './../node_modules/antd/lib/modal/style/css';\r\nimport './../node_modules/antd/lib/form/style/css';\r\nimport './../node_modules/antd/lib/input/style/css';\r\nimport './../node_modules/antd/lib/spin/style/css';\r\nimport './../node_modules/antd/lib/layout/style/css';\r\nimport './../node_modules/antd/lib/alert/style/css';\r\nimport { BrowserRouter } from \"react-router-dom\"\r\nimport * as serviceWorker from './serviceWorker';\r\nimport { createStore, combineReducers, applyMiddleware } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { loadTranslations, setLocale, syncTranslationWithStore, i18nReducer } from 'react-redux-i18n';\r\nimport reducers from './reducers/i18n';\r\n//const langArray = ['en', 'ja', 'fr', 'de', 'es', 'ko', 'pt', 'zh-CN', 'zh-TW', 'zh-HK'];\r\n\r\nconst translationsObject = i18nStrings;\r\n\r\nconst store = createStore(\r\n combineReducers({\r\n ...reducers,\r\n i18n: i18nReducer\r\n }),\r\n applyMiddleware(thunk)\r\n);\r\nsyncTranslationWithStore(store)\r\nstore.dispatch(loadTranslations(translationsObject));\r\n\r\nconst language = (navigator.languages && navigator.languages[0]) ||\r\n navigator.language || navigator.userLanguage;\r\nstore.dispatch(setLocale(language.toLowerCase()));\r\n\r\n\r\nReactDOM.render(\r\n\r\n \r\n , document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: http://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/global_ic_apprequired.24cc060c.png\";"],"sourceRoot":""}