{"version":3,"sources":["webpack:///./src/utils/commonHooks.scss","webpack:///./src/assets/images/loading.svg","webpack:///./src/components/pageLoading/PageLoading.js","webpack:///./src/components/pageLoading/index.js","webpack:///./src/constants/queryKeyConstants.js","webpack:///./src/api.js","webpack:///./node_modules/moment/locale sync zh|en","webpack:///./src/utils/commonHooks.js","webpack:///./src/utils/toast.js","webpack:///./src/utils/commonParameters.js","webpack:///./src/utils/commonFunction.js","webpack:///./src/utils/commonVariable.js","webpack:///./src/constants/eventConstants.js","webpack:///./src/constants/fileConstants.js","webpack:///./src/actions.js","webpack:///./src/components/antdErrorAlert/antdErrorAlert.scss","webpack:///./src/components/antdErrorAlert/AntdErrorAlert.js","webpack:///./src/constants/apiReturnCode.js","webpack:///./src/components/toast/RenderedToast.js","webpack:///./src/actionTypes.js","webpack:///./src/theme/colors.js","webpack:///./src/assets/images/loading-small.svg","webpack:///./src/constants/apiMessagesConstants.js","webpack:///./src/constants/emailConstant.js","webpack:///./src/routes/app/appRoute.scss","webpack:///./src/hooks/useQueries/useSystemQueries/useAppVersion.js","webpack:///./src/components/errorHandler/ErrorHandler.js","webpack:///./src/utils/getMillisecond.js","webpack:///./src/constants/durationConstants.js","webpack:///./src/i18n.js","webpack:///./src/pages/app.js","webpack:///./src/routes/private/PrivateRoute.js","webpack:///./src/routes/private/PrivateRouteContainer.js","webpack:///./src/routes/private/index.js","webpack:///./src/routes/redirect/RedirectRoute.js","webpack:///./src/routes/redirect/RedirectRouteContainer.js","webpack:///./src/routes/redirect/index.js","webpack:///./src/routes/app/AppRoute.js","webpack:///./src/actions/systemActions.js","webpack:///./src/routes/app/AppRouteContainer.js","webpack:///./src/routes/app/index.js","webpack:///./src/queryClient.js","webpack:///./src/theme/components/index.js","webpack:///./src/theme/components/button.js","webpack:///./src/theme/components/link.js","webpack:///./src/theme/components/popover.js","webpack:///./src/theme/breakpoints.js","webpack:///./src/theme/index.js","webpack:///./src/theme/styles.js","webpack:///./src/theme/textStyles.js","webpack:///./src/index.js","webpack:///./src/constants/receiverConstant.js","webpack:///./src/reducers/auth.js","webpack:///./src/reducers/routing.js","webpack:///./src/reducers/login.js","webpack:///./src/reducers/envSetting.js","webpack:///./src/reducers/event.js","webpack:///./src/reducers/deviceCode.js","webpack:///./src/reducers/boothDeviceCode.js","webpack:///./src/reducers/profile.js","webpack:///./src/reducers/emailTemplate.js","webpack:///./src/reducers/emailList.js","webpack:///./src/reducers/emailRecord.js","webpack:///./src/reducers/smsDraft.js","webpack:///./src/reducers/smsRecord.js","webpack:///./src/reducers/parameter.js","webpack:///./src/reducers/point.js","webpack:///./src/reducers/statistic.js","webpack:///./src/reducers/file.js","webpack:///./src/reducers/healthForm.js","webpack:///./src/reducers/systemSetting.js","webpack:///./src/reducers/commonAction.js","webpack:///./src/reducers/accountFeature.js","webpack:///./src/reducers/indexPage.js","webpack:///./src/reducers/isSavedNotYet.js","webpack:///./src/reducers/badge.js","webpack:///./src/reducers/modalVisible.js","webpack:///./src/reducers/clientOrder.js","webpack:///./src/reducers/index.js","webpack:///./src/store.js","webpack:///./src/hooks/useClearAllStates/useClearAllStates.js","webpack:///./src/hooks/useApiResponseHandler/useApiResponseHandler.js"],"names":["module","exports","PageLoading","backgroundAlpha","isLoadingText","loadingText","maskAll","style","top","left","right","bottom","zIndex","background","position","display","justifyContent","alignItems","textAlign","alt","src","loadingSmallSvg","margin","padding","letterSpacing","color","PARTICIPANTS_QUERY_KEY","PARTICIPANT_QUERY_KEY","PARTICIPANT_COLUMNS_QUERY_KEY","EXPORT_PARTICIPANT_LIST_QUERY_KEY","GET_PARTICIPANT_TEMPLATE_QUERY_KEY","GET_PARTICIPANT_LUCKYDRAW_TEMPLATE_QUERY_KEY","EVENT_QUERY_KEY","EVENTS_QUERY_KEY","EVENT_LOGS_QUERY_KEY","EVENTS_LOGS_QUERY_KEY","EMAIL_TEMPLATES_QUERY_KEY","EMAILS_QUERY_KEY","EMAIL_TEMPLATE_SETTING_QUERY_KEY","SMSS_QUERY_KEY","TICKET_QUERY_KEY","TICKET_TYPES_QUERY_KEY","TICKET_TYPE_STATISTICS_QUERY_KEY","GUEST_TICKET_FOLDER_QUERY_KEY","GUEST_TICKET_QUERY_KEY","SESSIONS_QUERY_KEY","PAYMENT_SETTINGS_QUERY_KEY","MAILSERVER_SETTING_QUERY_KEY","FAMILY_FORMS_QUERY_KEY","GUEST_SIGN_UP_QUERY_KEY","GUEST_SIGN_UP_FORM_QUERY_KEY","GUEST_SIGN_UP_RESULT_QUERY_KEY","BADGE_QUERY_KEY","SYSTEM_ANNOUNCEMENTS_QUERY_KEY","POINT_LOGS_QUERY_KEY","POINT_QUERY_KEY","CHECK_IN_QUOTA_QUERY_KEY","CHECK_IN_QUOTA_LOGS_QUERY_KEY","APP_VERSION_QUERY_KEY","SURVEY_FORMS_QUERY_KEY","PREVIEW_GUEST_SURVEY_FORM_QUERY_KEY","GUEST_SURVEY_FORM_QUERY_KEY","GUEST_SURVEY_FORM_PROJECT_CODE_FROM_UUID","BOOTH_EVENT_QUERY_KEY","POST_PREPARE_CHECKIN_QR_CODE_IMAGE_KEY","POST_PREPARE_INDEX_PAGE_QR_CODE_IMAGE_KEY","baseUrl","getEnvironmentBaseURL","request","axios","create","baseURL","validateStatus","status","interceptors","use","config","requestConfig","store","getState","login","userAuth","headers","Authorization","response","data","Promise","resolve","error","reject","getCheckVersion","v","method","url","postRegisterAuthenticated","token","postRegister","account","password","name","company","cellPhone","taxIDNumber","industry","language","checkRepeatAccount","checkLogin","postLogoutOtherDevices","postLogout","checkTokenExpired","reSendRegisterAuthenticated","sendForgotPasswordEmail","resetNewPassword","getProfile","updateProfile","getIsDoneFirstTime","createEvent","timeZone","defaultTimeZone","DEFAULT_EVENT_TIME_ZONE","value","getEventList","getEvent","projectCode","deleteEvent","updateEvent","patchEvent","getEventLog","skip","length","getEventsLogs","getDeviceCodeList","getDisuseDeviceCode","deviceSeq","postCreateDeviceCode","deleteDeviceCode","getBoothDeviceCodeList","getDisuseBoothDeviceCode","postCreateBoothDeviceCode","deleteBoothDeviceCode","getParticipants","isAllticket","page","size","sort","isAscending","includeGlobal","includeLocal","booleanParseToString","boolean","invalid","R","valid","local","0","userId","toString","1","2","ticketUuid","3","ticketName","4","price","5","reviewStatus","6","paymentStatus","7","8","9","source","10","reviewPeriod","11","paymentPeriod","12","includeEmailSeq","13","excludeEmailSeq","16","includeSessionUuid","17","excludeSessionUuid","window","btoa","encodeURIComponent","JSON","stringify","global","getParticipant","uuid","getParticipantTemplate","responseType","getParticipantLuckyDrawTemplate","postImportUserListWithCustomMode","canDelete","canUpdate","isCheck","params","isDeleteEnabled","isUpdateEnabled","getParticipantColumns","methods","putUserListColumns","patchUserListColumns","postParticipants","updateParticipant","deleteSingleRowInUserList","proejctCode","checkParticipantIdDuplicated","update","current","undefined","validateParticipantDataPattern","receiverType","getExportFilteredParticipants","localFilter","keywords","postPrepareCheckinQrImage","postPrepareIndexPageQrImage","getCheckinQRImageDownloadLogs","putPrepareQRImageLastDownload","seq","getEmailTemplates","postEmailTemplate","html","json","emailTitle","deleteEmailTemplate","patchEmailTemplate","templateId","getEmailTemplateSetting","updateEmailTemplateSetting","getMailServerSetting","postMailServerSetting","testMailServerSetting","putMailServerSetting","patchMailServerSetting","getEmailList","postEmailList","getEmailDraft","draftSeq","deleteEmailDraft","patchEmailDraft","porjectCode","postCopyEmailList","getEmailPreview","getSingleEmailRecord","getExportedSingleEmailRecord","getSmsList","getSmsDraft","postSmsDraft","patchSmsDraft","deleteSmsDraft","postCopySmsDraft","getSingleSmsRecord","getSmsPreview","postContentToGetRealCost","getPoint","getPointLog","getDetailPointLog","getExportPointLogs","getParticularAttendeeNumber","postFileUpload","File","getSurveyFormList","postSurveyForm","getSurveyForm","putSurveyForm","patchSurveyFormBeginAt","patchSurveyFormEndAt","patchSurveyFormActive","patchSurveyFormMustCheck","patchSurveyFormPrizeEnabled","deleteSurveyForm","getGuestSurveyForm","userCode","postGuestSurveyForm","version","postGuestObtainSurveyFormGift","getSurveyFormProjectCodeFromUuid","surveyFormUuid","getExportSurveyFormResult","getHealthFormSetting","methodl","patchHealthFormSetting","getHealthFormTemplates","getIndexPageEdit","lang","getIndexPagePreview","postIndexPage","patchIndexPageEdit","getGuestIndexPage","getBadges","getBadgeSetting","postBadgeSetting","postCopyBadge","deleteBadgeSetting","putBadgeSetting","patchBadgeSetting","postTicketType","getTicketTypes","getTicketType","deleteTicketType","putTicketType","patchTicketTypeSelling","isSelling","getTIcketStatistics","getTicket","patchTicketReviewStatus","patchSessionInTicketReviewStatus","suuid","getGuestTicketFolder","orderNo","getGuestTicket","getSessions","postSessions","putSession","deleteSession","getPaymentSettings","postPaymentSettings","putPaymentSettings","getGuestSignUp","getGuestSignUpForm","postGuestSignUp","getGuestSignUpResult","getSystemAnnouncements","postSystemAnnouncementsRead","getAttendeeCheckinSituation","postExportStatisticCheckinReport","postSingleCustomizeChart","tokenId","projectId","getCustomizeChartList","deleteSingleCustomizeChart","getFamilyDayForm","postFamilyForm","putFamilyForm","postValidateForm","getCheckInQuota","getCheckInLogs","getCheckInLogDetail","getBoothEvent","postRedeemPrize","prizeUuid","prizeToken","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","inputFormItem","label","required","initialValue","type","formContent","className","placeholder","maxLength","disabled","Item","labelAlign","getFieldDecorator","rules","message","i18next","t","validator","rule","callback","cx","styles","autoComplete","tagFormItem","maxTagTextLength","forEach","element","mode","tag","Option","mentionsFormItem","rows","optionInitialValue","getValueFromEvent","prefix","values","option","useServerFailedAlert","onCloseStatement","useState","isServerFailed","setIsServerFailed","serverErrorAlert","setServerErrorAlert","useEffect","onCloseFunction","useAPIResponseStatementEXP","apiIsLoading","apiMessage","apiFailed","statements","200","204","400","401","403","404","500","commonStatement","errorStatement","pass","useTranslation","toast","useToast","history","useHistory","dispatch","useDispatch","useClearAllStates","clearAllStates","getErrorToast","title","duration","isClosable","render","onClose","handle403ErrorMessage","msg","ApiMessagesConstants","UNAUTHORIZED","POINTS_CANNOT_BE_NEGATIVE_403","content","PLAN_EXPIRED","actions","isActive","handle404ErrorMessage","PROJECT_NOT_FOUND","push","ADMIN_NOT_FOUND","returnCode","API_RETURN_CODE","maintenance","systemTimestamp","errorNotification","admin","tokenExpired","notFound","parseBlobData","result","useGetUserLanguage","setLanguage","locale","setLocale","userLanguage","parse","localStorage","getItem","browserLanguage","navigator","localeTw","localeEn","checkVariablesAreNormalAndSetUseState","variableArray","state","setState","isNormal","every","variable","usePathnameToken","keyword","lastWord","setToken","location","pathname","keyWordIndex","indexOf","lastWordIndex","slicedPathname","slice","search","split","keyValueString","keyValueArray","key","some","pair","useIsDevelopment","isDevelopment","setIsDevelopment","process","includes","useSaveNotYet","isSavedNotYet","setIsSavedNotYet","prompt","setPrompt","isSaveNotYetRef","useRef","addEventListener","preventDefault","returnValue","when","useSettingColorPicker","currentColor","setCurrentColor","handleChange","hexCode","alpha","Math","round","rgb","a","hex","useBeforeUnloadHint","isSavedNotYetRef","useActionAfterCreatingEmailDraft","eventKey","editedKey","setEditedKey","isSelectedTemplate","setIsSelectedTemplate","usePagination","initialPageSize","initialPresentPage","presentPage","setPresentPage","pageSize","setPageSize","getPresentPageContent","index","useAuthorizedFeature","feature","isAuthorized","setIsAuthorized","isLoading","setIsLoading","userRoles","useSelector","accountFeature","profile","isLoadingGetProfile","getProfileMessage","getProfileFailed","unAuthorizedDisplay","m","h","i18nKey","to","hash","setToastConfig","onCloseComplete","noDuplicate","isReplaced","toastRef","rest","ref","close","popupToast","description","lowerStatus","toLowerCase","ACTION_INFO_DURATION","ACTION_DONE_DURATION","ACTION_WARNING_DURATION","ACTION_ERROR_DURATION","popup403UnauthorizationToast","getMillisecond","inputMaximunLength","headerDrawerWidth","doubleLargeDeviceWidth","largeDeviceWidth","medium1024DeviceWidth","mediumDeviceWidth","medium745DeviceWidth","smallDeviceWidth","idOrderByOfList","nameOrderByOfList","emailOrderByOfList","phoneOrderByOfList","NUMBER_OF_DEFAULT_PARTICIPANT_LIST_COLUMNS","NUMBER_OF_MAXIMUM_PARTICIPANT_LIST_COLUMNS","initialTutorialActiveKey","HEADER_HEIGHT_LARGE","antdWarningAlertAbsoluteTop","shortTextQuestion","singleChoiceQuestion","multipleChoicesQuestion","ratingQuestion","OTHER_CHOICE_VALUE","OTHER_CHOICE_ID","EN_US","PHONE_DEVICE_WIDTH","indexPageMenuTypes","eventInfo","surveyForm","externalUri","booth","systemPresentVersion","timezoneList","getBaseURL","infix","devUrl","stageUrl","liveUrl","origin","getAppUrl","getOnSiteAppUrl","getUserLanguage","systemLanguage","checkPassword","checkPasswordEnglish","checkPasswordNumber","i","charCodeAt","checkValidEmailFormat","emailValue","atCharacterCount","pointCharacterCount","atCharacterPoistion","emailValueToString","charCode","checkValidCellPhoneFormat","phoneValue","regexPattern","internationalRegexPattern","isPatternTestPass","test","isInternationalPatternTestPass","checkObjectLength","globalState","initializeUnlayerEditor","unlayer","tagData","editor","createEditor","displayMode","tools","form","enabled","timer","video","features","stockImages","safeHtml","mergeTags","mergeTagsKeyAndValue","emailTitleMergeTagsKeyAndValue","exportBlobFile","fileName","fileNameExtension","blob","Blob","URL","createObjectURL","linkElement","document","createElement","href","setAttribute","body","appendChild","click","removeChild","getNowTimeAndTransferFormat","nowTime","Date","moment","format","timeFormatYMDHMZ","getIsStringEllipsis","offsetWidth","scrollWidth","sortSurveyFormChoicesQuestionIncludedOther","b","Number","getSortedResult","locales","localeCompare","transformServerWebImageToBase64","imageUrl","onload","get","then","res","reader","FileReader","readAsDataURL","onloadend","base64URI","onerror","catch","getUploadedImageLink","imageLink","filename","target","attachments","formData","FormData","fileObject","files","append","API","FileAPIMessages","FILE_SIZE_GREATER_THAN_100000_BYTES","getLongestValueIndex","array","lengthArray","max","generateQRCodeResource","typeNumber","errorCorrectionLevel","cellSize","createType","qr","qrcodeGenerator","addData","make","qrResource","createDataURL","createSvgTag","scalable","createImgTag","blobData","onLoad","onError","JSON_TYPE","readAsText","localStoargePersistRoot","breakpointOfEmailAndEmailSettingInput","formItemColSpan","timeFormatYMDHM","timeFormatYMDHMS","roleType","default","annual","userRoleFeature","sendSMS","downloadQRImage","healthyForm","indexPage","badge","anonymousSurveyForm","mailServer","PLANS","Free","Basic","Advanced","Pro","MODULE_TYPE","project","participant","participantColumn","email","sms","session","ticketType","ticket","MODULE_ACTION_TYPE","patch","delete","getSignUpUrl","getCustomSignUpUrl","TERMS_OF_USE_AND_PRIVACY_POLICY_URL","setIsOnline","isOnline","actionTypes","setWindowInnerWidth","width","getIsDoneFirstTimeAction","getIsDoneFirstTImePending","getIsDoneFirstTimeFulfiled","getIsDoneFirstTimeFailure","setIsDoneFirstTime","isDone","postTutorialsActiveKey","setIsShowPriorSettingBlock","setIsOpenedSmsEditInstructionPanel","isOpened","setIsHideRightBottomHint","isHidden","setIsHiddenEmailTemplateHint","setIsHiddenHealthFormHint","setIsHiddenTutorialTabHint","setIsEmailFormatChecked","isChecked","setIsCellPhoneFormatChecked","setIsVisitFirstTime","isFirstTime","setIsNotBadgeLabelMachineRentInformationShown","initializeAllStates","initializeStates","setUserLanguage","setUserAuthenticated","setUserRoles","roles","setIsLoggedIn","isLoggedIn","logout","switchEvent","setIsSurveyFormEditSavedNotYet","toggle","setIsIndexPageEditSavedNotYet","setIsBadgeEditSavedNotYet","setSystemTimestamp","timestamp","postRegisterAuthenticatedFailure","reSendRegisterAuthenticatedFailure","postRegisterFailure","checkRepeatAccountFailure","checkLoginFailure","sendForgotPasswordEmailFailure","resetNewPasswordFailure","getDeviceCodeListAction","getDeviceCodeListPending","getDeviceCodeListFulfilled","getDeviceCodeListFailed","getDisuseDeviceCodeFailure","postCreateDeviceCodeFailure","deleteDeviceCodeFailure","getBoothDeviceCodeListAction","getBoothDeviceCodeListPending","getBoothDeviceCodeListFulfilled","getBoothDeviceCodeListFailed","getDisuseBoothDeviceCodeFailure","postCreateBoothDeviceCodeFailure","deleteBoothDeviceCodeFailure","getProfileAction","getProfilePending","getProfileFulfilled","getProfileFailure","updateProfileAction","updateProfilePending","updateProfileFulfilled","updateProfileFailure","getEmailTemplatesAction","getEmailTemplatesPending","formatResponse","dataWithAdjustedJson","template","templateData","getEmailTemplatesFulfilled","getEmailTemplatesFailure","postEmailTemplateAction","postEmailTemplatePending","postEmailTemplateFulfilled","postEmailTemplateFailure","deleteEmailTemplateAction","deleteEmailTemplatePending","deleteEmailTemplateFulfilled","deleteEmailTemplateFailure","patchEmailTemplateAction","patchEmailTemplatePending","patchEmailTemplateFulfilled","patchEmailTemplateFailure","getEmailListAction","getEmailListPending","getEmailListFulfilled","getEmailListFailure","getEmailDraftAction","getEmailDraftPending","getEmailDraftFulfilled","getEmailDraftFailure","postEmailListAction","sender","sendAt","uuids","senderEmail","DEFAULT_SENDER_EMAIL","replyTo","bcc","note","RECEIVER_TYPE","none","EMAIL_TYPE","sketch","postEmailListPending","postEmailListFulfilled","postEmailListFailure","deleteEmailListAction","deleteEmailList","deleteEmailListPending","deleteEmailListFulfilled","deleteEmailListFailure","patchEmailListAction","patchEmailList","patchEmailListPending","patchEmailListFulfilled","patchEmailListFailure","postCopyEmailListAction","postCopyEmailListPending","postCopyEmailListFulfilled","postCopyEmailListFailure","getParticularAttendeeNumberAction","getParticularAttendeeNumberPending","getParticularAttendeeNumberFulfilled","getParticularAttendeeNumberFailure","getEmailPreviewAction","getEmailPreviewPending","getEmailPreviewFulfilled","getEmailPreviewFailure","getSingleEmailRecordAction","getSingleEmailRecordPending","getSingleEmailRecordFulfilled","getSingleEmailRecordFailure","getSmsListAction","getSmsListPending","getSmsListFulfilled","getSmsListFailure","getSmsDraftAction","getSmsDraftPending","getSmsDraftFulfilled","getSmsDraftFailure","postSmsDraftAction","postSmsDraftPending","postSmsDraftFulfilled","postSmsDraftFailure","patchSmsDraftAction","patchSmsDraftPending","patchSmsDraftFulfilled","patchSmsDraftFailure","deleteSmsDraftAction","deleteSmsDraftPending","deleteSmsDraftFulfilled","deleteSmsDraftFailure","postCopySmsDraftAction","postCopySmsDraftPending","postCopySmsDraftFulfilled","postCopySmsDraftFailure","getSingleSmsRecordAction","getSingleSmsRecordPending","getSingleSmsRecordFulfilled","getSingleSmsRecordFailure","getSmsPreviewAction","getSmsPreviewPending","getSmsPreviewFulfilled","getSmsPreviewFaiure","getSmsPreviewFailure","getHealthFormTemplatesFailure","getHelathFormSetting","getHealthFormSettingFailure","patchHealthFormSettingFulfilled","patchHealthFormSettingFailure","setCheckInQuota","setTotalPoint","postContentToGetRealCostFulfilled","postContentToGetRealCostFailure","getIndexPageEditFailure","postIndexPageFulfilled","postIndexPageFailure","patchIndexPageEditFulfilled","patchIndexPageEditFailure","preview","getGuestIndexPageFailure","getIndexPagePreviewFailure","getAttendeeCheckinSituationAction","getAttendeeCheckinSituationPending","getAttendeeCheckinSituationFulfilled","getAttendeeCheckinSituationFailure","postExportStatisticCheckinReportAction","postExportStatisticCheckinReportPending","postExportStatisticCheckinReportFulfilled","postExportStatisticCheckinReportFailure","AntdErrorAlert","errorMessage","i18n","fixed","closable","banner","alert","afterClose","setCode","codeReminder","multiple","success","common","unauthorized","planExpired","exceedPlanParticipantMaximum","exceedPlanStartupCodeMaximum","pointsNotEnough","loginFailure","invalidToken","event","canNotCancelToPublishBecauseSold","canNotCloseSignUpBecauseSold","canNotDeleteEventBecausePublished","prefixConflict","notIncludedDefaultColumns","userIdIsDuplicated","importTicketTypeNotFound","exceedTicketTypeMaximum","columnsAndParticipantsAreNotConsistency","columnIdIsDuplicated","columnsOutOfRange","needToSameColumnsWhenIsSignUpActive","eachLangSameColumnsAmount","signUp","ticketIsNotPermitted","eventIsNotActive","signUpFormIsNotActive","ticketIsNotActive","ticketisNotSoldPeriod","ticketIsSoldOut","noChooseAnyTicketTypes","unableToBuySession","chooseSessionAmountNotAllowed","sessionIsFull","qrImage","receiverKeysAreNull","receiverKeysAreDuplicated","receiverKeysAreNotValid","indexPageNotFound","notFoundReceiver","sentAlready","invalidBcc","isExist","isNotActiveYet","participantNotFound","invalidParticipant","isNotActiveWthinTime","invalidUserCode","isNotOpenCode","sortIdIsRepeat","nameIsRepeat","sessionHaveBeenSold","paymentSetting","paymentSettingIsExist","paymentNotSetting","isNotWithinTime","isObtained","versionIsOutdated","guest","userCodeIsNull","userCodeUnauthenticated","mailServerSetting","mailServerSettingIsExist","mailServerSettingNotExist","familyDayForm","familyDayFormIsExist","familyDayFormNotExist","redeemPrize","prizeNotExist","prizeTokenNotExist","prizeRedeemed","RenderedToast","iconSize","handleClose","icon","backgroundColor","CheckCircle","w","Info","Warning","p","bg","pos","borderRadius","direction","pl","pr","as","fontSize","fontWeight","pt","onClick","border","bgColor","SET_WINDOW_INNER_WIDTH","SET_USER_AUTHENTICATED","SET_USER_ROLES","SET_IS_LOGIN","SET_IS_LOGGED_IN","LOGOUT","SET_IS_ONLINE","SET_IS_SURVEY_FORM_EDIT_SAVED_NOT_YET","SET_IS_INDEX_PAGE_EDIT_SAVED_NOT_YET","SET_IS_BADGE_EDIT_SAVED_NOT_YET","SWITCH_EVENT","SET_IS_SHOW_PRIOR_SETTING_BLOCK","SET_LIST_NOTICE_SHOW","SET_IS_OPENED_SMS_EDIT_INSTRUCTION_PANEL","SET_IS_EMAIL_FORMAT_CHECKED","SET_IS_CELL_PHONE_FORMAT_CHECKED","SET_IS_HIDDEN_RIGHT_BOTTOM_HINT","SET_IS_HIDDEN_EMAIL_TEMPLATE_HINT","SET_IS_HIDDEN_HEALTH_FORM_HINT","SET_IS_HIDDEN_TUTORIAL_TAB_HINT","SET_IS_VISIT_FIRST_TIME","SET_IS_NOT_BADGE_LABEL_MACHINE_RENT_INFORMATION_SHOWN","INITIALIZE_ALL_STATES","INITIALIZE_STATES_FULFILLED","SET_USER_LANGUAGE","SET_SYSTEM_TIMESTAMP","SET_IS_MAINTENANCE","POST_TUTORIALS_ACTIVE_KEY","IS_DONE_FIRST_TIME","GET_IS_DONE_FIRST_TIME_PENDING","GET_IS_DONE_FIRST_TIME_FULFILLED","GET_IS_DONE_FIRST_TIME_FAILURE","SET_CREATING_EVENT_MODAL_VISIBLE","POST_REGISTER_AUTHENTICATED_PENDING","POST_REGISTER_AUTHENTICATED_FULFILLED","POST_REGISTER_AUTHENTICATED_FAILURE","RESEND_REGISTER_AUTHENTICATED_PENDING","RESEND_REGISTER_AUTHENTICATED_FULFILLED","RESEND_REGISTER_AUTHENTICATED_FAILURE","POST_REGISTER_PENDING","POST_REGISTER_FULFILLED","POST_REGISTER_FAILURE","CHECK_REPEAT_ACCOUNT_PENDING","CHECK_REPEAT_ACCOUNT_FULFILLED","CHECK_REPEAT_ACCOUNT_FAILURE","CHECK_LOGIN_PENDING","CHECK_LOGIN_FULFILLED","CHECK_LOGIN_FAILURE","CHECK_TOKEN_EXPIRED_PENDING","CHECK_TOKEN_EXPIRED_FULFILLED","CHECK_TOKEN_EXPIRED_FAILURE","SEND_FORGOT_PASSWORD_EMAIL_PENDING","SEND_FORGOT_PASSWORD_EMAIL_FULFILLED","SEND_FORGOT_PASSWORD_EMAIL_FAILURE","RESET_NEW_PASSWORD_PENDING","RESET_NEW_PASSWORD_FULFILLED","RESET_NEW_PASSWORD_FAILURE","GET_DISUSE_DEVICE_CODE_PENDING","GET_DISUSE_DEVICE_CODE_FULFILLED","GET_DISUSE_DEVICE_CODE_FAILURE","GET_DEVICE_CODE_LIST_PENDING","GET_DEVICE_CODE_LIST_FULFILLED","GET_DEVICE_CODE_LIST_FAILURE","POST_CREATE_DEVICE_CODE_PENDING","POST_CREATE_DEVICE_CODE_FULFILLED","POST_CREATE_DEVICE_CODE_FAILURE","DELETE_DEVICE_CODE_PENDING","DELETE_DEVICE_CODE_FULFILLED","DELETE_DEVICE_CODE_FAILURE","GET_DISUSE_BOOTH_DEVICE_CODE_PENDING","GET_DISUSE_BOOTH_DEVICE_CODE_FULFILLED","GET_DISUSE_BOOTH_DEVICE_CODE_FAILURE","GET_BOOTH_DEVICE_CODE_LIST_PENDING","GET_BOOTH_DEVICE_CODE_LIST_FULFILLED","GET_BOOTH_DEVICE_CODE_LIST_FAILURE","POST_CREATE_BOOTH_DEVICE_CODE_PENDING","POST_CREATE_BOOTH_DEVICE_CODE_FULFILLED","POST_CREATE_BOOTH_DEVICE_CODE_FAILURE","DELETE_BOOTH_DEVICE_CODE_PENDING","DELETE_BOOTH_DEVICE_CODE_FULFILLED","DELETE_BOOTH_DEVICE_CODE_FAILURE","GET_PROFILE_PENDING","GET_PROFILE_FULFILLED","GET_PROFILE_FAILURE","UPDATE_PROFILE_PENDING","UPDATE_PROFILE_FULFILLED","UPDATE_PROFILE_FAILURE","GET_EMAIL_TEMPLATES_PENDING","GET_EMAIL_TEMPLATES_FULFILLED","GET_EMAIL_TEMPLATES_FAILURE","POST_EMAIL_TEMPLATE_PENDING","POST_EMAIL_TEMPLATE_FULFILLED","POST_EMAIL_TEMPLATE_FAILURE","DELETE_EMAIL_TEMPLATE_PENDING","DELETE_EMAIL_TEMPLATE_FULFILLED","DELETE_EMAIL_TEMPLATE_FAILURE","PATCH_EMAIL_TEMPLATE_PENDING","PATCH_EMAIL_TEMPLATE_FULFILLED","PATCH_EMAIL_TEMPLATE_FAILURE","GET_EMAIL_LIST_PENDING","GET_EMAIL_LIST_FULFILLED","GET_EMAIL_LIST_FAILURE","GET_EMAIL_DRAFT_PEDNING","GET_EMAIL_DRAFT_FULFILLED","GET_EMAIL_DRAFT_FAILURE","POST_EMAIL_LIST_PENDING","POST_EMAIL_LIST_FULFILLED","POST_EMAIL_LIST_FAILURE","DELETE_EMAIL_LIST_PENDING","DELETE_EMAIL_LIST_FULFILLED","DELETE_EMAIL_LIST_FAILURE","PATCH_EMAIL_LIST_PENDING","PATCH_EMAIL_LIST_FULFILLED","PATCH_EMAIL_LIST_FAILURE","POST_COPY_EMAIL_LIST_PENDING","POST_COPY_EMAIL_LIST_FULFILLED","POST_COPY_EMAIL_LIST_FAILURE","GET_PARTICULAR_ATTENDEE_NUMBER_PENDING","GET_PARTICULAR_ATTENDEE_NUMBER_FULFILLED","GET_PARTICULAR_ATTENDEE_NUMBER_FAILURE","GET_EMAIL_PREVIEW_PENDING","GET_EMAIL_PREVIEW_FULFILLED","GET_EMAIL_PREVIEW_FAILURE","GET_SINGLE_EMAIL_RECORD_PENDING","GET_SINGLE_EMAIL_RECORD_FULFILLED","GET_SINGLE_EMAIL_RECORD_FAILURE","GET_SMS_LIST_PENDING","GET_SMS_LIST_FULFILLED","GET_SMS_LIST_FAILURE","GET_SMS_DRAFT_PENDING","GET_SMS_DRAFT_FULFILLED","GET_SMS_DRAFT_FAILURE","POST_SMS_DRAFT_PENDING","POST_SMS_DRAFT_FULFILLED","POST_SMS_DRAFT_FAILURE","POST_COPY_SMS_DRAFT_PENDING","POST_COPY_SMS_DRAFT_FULFILLED","POST_COPY_SMS_DRAFT_FAILURE","DELETE_SMS_DRAFT_PEDNING","DELETE_SMS_DRAFT_FULFILLED","DELETE_SMS_DRAFT_FAILURE","PATCH_SMS_DRAFT_PENDING","PATCH_SMS_DRAFT_FULFILLED","PATCH_SMS_DRAFT_FAILURE","GET_SINGLE_SMS_RECORD_PENDING","GET_SINGLE_SMS_RECORD_FULFILLED","GET_SINGLE_SMS_RECORD_FAILURE","GET_SMS_PREVIEW_PENDING","GET_SMS_PREVIEW_FULFILLED","GET_SMS_PREVIEW_FAILURE","POST_CONTENT_TO_GET_REAL_COST_PENDING","POST_CONTENT_TO_GET_REAL_COST_FULFILLED","POST_CONTENT_TO_GET_REAL_COST_FAILURE","GET_HEALTH_FORM_TEMPLATES_PENDING","GET_HEALTH_FORM_TEMPLATES_FULFILLED","GET_HEALTH_FORM_TEMPLATES_FAILURE","GET_HEALTH_FORM_SETTING_PENDING","GET_HEALTH_FORM_SETTING_FULFILLED","GET_HEALTH_FORM_SETTING_FAILURE","PATCH_HEALTH_FORM_SETTING_PENDING","PATCH_HEALTH_FORM_SETTING_FULFILLED","PATCH_HEALTH_FORM_SETTING_FAILURE","SET_TOTAL_POINT","SET_CHECKIN_QUOTA","POST_FILE_UPLOAD_PENDING","POST_FILE_UPLOAD_FULFILLED","POST_FILE_UPLOAD_FAILURE","GET_INDEX_PAGE_EDIT_PENDING","GET_INDEX_PAGE_EDIT_FULFILLED","GET_INDEX_PAGE_EDIT_FAILURE","POST_INDEX_PAGE_PENDING","POST_INDEX_PAGE_FULFILLED","POST_INDEX_PAGE_FAILURE","PATCH_INDEX_PAGE_EDIT_PENDING","PATCH_INDEX_PAGE_EDIT_FULFILLED","PATCH_INDEX_PAGE_EDIT_FAILURE","GET_GUEST_INDEX_PAGE_PENDING","GET_GUEST_INDEX_PAGE_FULFILLED","GET_GUEST_INDEX_PAGE_FAILURE","GET_INDEX_PAGE_PREVIEW_PENDING","GET_INDEX_PAGE_PREVIEW_FULFILLED","GET_INDEX_PAGE_PREVIEW_FAILURE","GET_BADGE_SETTING_PENDING","GET_BADGE_SETTING_FULFILLED","GET_BADGE_SETTING_FAILURE","POST_BADGE_SETTING_PENDGING","POST_BADGE_SETTING_FULFILLED","POST_BADGE_SETTING_FAILURE","DELETE_BADGE_SETTING_PENDING","DELETE_BADGE_SETTING_FULFILLED","DELETE_BADGE_SETTING_FAILURE","PATCH_BADGE_SETTING_PENDING","PATCH_BADGE_SETTING_FULFILLED","PATCH_BADGE_SETTING_FAILURE","GET_ATTENDEE_CHECKIN_SITUATION_PENDING","GET_ATTENDEE_CHECKIN_SITUATION_FULFILLED","GET_ATTENDEE_CHECKIN_SITUATION_FAILURE","POST_EXPORT_STATISTIC_CHECKIN_REPORT_PENDING","POST_EXPORT_STATISTIC_CHECKIN_REPORT_FULFILLED","POST_EXPORT_STATISTIC_CHECKIN_REPORT_FAILURE","GET_CUSTOMIZE_CHART_LIST_PENDING","GET_CUSTOMIZE_CHART_LIST_FULFILLED","GET_CUSTOMIZE_CHART_LIST_FAILURE","POST_SINGLE_CUSTOMIZE_CHART_PENDING","POST_SINGLE_CUSTOMIZE_CHART_FULFILLED","POST_SINGLE_CUSTOMIZE_CHART_FAILURE","DELETE_SINGLE_CUSTOMIZE_CHART_PENDING","DELETE_SINGLE_CUSTOMIZE_CHART_FULFILLED","DELETE_SINGLE_CUSTOMIZE_CHART_FAILURE","SET_GUEST_SIGN_UP_INFO","SET_GUEST_SELECT_SESSIONS","brand","50","100","300","600","700","800","900","card","freeze","ADMIN_PROJECT_NOT_FOUND","VERSION_IS_NOT_LATEST","INVALID_UUID","INVALID_USER_CODE","IS_NOT_WITHIN_TIME","UNAVAILABLE","TOKEN_EXPIRED","reserve","send","EMAIL_SEND_STATE","notYet","sent","sentFailure","EMAIL_RECEIVER_STATE","arrived","finished","EMAIL_ERROR_CODE","noError","pointNotEnough","invalidFormat","mailserverError","useAppVersion","intervalSeconds","handler","useApiResponseHandler","useQuery","refetchInterval","refetchIntervalInBackground","ErrorHandlerContext","createContext","ErrorHandler","children","errorStatusCode","setErrorStatusCode","setMsg","renderContent","useCallback","contextPayload","useMemo","Provider","useErrorHandlerContext","useContext","second","TOOLTIP_OPEN_DELAY_DURATION","TOOLTIP_CLOSE_DELAY_DURATION","resources","zh","translation","tw","en","initReactI18next","init","lng","fallbackLng","interpolation","escapeValue","Login","loadable","fallback","Pricing","RegisterRoute","ForgotPasswordRoute","GuestSurveyFormRoute","IndexPageAppRoute","DashboardRoute","GuestRoute","Site","NotFound","GuestNotFound","Maintenance","PrivateRoute","directToPage","setDirectToPage","connect","props","RedirectRoute","UpdatingVersionButton","systemVersion","systemSetting","useLocation","queryClient","useQueryClient","newVersion","setNewVersion","versionMustBeUpdated","setVersionMustBeUpdated","appVersionQuery","handleUpdateVersion","reload","invalidateQueries","isFetching","mustBeUpdated","systemActions","replace","ThunderboltOutlined","withTranslation","isMaintenance","onresize","innerWidth","handleNetworkCondition","condition","onLine","changeLanguage","path","component","exact","from","AppRoute","parameter","QueryClient","defaultOptions","queries","refetchOnWindowFocus","QueryClientProvider","client","components","Button","baseStyle","_focus","boxShadow","variants","solid","colorScheme","theme","_hover","colors","borderColor","outline","_active","outlineToSolid","borderWidth","borderStyle","Link","Popover","responsive","popper","maxW","createBreakpoints","sm","md","lg","xl","extendTheme","breakpoints","gray","button","cursor","input","borderLeft","borderTop","borderRight","textStyles","dayjs","extend","utc","timezone","ReactDOM","loading","persistor","resetCSS","initialIsOpen","getElementById","choose","all","import","signup","validSignup","RECEIVER_TYPE_SELECTIONS","i18key","isLoadingCheckLogin","checkLoginMessage","checkLoginFailed","isLoadingRegister","registerMessage","registerFailed","isLoadingCheckRepeatAccount","checkRepeatAccountMessage","checkRepeatAccountFailed","isLoadingEmailAuthenticated","isEmailAuthenticatedMessage","isEmailAuthenticatedFailed","isLoadingReSendRegisterAuthenticated","reSendRegisterAuthenticatedMessage","reSendRegisterAuthenticatedFailed","isLoadingSendForgotPasswordEmail","sendForgotPasswordEmailMessage","sendForgotPasswordEmailFailed","isLoadingResetNewPassword","resetNewPasswordMessage","resetNewPasswordFailed","isLoadingCheckTokenExpired","checkTokenExpiredMessage","checkTokenExpiredFailed","eventName","eventProjectId","eventStartDateTime","eventEndDateTime","eventTimeZone","eventLocation","eventHealthyFormIsActive","eventSendMode","eventCheckinIdPrefix","eventFounder","eventBeginAt","eventEndAt","eventBannerUri","eventDescription","isEventActive","isEventSignUpEnabled","eventSignUpBannerUri","eventHomePageUuid","eventLanguages","eventDefaultLang","isShowPriorSettingBlock","isOpenedSmsEditInstructionPanel","listNoticeShow","isHiddenRightBottomHint","isHiddenEmailTemplateHint","isHiddenHealthFormHint","isHiddenTutorialTabHint","isEmailFormatChecked","isCellPhoneFormatChecked","isVisitFirstTime","isNotBadgeLabelMachineRentInformationShown","isLoadingGetDeviceCodeList","getDeviceCodeListMessage","isLoadingGetDisuseDeviceCode","getDisuseDeviceCodeMessage","getDisuseDeviceCodeFailed","isLoadingPostCreateDeviceCode","postCreateDeviceCodeMessage","postCreateDeviceCodeFailed","isLoadingDeleteDeviceCode","deleteDeviceCodeMessage","deleteDeviceCodeFailed","initialState","isLoadingGetBoothDeviceCodeList","getBoothDeviceCodeListMessage","isLoadingGetDisuseBoothDeviceCode","getDisuseBoothDeviceCodeMessage","getDisuseBoothDeviceCodeFailed","isLoadingPostCreateBoothDeviceCode","postCreateBoothDeviceCodeMessage","postCreateBoothDeviceCodeFailed","isLoadingDeleteBoothDeviceCode","deleteBoothDeviceCodeMessage","deleteBoothDeviceCodeFailed","isLoadingUpdateProfile","updateProfileMessage","updateProfileFailed","isLoadingGetEmailTemplates","getEmailTemplatesMessage","getEmailTemplatesFailed","isLoadingPostEmailTemplate","postEmailTemplateMessage","postEmailTemplateFailed","isLoadingPatchEmailTemplate","patchEmailTemplateMessage","patchEmailTemplateFailed","isLoadingDeleteEmailTemplate","deleteEmailTemplateMessage","deleteEmailTemplateFailed","isLoadingGetEmailList","getEmailListMessage","getEmailListFailed","isLoadingGetEmailDraft","getEmailDraftMessage","getEmailDraftFailed","isLoadingPostEmailList","postEmailListMessage","postEmailListFailed","isLoadingDeleteEmailList","deleteEmailListMessage","deleteEmailListFailed","isLoadingPatchEmailList","patchEmailListMessage","patchEmailListFailed","isLoadingPostCopyEmailList","postCopyEmailListMessage","postCopyEmailListFailed","isLoadingGetParticularAttendeeNumber","getParticularAttendeeNumberMessage","getParticularAttendeeNumberFailed","isLoadingGetEmailPreview","getEmailPreviewMessage","getEmailPreviewFailed","isLoadingGetSingleEmailRecord","getSingleEmailRecordMessage","getSingleEmailRecordFailed","isLoadingGetSmsList","getSmsListMessage","getSmsListFailed","isLoadingGetSmsDraft","getSmsDraftMessage","getSmsDraftFailed","isLoadingPostSmsDraft","postSmsDraftMessage","postSmsDraftFailed","isLoadingPatchSmsDraft","patchSmsDraftMessage","patchSmsDraftFailed","isLoadingDeleteSmsDraft","deleteSmsDraftMessage","deleteSmsDraftFailed","isLoadingPostCopySmsDraft","postCopySmsDraftMessage","postCopySmsDraftFailed","isLoadingGetSmsPreview","getSmsPreviewMessage","getSmsPreviewFailed","isLoadingGetSingleSmsRecord","getSingleSmsRecordMessage","getSingleSmsRecordFailed","windowInnerWidth","isDoneFirstTime","tutorialsActiveKey","totalPoint","checkInQuota","isLoadingPostContentToGetRealCost","postContentToGetRealCostMessage","postContentToGetRealCostFailed","isLoadingGetAttendeeCheckinSituation","getAttendeeCheckinSituationMessage","getAttendeeCheckinSituationFailed","isLoadingPostExportStatisticCheckinReport","postExportStatisticCheckinReportMessage","postExportStatisticCheckinReportFailed","isLoadingGetCustomizeChartList","getCustomizeChartListMessage","getCustomizeChartListFailed","isLoadingPostSingleCustomizeChart","postSingleCustomizeChartMessage","postSingleCustomizeChartFailed","isLoadingDeleteSingleCustomizeChart","deleteSingleCustomizeChartMessage","deleteSingleCustomizeChartFailed","isLoadingPostFileUpload","postFileUploadMessage","postFileUploadFailed","isLoadingGetHealthFormTemplates","getHealthFormTemplatesMessage","getHealthFormTemplatesFailed","isLoadingGetHealthFormSetting","getHealthFormSettingMessage","getHealthFormSettingFailed","isLoadingPatchHealthFormSetting","patchHealthFormSettingMessage","patchHealthFormSettingFailed","systemSettingReducer","action","isLoadingGetIsDoneFirstTime","getIsDoneFirstTimeMessage","getIsDoneFirstTimeFailed","userPlan","userExpirationDate","userActiveDate","startupCodeMaximumCount","participantsMaximumCount","expirationDateReminder","isAnnual","isLoadingGetIndexPageEdit","getIndexPageEditMessage","getIndexPageEditFailed","isLoadingPostIndexPage","postIndexPageMessage","postIndexPageFailed","isLoadingPatchIndexPageEdit","patchIndexPageEditMessage","patchIndexPageEditFailed","isLoadingGetGuestIndexPage","getGuestIndexPageMessage","getGuestIndexPageFailed","isLoadingGetIndexPagePreview","getIndexPagePreviewMessage","getIndexPagePreviewFailed","indexPageReducer","isSurveyFormEditSavedNotYet","isIndexPageEditSavedNotYet","isBadgeEditSavedNotYet","badgeState","isLoadingGetBadgeSetting","getBadgeSettingMessage","getBadgeSettingFailed","isLoadingPostBadgeSetting","postBadgeSettingMessage","postBadgeSettingFailed","isLoadingDeleteBadgeSetting","deleteBadgeSettingMessage","deleteBadgeSettingFailed","isLoadingPutBadgeSetting","putBadgeSettingMessage","putBadgeSettingFailed","initialBadgeState","badgeReducer","modalVisibleState","isCreatingEventModalVisible","signingUpTicketInfo","ticketTypes","guestSelectSessionUuids","envSettingConfig","storage","debug","clientOrderConfig","sessionStorage","appReducers","combineReducers","envSetting","persistReducer","clientOrder","auth","actionData","actionDataState","versionName","endTime","startTime","maxStartupCode","maxUser","days","isAnnaul","routing","isSignUpEnabled","signUpBannerUri","bannerUri","founder","beginAt","endAt","healthyFormIsActive","sendMode","checkinIdPrefix","defaultLang","eventRoles","deviceCode","globalstate","boothDeviceCode","emailTemplate","emailList","emailRecord","point","file","smsDraft","smsRecord","healthForm","getHealthFormTemplatesFulfilled","statistic","commonAction","modalVisible","visible","reducers","removeItem","persistConfig","whitelist","persistedReducer","middleware","thunk","reduxLogger","require","createStore","applyMiddleware","persistStore","getQueryCache","clear","handle403ErrorHandler","handle404ErrorHandler","promise","responseData"],"mappings":"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","file":"bundle.main.07a0ee7d697c6b0b2cd5.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"form-item__input\":\"commonHooks__form-item__input___2Ibll\",\"form-item__textarea\":\"commonHooks__form-item__textarea___3w440\",\"create-template__form-item\":\"commonHooks__create-template__form-item___lMJlB\"};","import * as React from \"react\";\n\nfunction SvgLoading(props) {\n return ;\n}\n\nexport default \"https://confcdnnode2.azureedge.net/funeventapp/images/loading.svg\";\nexport { SvgLoading as ReactComponent };","/**\n * 整個頁面遮罩的 loading component\n *\n */\n\nimport loadingSvg from '../../assets/images/loading.svg';\nimport loadingSmallSvg from '../../assets/images/loading-small.svg';\n\n/**\n * @param {object} props\n * @param {number} props.backgroundAlpha 遮罩背景透明度\n * @param {boolean} props.isLoadingText 是否顯示文字\n * @param {string} props.loadingText 顯示的文字\n * @param {boolean} props.maskAll 遮住整個頁面,透明度為 1\n */\nfunction PageLoading({\n backgroundAlpha = 0.25,\n isLoadingText = false,\n loadingText = 'LOADING...',\n maskAll = false,\n}) {\n return (\n \n
\n \n {isLoadingText && (\n \n {loadingText}\n

\n )}\n
\n \n );\n}\n\nexport default PageLoading;\n","import PageLoading from './PageLoading';\n\nexport default PageLoading;\n","// participant\nexport const PARTICIPANTS_QUERY_KEY = 'participants';\nexport const PARTICIPANT_QUERY_KEY = 'participant';\nexport const PARTICIPANT_COLUMNS_QUERY_KEY = 'participantColumns';\nexport const EXPORT_PARTICIPANT_LIST_QUERY_KEY = 'exportParticipantList';\nexport const GET_PARTICIPANT_TEMPLATE_QUERY_KEY = 'getParticipantTemplate';\nexport const GET_PARTICIPANT_LUCKYDRAW_TEMPLATE_QUERY_KEY = 'getParticipantLuckyDrawTemplate';\nexport const VALIDATE_PARTICIPANT_DATA_PATTERN_QUERY_KEY = 'validateParticipantDataPattern';\n\nexport const EVENT_QUERY_KEY = 'event';\nexport const EVENTS_QUERY_KEY = 'events';\nexport const EVENT_LOGS_QUERY_KEY = 'eventLogs';\nexport const EVENTS_LOGS_QUERY_KEY = 'eventsLogs';\n\nexport const EMAIL_TEMPLATES_QUERY_KEY = 'emailTempaltes';\nexport const EMAILS_QUERY_KEY = 'emails';\nexport const EMAIL_TEMPLATE_SETTING_QUERY_KEY = 'emailTemplateSetting';\n\nexport const SMSS_QUERY_KEY = 'smss';\n\nexport const TICKETS_QUERY_KEY = 'tickets';\nexport const TICKET_QUERY_KEY = 'ticket';\n\nexport const TICKET_TYPES_QUERY_KEY = 'ticketTypes';\nexport const TICKET_TYPE_QUERY_KEY = 'ticketType';\nexport const TICKET_TYPE_STATISTICS_QUERY_KEY = 'ticketTypeStatistics';\n\nexport const GUEST_TICKET_FOLDER_QUERY_KEY = 'guestTicketFolder';\nexport const GUEST_TICKET_QUERY_KEY = 'guestTicket';\n\nexport const SESSIONS_QUERY_KEY = 'sessions';\n\nexport const PAYMENT_SETTINGS_QUERY_KEY = 'paymentSettings';\n\nexport const MAILSERVER_SETTING_QUERY_KEY = 'mailServerSetting';\nexport const FAMILY_FORMS_QUERY_KEY = 'familyForms';\n\nexport const CACHE_QUERY_KEY = 'cache';\n\nexport const GUEST_SIGN_UP_QUERY_KEY = 'guestSignUp';\nexport const GUEST_SIGN_UP_FORM_QUERY_KEY = 'guestSignUpForm';\nexport const GUEST_SIGN_UP_RESULT_QUERY_KEY = 'guestSignUpResult';\n\nexport const BADGE_QUERY_KEY = 'badge';\n\nexport const SYSTEM_ANNOUNCEMENTS_QUERY_KEY = 'systemAnnouncements';\n\nexport const POINT_LOGS_QUERY_KEY = 'pointLogs';\nexport const POINT_QUERY_KEY = 'point';\nexport const CHECK_IN_QUOTA_QUERY_KEY = 'checkInQuota';\nexport const CHECK_IN_QUOTA_LOGS_QUERY_KEY = 'checkInQuotaLogs';\n\nexport const APP_VERSION_QUERY_KEY = 'appVersion';\n\nexport const SURVEY_FORMS_QUERY_KEY = 'surveyForm';\nexport const PREVIEW_GUEST_SURVEY_FORM_QUERY_KEY = 'previewGuestSurveyForm';\nexport const GUEST_SURVEY_FORM_QUERY_KEY = 'guestSurveyForm';\nexport const GUEST_SURVEY_FORM_PROJECT_CODE_FROM_UUID = 'guestSurveyFormProjectCodeFromUuid';\n\nexport const BOOTH_EVENT_QUERY_KEY = 'booth';\n\n// ---------------------------MUTATION----------------------------------------\nexport const POST_PREPARE_CHECKIN_QR_CODE_IMAGE_KEY = 'postPrepareCheckinQrImage';\nexport const POST_PREPARE_INDEX_PAGE_QR_CODE_IMAGE_KEY = 'postPrepareIndexPageQrImage';\n","// 目前登入前的頁面所 call 的 API,都是直接用 axios,沒使用 request 包裝後的\n// 原因為 validateStatus 的設定,登入前頁面對於 API error 時的狀態顯示都是一樣的,\n// 沒有分 400、500,所以如果登入前頁面要使用 request 包裝的話,必須針對錯誤狀態做分流處理。\n\nimport axios from 'axios';\nimport * as qs from 'qs';\nimport * as R from 'ramda';\nimport { getEnvironmentBaseURL } from '@Utils/commonFunction';\n\nimport { DEFAULT_EVENT_TIME_ZONE } from '@Constants/eventConstants';\n\nimport { store } from './store';\n\nconst baseUrl = getEnvironmentBaseURL();\n\nconst testBaseUrl = 'http://localhost:3001';\n\nconst validateStatusConfig = {\n validateStatus: (status) => {\n return status >= 200 && status <= 499;\n },\n};\n\nconst request = axios.create({\n baseURL: baseUrl,\n ...validateStatusConfig,\n});\n\nrequest.interceptors.request.use((config) => {\n const requestConfig = config;\n if (store.getState()?.login?.userAuth) {\n requestConfig.headers.Authorization = `Bearer ${store.getState().login.userAuth}`;\n }\n\n return requestConfig;\n});\n\nrequest.interceptors.response.use(\n (data) => {\n return Promise.resolve(data);\n },\n (error) => {\n return Promise.reject(error);\n },\n);\n\n// ------------ 系統相關 --------\n// 取得目前版號,與是否要維修\nexport const getCheckVersion = (v) =>\n request({\n method: 'get',\n url: `/api/v3/App/CheckVersion/funevent?v=${v}`,\n });\n\nexport const postRegisterAuthenticated = (token) =>\n axios({\n method: 'get',\n url: `${baseUrl}/api/v3/admin/verifyemail/${token}`,\n });\n\nexport const postRegister = (\n account,\n password,\n name,\n company,\n cellPhone,\n taxIDNumber,\n industry,\n language = 'default',\n) =>\n axios({\n method: 'post',\n url: `${baseUrl}/api/v3/admin/create`,\n data: {\n account,\n password,\n name,\n company,\n cellPhone,\n taxIDNumber,\n industry,\n language,\n },\n });\n\nexport const checkRepeatAccount = (account) =>\n axios({\n method: 'post',\n url: `${baseUrl}/api/v3/admin/checkaccount`,\n data: { account },\n });\n\nexport const checkLogin = (data) =>\n request({\n method: 'post',\n url: '/api/v6/admin/login',\n data,\n });\n\n// 登出其它裝置\nexport const postLogoutOtherDevices = () =>\n request({\n method: 'delete',\n url: `/api/v6/admin/logoutothers`,\n });\n\n// 登出\nexport const postLogout = () =>\n request({\n method: 'delete',\n url: `/api/v6/admin/logout`,\n });\n\n// 檢查 token 是否過期\nexport const checkTokenExpired = () =>\n request({\n method: 'get',\n url: `/api/v3/admin/checktoken`,\n });\n\nexport const reSendRegisterAuthenticated = (account) =>\n axios({\n method: 'post',\n url: `${baseUrl}/api/v3/admin/verifyemail/send`,\n data: { account },\n });\n\nexport const sendForgotPasswordEmail = (account) =>\n axios({\n method: 'post',\n url: `${baseUrl}/api/v3/admin/forgotpassword`,\n data: { account },\n });\n\nexport const resetNewPassword = (token, password) =>\n axios({\n method: 'post',\n url: `${baseUrl}/api/v3/admin/resetpassword/${token}`,\n data: { password },\n });\n\n// 取得 account 資料\nexport const getProfile = () =>\n request({\n method: 'get',\n url: '/api/v3/admin',\n });\n\n// 更新 account 資料\nexport const updateProfile = (name, company, cellPhone, taxIDNumber, language, industry) =>\n request({\n method: 'post',\n url: '/api/v3/admin',\n data: {\n name,\n company,\n cellPhone,\n taxIDNumber,\n language,\n industry,\n },\n });\n\n// 是否完成第一次使用\nexport const getIsDoneFirstTime = () =>\n request({\n method: 'get',\n url: '/api/v3/devices/hasLogin',\n });\n\n// -------------- Event 相關--------------------\nexport const createEvent = (data) => {\n const { timeZone } = data;\n let defaultTimeZone = '';\n\n if (!timeZone) {\n defaultTimeZone = DEFAULT_EVENT_TIME_ZONE.value;\n } else {\n defaultTimeZone = timeZone;\n }\n\n return request({\n method: 'post',\n url: `/api/v6/project/create`,\n data: {\n ...data,\n timeZone: defaultTimeZone,\n },\n });\n};\n\n// 取得活動列表\nexport const getEventList = () =>\n request({\n method: 'get',\n url: `/api/v6/project/get`,\n });\n\n// 取得活動\nexport const getEvent = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/project/get/${projectCode}`,\n });\n\n// 刪除活動\nexport const deleteEvent = (projectCode) =>\n request({\n method: 'delete',\n url: `/api/v6/project/delete/${projectCode}`,\n });\n\n// 更新活動\nexport const updateEvent = (projectCode, data) => {\n const { timeZone } = data;\n let defaultTimeZone = '';\n\n if (!timeZone) {\n defaultTimeZone = DEFAULT_EVENT_TIME_ZONE;\n } else {\n defaultTimeZone = timeZone;\n }\n\n return request({\n method: 'put',\n url: `/api/v6/project/update/${projectCode}`,\n data: {\n ...data,\n timeZone: defaultTimeZone,\n },\n });\n};\n\n/**\n * 更新活動的發布狀態與報名功能狀態\n *\n * @param {string} projectCode\n * @param {object} data: { isActive: Boolean, isSignUpEnabled: Boolean} 每次 PATCH,每個 properties 都要傳,若不傳會是 false\n * @returns\n */\nexport const patchEvent = (projectCode, data) => {\n return request({\n method: 'patch',\n url: `/api/v6/project/patch/${projectCode}`,\n data,\n });\n};\n\n// 活動操作記錄\nexport const getEventLog = (projectCode, skip = 0, length = 100) =>\n request({\n method: 'get',\n url: `/api/v6/project/${projectCode}/modulelogs?skip=${skip}&length=${length}`,\n });\n\n// 所有活動操作記錄\nexport const getEventsLogs = (skip = 0, length = 100) =>\n request({\n method: 'get',\n url: `/api/v6/project/modulelogs?skip=${skip}&length=${length}`,\n });\n\n// ----------- device code-----------\n// 取得活動啟動碼\nexport const getDeviceCodeList = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/device`,\n });\n\n// logout startup code\nexport const getDisuseDeviceCode = (projectCode, deviceSeq) =>\n request({\n method: 'delete',\n url: `/api/v6/${projectCode}/device/${deviceSeq}/disuse`,\n });\n\n// create a new device code\nexport const postCreateDeviceCode = (projectCode) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/device`,\n });\n\n// delete a device code\nexport const deleteDeviceCode = (projectCode, deviceSeq) =>\n request({\n method: 'delete',\n url: `/api/v6/${projectCode}/device/${deviceSeq}`,\n });\n\n// ----------- booth device code-----------\n// 取得攤位啟動碼\nexport const getBoothDeviceCodeList = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/boothdevice`,\n });\n\n// logout booth device code\nexport const getDisuseBoothDeviceCode = (projectCode, deviceSeq) =>\n request({\n method: 'delete',\n url: `/api/v6/${projectCode}/device/${deviceSeq}/disuse`,\n });\n\n// create a new booth device code\nexport const postCreateBoothDeviceCode = (projectCode) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/device`,\n });\n\n// delete a booth device code\nexport const deleteBoothDeviceCode = (projectCode, deviceSeq) =>\n request({\n method: 'delete',\n url: `/api/v6/${projectCode}/device/${deviceSeq}`,\n });\n\n// ------- 名單相關 ---------\n// get participants with pagination、sort、fliter and search\n/**\n *\n * @param { includeGlobal: [] } 全域搜尋,交集\n * @param { includeLocal: {} } 特定參數搜尋,交集\n * @returns\n */\nexport const getParticipants = ({\n projectCode,\n isAllticket = false,\n page = 1,\n size = 20,\n sort = '0',\n isAscending = true,\n includeGlobal = [],\n includeLocal = {},\n}) => {\n function booleanParseToString(boolean) {\n return boolean ? 'True' : 'False';\n }\n\n const invalid =\n R.type(includeLocal.invalid) === 'Boolean' ? booleanParseToString(includeLocal.invalid) : '';\n const valid =\n R.type(includeLocal.valid) === 'Boolean' ? booleanParseToString(includeLocal.valid) : '';\n // 14,15 是給簡訊的(目前介面還沒有需要呈現所以沒用到)\n const local = {\n 0: (includeLocal.userId ?? '').toString(),\n 1: (includeLocal.name ?? '').toString(),\n 2: (includeLocal.ticketUuid ?? '').toString(),\n 3: (includeLocal.ticketName ?? '').toString(),\n 4: (includeLocal.price ?? '').toString(),\n 5: (includeLocal.reviewStatus ?? '').toString(),\n 6: (includeLocal.paymentStatus ?? '').toString(),\n 7: invalid ?? '',\n 8: valid ?? '',\n 9: (includeLocal.source ?? '').toString(),\n 10: includeLocal.reviewPeriod ?? [],\n 11: includeLocal.paymentPeriod ?? [],\n 12: includeLocal.includeEmailSeq ?? [],\n 13: includeLocal.excludeEmailSeq ?? [],\n 16: includeLocal.includeSessionUuid ?? [],\n 17: includeLocal.excludeSessionUuid ?? [],\n };\n\n return request({\n method: 'get',\n url: `/api/v6/${projectCode}/participant/get?option=${window.btoa(\n encodeURIComponent(\n JSON.stringify({\n page,\n size,\n sort,\n isAscending,\n global: includeGlobal,\n local,\n isAllticket,\n }),\n ),\n )}`,\n });\n};\n\nexport const getParticipant = (projectCode, uuid) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/participant/get/${uuid}`,\n });\n\n// get participant template\nexport const getParticipantTemplate = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6.2/${projectCode}/participant/template`,\n responseType: 'blob',\n });\n\n// get participant luckydraw template\nexport const getParticipantLuckyDrawTemplate = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6.2/${projectCode}/participant/luckydraw/template`,\n responseType: 'blob',\n });\n\n// import check\nexport const postImportCheck = (projectId, data) =>\n request({\n method: 'post',\n url: `/api/v4/${projectId}/Users/importCheck`,\n data,\n });\n\n// v6 import list, 可選擇是否要更新或刪除現有名單資料(與匯入名單比對)\nexport const postImportUserListWithCustomMode = (\n projectCode,\n data,\n canDelete = true,\n canUpdate = true,\n isCheck = false,\n) =>\n request({\n method: 'post',\n url: `/api/v6.2/${projectCode}/participant/import`,\n params: {\n isDeleteEnabled: canDelete,\n isUpdateEnabled: canUpdate,\n isCheck,\n },\n data,\n });\n\n// 取得來賓欄位\nexport const getParticipantColumns = (projectCode) =>\n request({\n methods: 'get',\n url: `/api/v6/${projectCode}/participant/column/get`,\n });\n\n// v6 更新名單欄位(也是報名表單欄位)\nexport const putUserListColumns = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/participant/column/modify`,\n data,\n });\n\n// v6 僅更新clientAppSortId欄位(也是報名表單欄位)\nexport const patchUserListColumns = (projectCode, data) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/participant/column/modify`,\n data,\n });\n\n// create participants\nexport const postParticipants = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6.2/${projectCode}/participant/create`,\n data,\n });\n\n// v6 update a user in list\nexport const updateParticipant = (projectCode, uuid, data) =>\n request({\n method: 'put',\n url: `/api/v6.2/${projectCode}/participant/update/${uuid}`,\n data,\n });\n\n// delete a user in list\nexport const deleteSingleRowInUserList = (proejctCode, uuid) =>\n request({\n method: 'delete',\n url: `/api/v6.1/${proejctCode}/participant/delete/${uuid}`,\n });\n\n// check userId 有無重複 in list\nexport const checkParticipantIdDuplicated = (projectCode, update, current = undefined) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/participant/check`,\n params: {\n update,\n current,\n },\n });\n\n// validate participant data pattern\n/**\n *\n * @param {string} projectCode\n * @param {number} receiverType 0: email, 1: phone\n * @returns\n */\nexport const validateParticipantDataPattern = (projectCode, receiverType) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/participant/validatepattern?receiverType=${receiverType}`,\n });\n\n// export user list\n// export const getExportParticipantList = (projectCode) =>\n// request({\n// method: 'get',\n// url: `/api/v6/${projectCode}/participant/export`,\n// responseType: 'blob',\n// });\n\nexport const getExportFilteredParticipants = (projectCode, localFilter, keywords) => {\n function booleanParseToString(boolean) {\n return boolean ? 'True' : 'False';\n }\n\n const invalid =\n R.type(localFilter.invalid) === 'Boolean' ? booleanParseToString(localFilter.invalid) : '';\n const valid =\n R.type(localFilter.valid) === 'Boolean' ? booleanParseToString(localFilter.valid) : '';\n const local = {\n 0: (localFilter.userId ?? '').toString(),\n 1: (localFilter.name ?? '').toString(),\n 2: (localFilter.ticketUuid ?? '').toString(),\n 3: (localFilter.ticketName ?? '').toString(),\n 4: (localFilter.price ?? '').toString(),\n 5: (localFilter.reviewStatus ?? '').toString(),\n 6: (localFilter.paymentStatus ?? '').toString(),\n 7: invalid ?? '',\n 8: valid ?? '',\n 9: (localFilter.source ?? '').toString(),\n 10: localFilter.reviewPeriod ?? [],\n 11: localFilter.paymentPeriod ?? [],\n 12: localFilter.includeEmailSeq ?? [],\n 13: localFilter.excludeEmailSeq ?? [],\n 16: localFilter.includeSessionUuid ?? [],\n 17: localFilter.excludeSessionUuid ?? [],\n };\n\n return request({\n method: 'get',\n url: `/api/v6.3/${projectCode}/participant/export?option=${window.btoa(\n encodeURIComponent(\n JSON.stringify({\n global: keywords,\n local,\n }),\n ),\n )}`,\n responseType: 'blob',\n });\n};\n\n// prepare user check-in QR code image\nexport const postPrepareCheckinQrImage = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/qrimage/prepare/ticketuuid`,\n data,\n });\n\n// prepare user index-page QR code image\nexport const postPrepareIndexPageQrImage = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/qrimage/prepare/indexpageurl`,\n data,\n });\n\n// 取得下載 checkin QR 圖檔紀錄\nexport const getCheckinQRImageDownloadLogs = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/qrimage/get`,\n });\n\n// 更新 QR 圖檔準備紀錄最後下載時間\nexport const putPrepareQRImageLastDownload = (projectCode, seq) =>\n request({\n method: 'put',\n url: `/api/v6/${projectCode}/qrimage/${seq}/update`,\n });\n\n// ------- email template 相關 -------\n// GET email templates\nexport const getEmailTemplates = () =>\n request({\n method: 'get',\n url: `/api/v6/emailtemplate/get`,\n });\n\n// POST email templates\nexport const postEmailTemplate = (name, html, json, emailTitle = '') => {\n return request({\n method: 'post',\n url: `/api/v6/emailtemplate/create`,\n data: { name, html, json, emailTitle },\n });\n};\n\n// DELETE email templates\nexport const deleteEmailTemplate = (seq) =>\n request({\n method: 'delete',\n url: `/api/v6/emailtemplate/delete/${seq}`,\n });\n\n// PATCH email templates\nexport const patchEmailTemplate = (templateId, name, html, json, emailTitle) =>\n request({\n method: 'put',\n url: `/api/v6/emailtemplate/update/${templateId}`,\n data: { name, html, json, emailTitle },\n });\n\n// 取得電子郵件樣板設定 (自動寄信)\nexport const getEmailTemplateSetting = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/emailtemplate/${projectCode}/setting/get`,\n });\n// 更新電子郵件樣板設定 (自動寄信)\nexport const updateEmailTemplateSetting = (projectCode, data) =>\n request({\n method: 'put',\n url: `/api/v6/emailtemplate/${projectCode}/setting/update`,\n data,\n });\n\n// ---- email 伺服器設定相關 -----\n// GET 郵件伺服器設定\nexport const getMailServerSetting = (projectCode) =>\n request({\n method: 'get',\n url: `api/v6/${projectCode}/emailserver/get`,\n });\n\n// 建立 郵件伺服器設定\nexport const postMailServerSetting = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/emailserver/create`,\n data,\n });\n\n// 連線測試 郵件伺服器設定\nexport const testMailServerSetting = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/emailserver/test`,\n data,\n });\n\n// 更新 郵件伺服器設定\nexport const putMailServerSetting = (projectCode, data) =>\n request({\n method: 'put',\n url: `/api/v6/${projectCode}/emailserver/update`,\n data,\n });\n\n// 僅更新開啟關閉 郵件伺服器設定\nexport const patchMailServerSetting = (projectCode, data) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/emailserver/patch`,\n data,\n });\n// ---- email 草稿與信件列表相關 -----\n// GET email 信件列表\nexport const getEmailList = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/emaildraft/get`,\n });\n\n// POST email 草稿\nexport const postEmailList = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/emaildraft/create`,\n data: { ...data },\n });\n\n// GET email 草稿\nexport const getEmailDraft = (projectCode, draftSeq) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/emaildraft/${draftSeq}/get`,\n });\n\nexport const deleteEmailDraft = (projectCode, draftSeq) =>\n request({\n method: 'delete',\n url: `/api/v6/${projectCode}/emaildraft/${draftSeq}/delete`,\n });\n\nexport const patchEmailDraft = (porjectCode, draftSeq, data) =>\n request({\n method: 'put',\n url: `/api/v6/${porjectCode}/emaildraft/${draftSeq}/update`,\n data,\n });\n\n// copy email 草稿\nexport const postCopyEmailList = (projectCode, draftSeq) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/emaildraft/${draftSeq}/clone`,\n });\n\n// 單筆 email 瀏覽內文\nexport const getEmailPreview = (projectCode, draftSeq) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/emaildraft/${draftSeq}/preview`,\n });\n\n// ------ 信件發送記錄 ------\nexport const getSingleEmailRecord = (projectCode, draftSeq) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/emaildraft/${draftSeq}/receivers`,\n });\n\nexport const getExportedSingleEmailRecord = (projectCode, draftSeq) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/emaildraft/${draftSeq}/receivers/export`,\n responseType: 'blob',\n });\n\n// ----------- SMS ----------------\nexport const getSmsList = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/smsdraft/get`,\n });\n\nexport const getSmsDraft = (projectCode, draftSeq = '') =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/smsdraft/${draftSeq}/get`,\n });\n\nexport const postSmsDraft = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/smsdraft/create`,\n data,\n });\n\nexport const patchSmsDraft = (projectCode, draftSeq, data) =>\n request({\n method: 'put',\n url: `/api/v6/${projectCode}/smsdraft/${draftSeq}/update`,\n data,\n });\n\nexport const deleteSmsDraft = (projectCode, draftSeq) =>\n request({\n method: 'delete',\n url: `/api/v6/${projectCode}/smsdraft/${draftSeq}/delete`,\n });\n\nexport const postCopySmsDraft = (projectCode, draftSeq) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/smsdraft/${draftSeq}/clone`,\n });\n\nexport const getSingleSmsRecord = (projectCode, draftSeq) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/smsdraft/${draftSeq}/receivers`,\n });\n\nexport const getSmsPreview = (projectCode, draftSeq) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/smsdraft/${draftSeq}/preview`,\n });\n\nexport const postContentToGetRealCost = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/point/estimatecost`,\n data,\n });\n\n// ------ POINT --------------\n// get 點數\nexport const getPoint = () =>\n request({\n method: 'get',\n url: '/api/v6/point',\n });\n\n// get 扣點記錄列表\nexport const getPointLog = () =>\n request({\n method: 'get',\n url: `/api/v6/point/orders`,\n });\n\n// get 單筆扣點詳細記錄\nexport const getDetailPointLog = (seq) =>\n request({\n method: 'get',\n url: `/api/v6/point/order/${seq}/logs`,\n });\n\n// 匯出點數記錄\nexport const getExportPointLogs = () =>\n request({\n method: 'get',\n url: `/api/v6/point/export`,\n responseType: 'blob',\n });\n\n// 取得 Event 特定參加者的人數,可以用於檢查 Email 草稿是否有勾選到特定參加者,在匯入新的名單時可以去判定要不要跳出警示\nexport const getParticularAttendeeNumber = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/participant/receivercount`,\n });\n\n// --------------- File --------------\nexport const postFileUpload = (File) =>\n request({\n method: 'post',\n url: `/api/v5/file/upload`,\n data: File,\n });\n\n// ---------------- Survey Form -----------\nexport const getSurveyFormList = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/surveyform`,\n });\n\nexport const postSurveyForm = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/surveyform`,\n data,\n });\n\nexport const getSurveyForm = (projectCode, uuid) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/surveyform/${uuid}`,\n });\n\nexport const putSurveyForm = (projectCode, uuid, data) =>\n request({\n method: 'put',\n url: `/api/v6/${projectCode}/surveyform/${uuid}`,\n data,\n });\n\nexport const patchSurveyFormBeginAt = (projectCode, uuid, value) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/surveyform/${uuid}/beginat${value ? `?v=${value}` : ''}`,\n });\n\nexport const patchSurveyFormEndAt = (projectCode, uuid, value) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/surveyform/${uuid}/endat${value ? `?v=${value}` : ''}`,\n });\n\nexport const patchSurveyFormActive = (projectCode, uuid, value) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/surveyform/${uuid}/isactive?v=${value}`,\n });\n\nexport const patchSurveyFormMustCheck = (projectCode, uuid, value) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/surveyform/${uuid}/mustCheck?v=${value}`,\n });\n\nexport const patchSurveyFormPrizeEnabled = (projectCode, uuid, value) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/surveyform/${uuid}/isprizeenabled?v=${value}`,\n });\n\nexport const deleteSurveyForm = (projectCode, uuid) =>\n request({\n method: 'delete',\n url: `/api/v6/${projectCode}/surveyform/${uuid}`,\n });\n\nexport const getGuestSurveyForm = (projectCode, uuid, userCode = '') =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/surveyformguest/${uuid}?userCode=${userCode}`,\n });\n\n// 來賓送出問卷表單\nexport const postGuestSurveyForm = (projectCode, uuid, version, userCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/surveyformguest/${uuid}/${version}?userCode=${userCode}`,\n data,\n });\n\n// 來賓領取問卷禮\nexport const postGuestObtainSurveyFormGift = (projectCode, uuid, token) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/surveyformguest/${uuid}?token=${token}`,\n });\n\n// 使用舊問卷網址(v1.8 以前只有 uuid)去取得 projectCode 導向到新問卷網址(v1.8 以後)\nexport const getSurveyFormProjectCodeFromUuid = (surveyFormUuid) =>\n request({\n method: 'get',\n url: `/api/v6/surveyformguest/${surveyFormUuid}`,\n });\n\nexport const getPreviewGuestSurveyForm = (uuid) =>\n request({\n method: 'get',\n url: `/api/v5/surveyForm/${uuid}/Preview`,\n });\n\nexport const getExportSurveyFormResult = (projectCode, uuid) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/surveyform/${uuid}/export`,\n responseType: 'blob',\n });\n\n// --------------- helath form ----------------\nexport const getHealthFormSetting = (projectCode) =>\n request({\n methodl: 'get',\n url: `/api/v3/${projectCode}/form/setting`,\n });\n\nexport const patchHealthFormSetting = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v3/${projectCode}/form/setting`,\n data,\n });\n\nexport const getHealthFormTemplates = () =>\n request({\n method: 'get',\n url: `/api/v3/form/template`,\n });\n\n// ------------- index page -------------\n// GET index page setting\nexport const getIndexPageEdit = (projectCode, lang) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/indexPage/get?lang=${lang}`,\n });\n\n// GET index page preview\nexport const getIndexPagePreview = (projectCode, uuid) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/indexpage/preview?uuid=${uuid}`,\n });\n\n// post index page\nexport const postIndexPage = (projectCode, data) => {\n return request({\n method: 'post',\n url: `/api/v6/${projectCode}/indexpage/create`,\n data,\n });\n};\n\n// put index page setting\nexport const patchIndexPageEdit = (projectCode, data) => {\n return request({\n method: 'put',\n url: `/api/v6/${projectCode}/indexPage/update`,\n data,\n });\n};\n\n// 來賓取得 index page app setting\nexport const getGuestIndexPage = (projectCode, userCode) =>\n request({\n method: 'get',\n url: userCode\n ? `/api/v6/${projectCode}/guestindexpage/get?userCode=${userCode}`\n : `/api/v6/${projectCode}/guestindexpage/get`,\n });\n\n// --------------- badge ----------------\nexport const getBadges = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/badge/get`,\n });\n\nexport const getBadgeSetting = (projectCode, seq) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/badge/get/${seq}`,\n });\n\nexport const postBadgeSetting = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/badge/create`,\n data,\n });\n\nexport const postCopyBadge = (projectCode, seq) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/badge/clone/${seq}`,\n });\n\nexport const deleteBadgeSetting = (projectCode, seq) =>\n request({\n method: 'delete',\n url: `/api/v6/${projectCode}/badge/delete/${seq}`,\n });\n\nexport const putBadgeSetting = (projectCode, seq, data) =>\n request({\n method: 'put',\n url: `/api/v6/${projectCode}/badge/update/${seq}`,\n data,\n });\n\nexport const patchBadgeSetting = (projectCode, seq, data) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/badge/patch/${seq}`,\n headers: {\n 'content-type': 'application/json',\n },\n data: `\"${data}\"`,\n });\n\n// --------------- ticket type ----------------\n// 建立票券種類\nexport const postTicketType = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/tickettype/create`,\n data,\n });\n\n// 取得票券種類列表\nexport const getTicketTypes = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/tickettype/get`,\n });\n\n// 取得單一票種\nexport const getTicketType = (projectCode, uuid) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/tickettype/${uuid}/get`,\n });\n\n// 刪除票券種類\nexport const deleteTicketType = (projectCode, uuid) =>\n request({\n method: 'delete',\n url: `/api/v6/${projectCode}/tickettype/${uuid}/delete`,\n });\n\n// 更新票券種類\nexport const putTicketType = (projectCode, uuid, data) =>\n request({\n method: 'put',\n url: `/api/v6/${projectCode}/tickettype/${uuid}/update`,\n data,\n });\n\n// 更新票券種類販售狀態\nexport const patchTicketTypeSelling = (projectCode, uuid, isSelling) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/tickettype/${uuid}/patch`,\n headers: {\n 'content-type': 'application/json',\n },\n data: isSelling,\n });\n\n// 取得票種統計\nexport const getTIcketStatistics = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/ticket/statistics`,\n });\n\n// -------------- Ticket -----------\n// 取得票券資訊\nexport const getTicket = (projectCode, userId) =>\n request({\n method: 'get',\n url: `/api/v5/${projectCode}/ticket/${userId}`,\n });\n\n// 更新票券審核狀態\nexport const patchTicketReviewStatus = (projectCode, uuid, status) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/ticket/review/${uuid}`,\n headers: {\n 'content-type': 'application/json',\n },\n data: status,\n });\n\n// 更新票券中單一場次的審核狀態\nexport const patchSessionInTicketReviewStatus = (projectCode, uuid, suuid, status) =>\n request({\n method: 'patch',\n url: `/api/v6/${projectCode}/ticket/review/${uuid}/${suuid}`,\n headers: {\n 'content-type': 'application/json',\n },\n data: status,\n });\n\n// -------------- Guest Ticket -----------\n// 取得票匣資訊: 包含 project、tickets、ticket sessions、buyer\nexport const getGuestTicketFolder = (projectCode, orderNo) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/signup/orderinfo/${orderNo}`,\n });\n\n// 取得票券資訊: 包含 project、ticket、ticket sessions\nexport const getGuestTicket = (projectCode, uuid) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/signup/ticketinfo/${uuid}`,\n });\n\n// -------------- Session 場次 -----------\n// 取得多筆 session\nexport const getSessions = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/session/get`,\n });\n\n// 新增多筆 session\n/**\n *\n * @param {string} projectCode\n * @param {array} data \n * [\n {\n \"sortId\": 1,\n \"name\": \"QR Code 技術展示\",\n \"description\": \"請務必攜帶手機\",\n \"place\": \"南港展覽館\",\n \"kind\": 0,\n \"isPrintEnabled\": true,\n \"beginAt\": 1700000000,\n \"endAt\": 1750000000\n }\n ]\n * @returns\n */\nexport const postSessions = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6.1/${projectCode}/session/create`,\n data,\n });\n\n// 更新 session\n/**\n *\n * @param {string} uuid\n * @param {object} data\n * @returns\n */\nexport const putSession = (projectCode, uuid, data) =>\n request({\n method: 'put',\n url: `/api/v6.1/${projectCode}/session/${uuid}/update`,\n data,\n });\n\n// 刪除 session\nexport const deleteSession = (projectCode, uuid) =>\n request({\n method: 'delete',\n url: `/api/v6/${projectCode}/session/${uuid}/delete`,\n });\n\n// -------------- payment setting -----------\n// GET 金流設定\nexport const getPaymentSettings = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/paymentsettings/get`,\n });\n\n// 建立 金流設定\nexport const postPaymentSettings = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/paymentsettings/create`,\n data,\n });\n\n// 更新 金流設定\nexport const putPaymentSettings = (projectCode, data) =>\n request({\n method: 'put',\n url: `/api/v6/${projectCode}/paymentsettings/update`,\n data,\n });\n\n// -------------- Guest Sign Up -----------\n// GET 報名首頁資訊\nexport const getGuestSignUp = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/signup/form`,\n });\n\n// 來賓取得報名表單\nexport const getGuestSignUpForm = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/signup/columns`,\n });\n\n// 來賓報名\n/**\n *\n * @param {string} projectCode\n * @param {object} data { orderNo: num, values: {} }\n * @returns\n */\nexport const postGuestSignUp = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6.2/${projectCode}/signup`,\n data,\n });\n\n/**\n *\n * @param {string} projectCode\n * @param {string} orderNo 訂單編號\n * @returns\n */\nexport const getGuestSignUpResult = (projectCode, orderNo) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/signup/signupresult/${orderNo}`,\n });\n\n// -------------- Cache -----------\n/**\n *\n * @param {array} keys\n * @returns\n */\nexport const getServerCacheValues = (keys) =>\n request({\n method: 'get',\n url: `/api/v5/cache/getvalues`,\n params: {\n keys,\n },\n paramsSerializer: (params) => {\n return qs.stringify(params, { arrayFormat: 'repeat' });\n },\n });\n\n// -------------- system announcement -----------\n// get all system announcement\nexport const getSystemAnnouncements = () =>\n request({\n method: 'get',\n url: '/api/v6/sysannounce/get',\n });\n\n/**\n * post read announcement\n *\n * API 可以傳 array 的 seq,但是這邊還沒實作處理 query 值成 array\n * @param {int} seq\n * @returns\n */\nexport const postSystemAnnouncementsRead = (seq) =>\n request({\n method: 'post',\n url: `/api/v6/sysannounce/read?seqs=${seq}`,\n });\n\n// --------------- statistic ------------\n// 取得參加者出席率\nexport const getAttendeeCheckinSituation = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/statistic/get`,\n });\n\n// 匯出統計報表\nexport const postExportStatisticCheckinReport = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/statistic/export`,\n responseType: 'blob',\n });\n\n// post a new customize chart to list\nexport const postSingleCustomizeChart = (tokenId, projectId, data) =>\n request({\n method: 'post',\n url: `${testBaseUrl}/chartList`,\n data,\n });\n\n// get customize chart list\nexport const getCustomizeChartList = () =>\n request({\n method: 'get',\n url: `${testBaseUrl}/chartList`,\n });\n\n// delete customize a chart from list\nexport const deleteSingleCustomizeChart = (tokenId, projectId, seq) =>\n request({\n method: 'delete',\n url: `${testBaseUrl}/chartList/${seq}`,\n });\n\n// 家庭日相關\nexport const getFamilyDayForm = (projectCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/familydayformpage/get`,\n });\nexport const postFamilyForm = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/familydayformpage/create`,\n data,\n });\nexport const putFamilyForm = (projectCode, data) =>\n request({\n method: 'put',\n url: `/api/v6/${projectCode}/familydayformpage/update`,\n data,\n });\nexport const postValidateForm = (projectCode, data) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/familydayformpage/query`,\n data,\n });\n\n// 剩餘可報到人數\nexport const getCheckInQuota = () =>\n request({\n method: 'get',\n url: '/api/v6/checkinquota',\n });\n\n// 報到紀錄\nexport const getCheckInLogs = () =>\n request({\n method: 'get',\n url: '/api/v6/checkinquota/logs',\n });\n\n// 單筆報到詳細紀錄\nexport const getCheckInLogDetail = (seq) =>\n request({\n method: 'get',\n url: `/api/v6/checkinquota/log/${seq}/detail`,\n });\n\n// 攤位集點\nexport const getBoothEvent = (projectCode, uuid, userCode) =>\n request({\n method: 'get',\n url: `/api/v6/${projectCode}/BoothEvent/${uuid}${userCode && `?userCode=${userCode}`} `,\n });\n\n// 攤位集點兌獎\nexport const postRedeemPrize = (projectCode, prizeUuid, prizeToken) =>\n request({\n method: 'post',\n url: `/api/v6/${projectCode}/prize/${prizeUuid}/obtain?token=${prizeToken}`,\n });\n","var map = {\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"3XGk\";","// TODO: ant form 待更新 v4\n\nimport { forwardRef, useState, useEffect, useRef } from 'react';\nimport { Prompt, useHistory } from 'react-router';\nimport { Link } from 'react-router-dom';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { Form } from '@ant-design/compatible';\nimport '@ant-design/compatible/assets/index.css';\nimport { Input, Select, Mentions, message } from 'antd';\nimport { Center, Heading, useToast } from '@chakra-ui/react';\nimport i18next from 'i18next';\nimport cx from 'classnames';\nimport { useTranslation, Trans } from 'react-i18next';\n\nimport localeTw from 'antd/lib/locale/zh_TW';\nimport localeEn from 'antd/lib/locale/en_US';\n\nimport { ApiMessagesConstants } from '@Constants/apiMessagesConstants';\nimport { API_RETURN_CODE } from '@Constants/apiReturnCode';\n\nimport { useClearAllStates } from '@Hooks/useClearAllStates';\n\nimport { RenderedToast } from '@Components/toast';\n\nimport { parseBlobData, errorNotification } from './commonFunction';\nimport { POINTS_CANNOT_BE_NEGATIVE_403 } from './commonParameters';\n\nimport AntdErrorAlert from '../components/antdErrorAlert';\n\nimport * as actions from '../actions';\nimport { store } from '../store';\n\nimport styles from './commonHooks.scss';\n\nexport function inputFormItem(\n id,\n label,\n required,\n initialValue,\n type,\n formContent,\n className = '',\n placeholder = '',\n maxLength = 255,\n name = '',\n disabled = false,\n) {\n if (type === 'email') {\n return (\n \n {formContent.getFieldDecorator(id, {\n rules: [\n {\n type: 'email',\n message: `${i18next.t('common.typeValidEmail')}`,\n },\n {\n required,\n message: `${i18next.t('common.pleaseType')} ${name}`,\n },\n {\n validator: (rule, value, callback) => {\n if (value?.length > maxLength) {\n callback(`${i18next.t('common.isExceedMaximumLength')}(${maxLength})`);\n }\n\n callback();\n },\n },\n ],\n initialValue,\n })(\n ,\n )}\n \n );\n }\n return (\n \n {formContent.getFieldDecorator(id, {\n rules: [\n {\n required,\n message: `${i18next.t('common.pleaseType')} ${name}`,\n },\n {\n validator: (rule, value, callback) => {\n if (value?.length > maxLength) {\n callback(`${i18next.t('common.isExceedMaximumLength')}(${maxLength})`);\n }\n\n callback();\n },\n },\n ],\n initialValue,\n })(\n ,\n )}\n \n );\n}\n\nexport function tagFormItem(id, label, formContent, initialValue = [], maxTagTextLength = 1024) {\n return (\n \n {formContent.getFieldDecorator(id, {\n rules: [\n {\n required: false,\n type: 'array',\n validator: (rule, value, callback) => {\n let length = 0;\n\n value.forEach((element) => {\n length += element.length;\n });\n\n if (length > maxTagTextLength) {\n callback(`${i18next.t('common.isExceedMaximumLength')}(${maxTagTextLength})`);\n }\n\n callback();\n },\n },\n ],\n initialValue,\n })(\n ,\n )}\n \n );\n}\n\nexport function mentionsFormItem(\n id,\n label,\n required,\n formContent,\n initialValue = '',\n rows = null,\n optionInitialValue = [],\n placeholder,\n maxLength = 1024,\n name = '',\n getValueFromEvent,\n) {\n const { Option } = Mentions;\n\n return (\n \n {formContent.getFieldDecorator(id, {\n // trigger: 'onBlur',\n // valuePropName: 'defaultValue',\n initialValue,\n getValueFromEvent,\n rules: [\n {\n required,\n validator: (rule, value, callback) => {\n if (value.length > maxLength) {\n callback(`${i18next.t('common.isExceedMaximumLength')}(${maxLength})`);\n }\n\n if (value.length === 0) {\n callback(`${i18next.t('common.pleaseType')} ${name}`);\n }\n\n callback();\n },\n },\n ],\n })(\n \n {Object.keys(optionInitialValue).length > 0 &&\n Object.values(optionInitialValue).map((option) => {\n return (\n \n );\n })}\n ,\n )}\n \n );\n}\n\nexport const TextAreaFormItem = forwardRef((props, ref) => {\n const { id, label, required, placeholder, onChange, initialValue, formContent } = props;\n const { t } = useTranslation();\n const textareaRef = ref.current;\n function autoAdjustHeight() {\n textareaRef.style.height = 'auto';\n textareaRef.style.height = `${textareaRef.scrollHeight}px`;\n }\n return (\n \n {formContent.getFieldDecorator(id, {\n rules: [\n {\n required,\n message: `${t('common.pleaseType')} ${label}`,\n },\n ],\n initialValue,\n })(\n window.setTimeout(autoAdjustHeight, 0)}\n />,\n )}\n \n );\n});\n\n// call API 異常時的 Alert message\nexport const useServerFailedAlert = (onCloseStatement = null) => {\n const [isServerFailed, setIsServerFailed] = useState(false);\n const [serverErrorAlert, setServerErrorAlert] = useState(null);\n\n useEffect(() => {\n return () => {\n setIsServerFailed(false);\n setServerErrorAlert(null);\n };\n }, []);\n\n useEffect(() => {\n if (isServerFailed) {\n setServerErrorAlert(\n {\n setIsServerFailed(false);\n if (onCloseStatement) onCloseStatement();\n }}\n />,\n );\n } else {\n setServerErrorAlert(null);\n }\n }, [isServerFailed]);\n\n return [setIsServerFailed, serverErrorAlert];\n};\n\n// TODO: 待所有 API request/response 替換成 react-query 的寫法,就移除\nexport const useAPIResponseStatementEXP = (\n apiIsLoading,\n apiMessage,\n apiFailed,\n statements = () => {\n return {\n 200: () => {},\n 204: () => {},\n 400: () => {},\n 401: () => {},\n 403: () => {},\n 404: () => {},\n 500: () => {},\n commonStatement: () => {},\n errorStatement: () => {},\n };\n },\n pass = true,\n) => {\n const { t } = useTranslation();\n const toast = useToast();\n const history = useHistory();\n const dispatch = useDispatch();\n\n const [setIsServerFailed, serverErrorAlert] = useServerFailedAlert();\n const { clearAllStates } = useClearAllStates();\n\n function getErrorToast(id, title, duration = 10 * 1000) {\n return toast({\n id,\n status: 'error',\n position: 'top',\n duration,\n isClosable: true,\n render: ({ id, onClose }) => (\n \n ),\n });\n }\n\n function handle403ErrorMessage(data) {\n if (data?.msg === ApiMessagesConstants.UNAUTHORIZED) {\n dispatch(actions.getProfileAction.getProfile());\n\n return;\n }\n\n if (data?.msg === POINTS_CANNOT_BE_NEGATIVE_403) {\n message.error({\n content: t('common.pointsCannotBeNegative403ErrorMessage'),\n });\n }\n\n if (data?.msg === ApiMessagesConstants.PLAN_EXPIRED) {\n dispatch(actions.getProfileAction.getProfile());\n\n if (!toast.isActive(ApiMessagesConstants.PLAN_EXPIRED)) {\n getErrorToast(ApiMessagesConstants.PLAN_EXPIRED, t('common.expirationMessage'), 100 * 1000);\n }\n }\n }\n\n function handle404ErrorMessage(data) {\n if (data?.msg === ApiMessagesConstants.PROJECT_NOT_FOUND) {\n if (!toast.isActive(ApiMessagesConstants.PROJECT_NOT_FOUND)) {\n getErrorToast(ApiMessagesConstants.PROJECT_NOT_FOUND, t('common.eventNotFound'));\n }\n\n history.push('/');\n\n return;\n }\n\n if (data?.msg === ApiMessagesConstants.ADMIN_NOT_FOUND) {\n if (!toast.isActive(ApiMessagesConstants.ADMIN_NOT_FOUND)) {\n getErrorToast(ApiMessagesConstants.ADMIN_NOT_FOUND, t('common.adminNotFoun'));\n }\n\n dispatch(actions.logout());\n }\n }\n\n useEffect(() => {\n if (\n !apiIsLoading &&\n apiMessage !== '' &&\n (apiFailed === '' || apiFailed === null || apiFailed === false) &&\n apiMessage?.status >= 200 &&\n apiMessage.status < 300 &&\n apiMessage?.data &&\n pass\n ) {\n // 維護中\n if (apiMessage?.data?.returnCode === API_RETURN_CODE.module.maintenance) {\n toast({\n title: t('common.maintenance'),\n status: 'warning',\n duration: 5000,\n position: 'top',\n });\n\n history.push('/maintenance');\n return;\n }\n\n if (apiMessage?.data?.returnCode === 1) {\n if (\n apiMessage?.data?.msg === 'Event not found' ||\n apiMessage?.data?.msg === ApiMessagesConstants.PROJECT_NOT_FOUND\n ) {\n toast({\n title: t('common.eventNotFound'),\n status: 'error',\n duration: 5000,\n position: 'top',\n });\n\n history.push('/home');\n\n return;\n }\n }\n\n const { systemTimestamp } = apiMessage?.data;\n\n if (systemTimestamp) {\n dispatch(actions.setSystemTimestamp(systemTimestamp || null));\n }\n\n statements()?.[200] && statements()[200]();\n statements()?.[204] && statements()[204]();\n statements().commonStatement && statements().commonStatement();\n setIsServerFailed(false);\n\n return;\n }\n\n if (apiMessage?.status === 400 && !apiIsLoading) {\n statements()?.[400] && statements()[400]();\n statements().commonStatement && statements().commonStatement();\n statements().errorStatement && statements().errorStatement();\n setIsServerFailed(false);\n }\n\n if (apiMessage?.status === 401 && !apiIsLoading) {\n clearAllStates();\n errorNotification();\n statements()?.[401] && statements()[401]();\n statements().commonStatement && statements().commonStatement();\n statements().errorStatement && statements().errorStatement();\n setIsServerFailed(false);\n }\n\n if (apiMessage?.status === 403 && !apiIsLoading) {\n statements()?.[403] && statements()[403]();\n statements()?.commonStatement && statements().commonStatement();\n statements()?.errorStatement && statements().errorStatement();\n setIsServerFailed(false);\n\n if (\n apiMessage?.data?.returnCode === API_RETURN_CODE.admin.tokenExpired ||\n apiMessage?.data?.returnCode === API_RETURN_CODE.module.notFound\n ) {\n clearAllStates();\n errorNotification();\n setIsServerFailed(false);\n }\n\n if (apiMessage?.config?.responseType === 'blob') {\n parseBlobData(apiMessage.data || [], (result) => {\n handle403ErrorMessage(result);\n });\n\n return;\n }\n\n handle403ErrorMessage(apiMessage.data);\n }\n\n if (apiMessage?.status === 404 && !apiIsLoading) {\n statements()?.[404] && statements()[404]();\n statements().commonStatement && statements().commonStatement();\n statements().errorStatement && statements().errorStatement();\n setIsServerFailed(false);\n\n handle404ErrorMessage(apiMessage.data);\n }\n\n if (apiFailed && !apiMessage && !apiIsLoading && setIsServerFailed !== '') {\n setIsServerFailed(true);\n statements()?.[500] && statements()[500]();\n statements().errorStatement && statements().errorStatement();\n }\n }, [apiMessage, apiFailed, apiIsLoading, setIsServerFailed]);\n\n return [serverErrorAlert];\n};\n\n// 取得使用者目前的語言代號與 antd date picker 語言包\nexport const useGetUserLanguage = () => {\n const [language, setLanguage] = useState('default');\n const [locale, setLocale] = useState('zh-TW');\n\n const userLanguage =\n JSON.parse(window.localStorage.getItem('persist:env'))?.userLanguage || '\"default\"';\n\n useEffect(() => {\n switch (userLanguage) {\n case '\"default\"': {\n const browserLanguage = window.navigator.language;\n if (browserLanguage === 'zh-TW' || browserLanguage === '\"zh-TW\"') {\n setLanguage('zh-TW');\n } else {\n setLanguage(browserLanguage);\n }\n break;\n }\n default:\n if (userLanguage === 'zh-TW' || userLanguage === '\"zh-TW\"') {\n setLanguage('zh-TW');\n } else {\n setLanguage(userLanguage);\n }\n }\n }, [userLanguage]);\n\n useEffect(() => {\n if (language === 'zh-TW') {\n setLocale(localeTw);\n } else {\n setLocale(localeEn);\n }\n }, [language]);\n\n return { language, locale };\n};\n\n// 檢查所有在 array 的值不等於 undefined 和 null,並設定 useState 的值\n// 可能要改成可以設定很多 useState 的方式,也就是 setState 傳進來會是 array\nexport const checkVariablesAreNormalAndSetUseState = (variableArray, state, setState) => {\n let isNormal = false;\n if (variableArray?.length > 0) {\n isNormal = variableArray.every((variable) => {\n return variable !== undefined && variable !== null;\n });\n }\n if (isNormal) {\n setState(state);\n }\n};\n\n// TODO: 待優化\n// 取得網址特定位置(keyword)的 token or id,去取得多筆項目中的單一項目的 CRUD API\n// e.g.: 應用在 EmailEdit or SurveyFormEdit Component\nexport const usePathnameToken = (\n history,\n type = 'pathname',\n keyword = '',\n lastWord = '',\n initialValue,\n) => {\n const [token, setToken] = useState(initialValue);\n\n useEffect(() => {\n if (history?.location?.pathname && type === 'pathname') {\n const { pathname } = history.location;\n const keyWordIndex = pathname.indexOf(keyword);\n const lastWordIndex = pathname.indexOf(lastWord);\n const slicedPathname =\n lastWord && lastWordIndex !== 0 && lastWordIndex !== -1\n ? pathname.slice(keyWordIndex, lastWordIndex)\n : pathname.slice(keyWordIndex + keyword.length);\n\n if (slicedPathname) {\n setToken(slicedPathname);\n }\n\n return;\n }\n\n if (history?.location?.search && type === 'search') {\n const { search } = history.location;\n\n const allKeyValuePair = search\n .slice(1)\n .split('&')\n .map((keyValueString) => keyValueString.split('='))\n .map((keyValueArray) => {\n return {\n key: keyValueArray[0],\n value: keyValueArray[1] || '',\n };\n });\n\n const setTokenDone = allKeyValuePair.some((pair) => {\n if (pair.key === keyword) {\n if (pair.value === 'true') {\n setToken(true);\n\n return true;\n }\n\n if (pair.value === 'false') {\n setToken(false);\n\n return true;\n }\n\n setToken(pair.value);\n\n return true;\n }\n });\n\n if (!setTokenDone) {\n setToken('');\n }\n\n return;\n }\n\n setToken('');\n }, [history, keyword, lastWord]);\n\n return [token, setToken];\n};\n\nexport const useIsDevelopment = () => {\n const [isDevelopment, setIsDevelopment] = useState(false);\n\n useEffect(() => {\n if (process.env.NODE_ENV === 'development') {\n setIsDevelopment(true);\n } else if (process.env.NODE_ENV.includes('production')) {\n setIsDevelopment(false);\n }\n return () => {\n setIsDevelopment(false);\n };\n }, [process.env.NODE_ENV]);\n\n return isDevelopment;\n};\n\n// 表單/設定 尚未儲存的提示\nexport const useSaveNotYet = (message) => {\n const [isSavedNotYet, setIsSavedNotYet] = useState(false);\n const [prompt, setPrompt] = useState('');\n const isSaveNotYetRef = useRef(false);\n\n const { t } = useTranslation();\n\n useEffect(() => {\n window.addEventListener('beforeunload', (e) => {\n e.preventDefault();\n if (isSaveNotYetRef.current) {\n e.returnValue = '';\n }\n });\n\n return () => {\n setIsSavedNotYet(false);\n isSaveNotYetRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n isSaveNotYetRef.current = isSavedNotYet;\n setPrompt(\n ,\n );\n }, [isSavedNotYet]);\n\n return { setIsSavedNotYet, prompt, isSavedNotYet };\n};\n\n// 預設輸出的顏色格式為 hex rgba\nexport const useSettingColorPicker = (color = '#ffffff') => {\n const [currentColor, setCurrentColor] = useState(color);\n\n const handleChange = (color) => {\n let hexCode = color;\n let alpha = Math.round(255 * color.rgb.a).toString(16);\n\n if (alpha.length < 2) {\n alpha = `0${alpha}`;\n }\n\n if (color.hex === 'transparent') {\n hexCode = `#00000000`;\n } else {\n hexCode = `${color.hex}${alpha}`;\n }\n\n setCurrentColor(hexCode);\n };\n\n return [currentColor, setCurrentColor, handleChange];\n};\n\n// Before F5 or reloading, popping up alert window\nexport const useBeforeUnloadHint = (isSavedNotYet) => {\n const isSavedNotYetRef = useRef(false);\n\n useEffect(() => {\n return () => {\n isSavedNotYetRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n isSavedNotYetRef.current = isSavedNotYet;\n }, [isSavedNotYet]);\n\n useEffect(() => {\n window.addEventListener('beforeunload', (e) => {\n e.preventDefault();\n if (isSavedNotYetRef.current) {\n e.returnValue = '';\n }\n });\n }, []);\n\n return isSavedNotYetRef;\n};\n\n// do action after creating email draft\nexport const useActionAfterCreatingEmailDraft = (history, eventKey) => {\n const [editedKey, setEditedKey] = useState(null);\n const [isSelectedTemplate, setIsSelectedTemplate] = useState(false);\n\n useEffect(() => {\n if (editedKey && isSelectedTemplate) {\n history.push(`/email/${eventKey}/edit/${editedKey}`);\n store.dispatch(actions.initializeStates());\n }\n\n if (editedKey && !isSelectedTemplate) {\n store.dispatch(actions.initializeStates());\n }\n }, [history, editedKey, eventKey, isSelectedTemplate]);\n\n return [setIsSelectedTemplate, setEditedKey];\n};\n\nexport const usePagination = (initialPageSize = 15, initialPresentPage = 1) => {\n const [presentPage, setPresentPage] = useState(initialPresentPage);\n const [pageSize, setPageSize] = useState(initialPageSize);\n\n function getPresentPageContent(index) {\n if (presentPage === null || pageSize === null) return;\n\n const previousPage = (presentPage - 1) * pageSize;\n const thisPage = presentPage * pageSize;\n\n return index + 1 <= thisPage && index + 1 > previousPage;\n }\n\n return [getPresentPageContent, presentPage, setPresentPage, pageSize, setPageSize];\n};\n\n// check if account has a feature authorization\nexport const useAuthorizedFeature = (feature) => {\n const [isAuthorized, setIsAuthorized] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n\n const { userRoles } = useSelector((state) => state.accountFeature);\n const { isLoadingGetProfile, getProfileMessage, getProfileFailed } = useSelector(\n (state) => state.profile,\n );\n\n useEffect(() => {\n if (isLoadingGetProfile) {\n setIsLoading(true);\n }\n\n if (getProfileMessage && !isLoadingGetProfile) {\n setIsLoading(false);\n }\n\n if (getProfileFailed && !isLoadingGetProfile) {\n setIsLoading(false);\n }\n }, [getProfileMessage, isLoadingGetProfile, getProfileFailed]);\n\n const unAuthorizedDisplay = !isLoading && (\n
\n \n \n 您尚未有權限可以使用此功能,詳細的使用權限請見\n 方案\n \n \n
\n );\n\n useEffect(() => {\n // TODO: 應該改成 some function\n if (userRoles && userRoles?.includes(feature)) {\n setIsAuthorized(true);\n }\n\n if (userRoles && !userRoles?.includes(feature)) {\n setIsAuthorized(false);\n }\n }, [userRoles, feature]);\n\n return [isAuthorized, unAuthorizedDisplay];\n};\n","import i18next from 'i18next';\nimport { RenderedToast } from '@/components/toast';\n\nimport {\n ACTION_ERROR_DURATION,\n ACTION_DONE_DURATION,\n ACTION_INFO_DURATION,\n ACTION_WARNING_DURATION,\n} from '@Constants/durationConstants';\nimport { ApiMessagesConstants } from '@Constants/apiMessagesConstants';\n\nimport { getMillisecond } from '@Utils/getMillisecond';\n\nconst setToastConfig = ({\n toast,\n id,\n position,\n duration,\n onCloseComplete,\n noDuplicate,\n isReplaced,\n toastRef,\n ...rest\n}) => {\n const ref = toastRef;\n const config = {\n position,\n duration,\n onCloseComplete,\n render: ({ id, onClose }) => ,\n };\n\n // 相同 ref 的 toast 同時間只會出現一個,正在顯示中 toast 的會先被 close,才顯示新的 toast\n if (isReplaced) {\n if (ref.current) toast.close(ref.current);\n\n ref.current = toast({ ...config });\n return;\n }\n\n // 相同 id 的 toast 同時間只會出現一個\n // 若新的 toast 的 duration 和原先 toast 相同,則 duration 不會被刷新,\n // 如: 原先 duration: 5000ms,在經過 3000ms 後,觸發新的 toast(相同 id,duration 也是 5000ms),則 2000ms 過後 toast 就會被關閉\n // 和上面指定 ref 的情況不同的是: 新的 toast 只會更新原先 toast 的內容,不會增加新的 toast DOM 節點\n if (noDuplicate && toast.isActive(id)) {\n return toast.update(id, { ...config });\n }\n\n return toast({ id, ...config });\n};\n\nexport function popupToast({\n toast,\n id,\n position = 'top',\n title = 'info',\n description = '',\n status = 'info',\n duration,\n isClosable = true,\n onCloseComplete = () => {},\n noDuplicate = true,\n isReplaced,\n toastRef,\n}) {\n if (!toast) return;\n\n let config = {\n title: 'info',\n status: 'info',\n duration: 3000,\n };\n\n const lowerStatus = status.toLowerCase();\n\n if (lowerStatus === 'info') {\n config = {\n title: 'info',\n status: 'info',\n duration: ACTION_INFO_DURATION,\n };\n }\n if (lowerStatus === 'success') {\n config = {\n title: 'success',\n status: 'success',\n duration: ACTION_DONE_DURATION,\n };\n }\n if (lowerStatus === 'warning') {\n config = {\n title: 'warning',\n status: 'warning',\n duration: ACTION_WARNING_DURATION,\n };\n }\n if (lowerStatus === 'error') {\n config = {\n title: 'error',\n status: 'error',\n duration: ACTION_ERROR_DURATION,\n };\n }\n\n return setToastConfig({\n toast,\n toastRef,\n id,\n position,\n title: title || config.title,\n description,\n status: config.status,\n duration: duration || config.duration,\n isClosable,\n onCloseComplete,\n noDuplicate,\n isReplaced,\n });\n}\n\n// 403 unauthorized\nexport function popup403UnauthorizationToast({\n toast,\n id = ApiMessagesConstants.UNAUTHORIZED,\n position = 'top',\n title = i18next.t('common.unauthorizedFeatureMessage'),\n description = '',\n status = 'error',\n duration = getMillisecond(10),\n isClosable = true,\n onCloseComplete = () => {},\n noDuplicate = true,\n isReplaced,\n toastRef,\n}) {\n if (!toast) return;\n\n return setToastConfig({\n toast,\n toastRef,\n id,\n position,\n title,\n description,\n status,\n duration,\n isClosable,\n onCloseComplete,\n noDuplicate,\n isReplaced,\n });\n}\n","// 共用的參數\n// 與 commonVariables 不同的是:\n// commonParameters 是放置一些制式的參數,涵蓋整個專案的參數,通常為一串數字、字串。\n// commonVaraiabls 則是放置常用的變數,或是與 API response 值所對應的規則\n\n// header 的活動列表顯示數量的最大值,目前沒用到\nexport const eventListMaximun = 50;\n\n// 各欄位的最大字數限制\nexport const inputMaximunLength = 50;\n\nexport const chartTitleFontSize = 18;\n\n// header 在 576px 以下會變成 antd drawer 的形式\nexport const headerDrawerWidth = '70%';\n\n// RWD breakpoint\nexport const doubleLargeDeviceWidth = 1920;\nexport const largeDeviceWidth = 1280;\nexport const medium1024DeviceWidth = 1024;\nexport const mediumDeviceWidth = 992;\nexport const medium745DeviceWidth = 745;\nexport const smallDeviceWidth = 576;\n\n// 名單列表欄位的固定的 order by\nexport const idOrderByOfList = 0;\nexport const nameOrderByOfList = 1;\nexport const emailOrderByOfList = 2;\nexport const phoneOrderByOfList = 3;\n// 名單預設欄位數\nexport const NUMBER_OF_DEFAULT_PARTICIPANT_LIST_COLUMNS = 4;\n// 名單可新增欄位數(不包括系統預設欄位)\nexport const NUMBER_OF_CUSTOMIZE_PARTICIPANT_LIST_COLUMNS = 16;\n// 名單最大欄位數(預設欄位數 + 可新增欄位數)\nexport const NUMBER_OF_MAXIMUM_PARTICIPANT_LIST_COLUMNS =\n NUMBER_OF_DEFAULT_PARTICIPANT_LIST_COLUMNS + NUMBER_OF_CUSTOMIZE_PARTICIPANT_LIST_COLUMNS;\n\n// 初始的新手導覽步驟為 步驟二\nexport const initialTutorialActiveKey = '2';\n\n// header height\nexport const HEADER_HEIGHT_LARGE = 60;\nexport const HEADER_HEIGHT_MEDIUM = 50;\nexport const HEADER_HEIGHT_SMALL = 40;\n\nexport const EVENT_HEADER_HEIGHT = 60;\nexport const EVENT_HEADER_HEIGHT_SMALL = 40;\n\nexport const antdWarningAlertAbsoluteTop = '45';\n\n// ---------- API return message 相關 ----------\nexport const POINTS_CANNOT_BE_NEGATIVE_403 = 'Points cannot be negative.';\n\n// ---------- 表單相關 ------------\nexport const shortTextQuestion = 'shortText';\nexport const singleChoiceQuestion = 'singleChoice';\nexport const multipleChoicesQuestion = 'multipleChoices';\nexport const ratingQuestion = 'rating';\nexport const OTHER_CHOICE_VALUE = 'OTHER_CHOICE_VALUE';\nexport const OTHER_CHOICE_ID = 0;\nexport const OTHER_CHOICE_NAME = 'other';\n\n// ---------- support language ---------\nexport const EN_US = 'en-US';\n\n// ------------- App width ----------------\nexport const PHONE_DEVICE_WIDTH = '576px';\nexport const WHOLE_DEVICE_WDITH = '100%';\n\n// ---------- 來賓專屬頁面相關 ------------\nexport const indexPageMenuTypes = {\n eventInfo: 'eventInfo',\n surveyForm: 'surveyForm',\n externalUri: 'externalUri',\n booth: 'booth',\n};\n\n// --------- 系統相關 ---------\n// 目前最新版號\nexport const systemPresentVersion = '1.17.3';\n\n// 總時區表。資料來源: https://timezonedb.com/time-zones\nexport const timezoneList = {\n data: [\n {\n 'Country Code': 'AF',\n 'Country Name': 'Afghanistan',\n 'Time Zone': 'Asia/Kabul',\n 'GMT Offset': 'UTC +04:30',\n },\n {\n 'Country Code': 'AL',\n 'Country Name': 'Albania',\n 'Time Zone': 'Europe/Tirane',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'DZ',\n 'Country Name': 'Algeria',\n 'Time Zone': 'Africa/Algiers',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'AS',\n 'Country Name': 'American Samoa',\n 'Time Zone': 'Pacific/Pago_Pago',\n 'GMT Offset': 'UTC -11:00',\n },\n {\n 'Country Code': 'AD',\n 'Country Name': 'Andorra',\n 'Time Zone': 'Europe/Andorra',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'AO',\n 'Country Name': 'Angola',\n 'Time Zone': 'Africa/Luanda',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'AI',\n 'Country Name': 'Anguilla',\n 'Time Zone': 'America/Anguilla',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'AQ',\n 'Country Name': 'Antarctica',\n 'Time Zone': 'Antarctica/Casey',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'AQ',\n 'Country Name': 'Antarctica',\n 'Time Zone': 'Antarctica/Davis',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'AQ',\n 'Country Name': 'Antarctica',\n 'Time Zone': 'Antarctica/DumontDUrville',\n 'GMT Offset': 'UTC +10:00',\n },\n {\n 'Country Code': 'AQ',\n 'Country Name': 'Antarctica',\n 'Time Zone': 'Antarctica/Mawson',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'AQ',\n 'Country Name': 'Antarctica',\n 'Time Zone': 'Antarctica/McMurdo',\n 'GMT Offset': 'UTC +13:00',\n },\n {\n 'Country Code': 'AQ',\n 'Country Name': 'Antarctica',\n 'Time Zone': 'Antarctica/Palmer',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AQ',\n 'Country Name': 'Antarctica',\n 'Time Zone': 'Antarctica/Rothera',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AQ',\n 'Country Name': 'Antarctica',\n 'Time Zone': 'Antarctica/Syowa',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'AQ',\n 'Country Name': 'Antarctica',\n 'Time Zone': 'Antarctica/Troll',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'AQ',\n 'Country Name': 'Antarctica',\n 'Time Zone': 'Antarctica/Vostok',\n 'GMT Offset': 'UTC +06:00',\n },\n {\n 'Country Code': 'AG',\n 'Country Name': 'Antigua and Barbuda',\n 'Time Zone': 'America/Antigua',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/Buenos_Aires',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/Catamarca',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/Cordoba',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/Jujuy',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/La_Rioja',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/Mendoza',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/Rio_Gallegos',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/Salta',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/San_Juan',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/San_Luis',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/Tucuman',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AR',\n 'Country Name': 'Argentina',\n 'Time Zone': 'America/Argentina/Ushuaia',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'AM',\n 'Country Name': 'Armenia',\n 'Time Zone': 'Asia/Yerevan',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'AW',\n 'Country Name': 'Aruba',\n 'Time Zone': 'America/Aruba',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Antarctica/Macquarie',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Adelaide',\n 'GMT Offset': 'UTC +10:30',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Brisbane',\n 'GMT Offset': 'UTC +10:00',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Broken_Hill',\n 'GMT Offset': 'UTC +10:30',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Currie',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Darwin',\n 'GMT Offset': 'UTC +09:30',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Eucla',\n 'GMT Offset': 'UTC +08:45',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Hobart',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Lindeman',\n 'GMT Offset': 'UTC +10:00',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Lord_Howe',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Melbourne',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Perth',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'AU',\n 'Country Name': 'Australia',\n 'Time Zone': 'Australia/Sydney',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'AT',\n 'Country Name': 'Austria',\n 'Time Zone': 'Europe/Vienna',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'AZ',\n 'Country Name': 'Azerbaijan',\n 'Time Zone': 'Asia/Baku',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'BS',\n 'Country Name': 'Bahamas',\n 'Time Zone': 'America/Nassau',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'BH',\n 'Country Name': 'Bahrain',\n 'Time Zone': 'Asia/Bahrain',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'BD',\n 'Country Name': 'Bangladesh',\n 'Time Zone': 'Asia/Dhaka',\n 'GMT Offset': 'UTC +06:00',\n },\n {\n 'Country Code': 'BB',\n 'Country Name': 'Barbados',\n 'Time Zone': 'America/Barbados',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'BY',\n 'Country Name': 'Belarus',\n 'Time Zone': 'Europe/Minsk',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'BE',\n 'Country Name': 'Belgium',\n 'Time Zone': 'Europe/Brussels',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'BZ',\n 'Country Name': 'Belize',\n 'Time Zone': 'America/Belize',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'BJ',\n 'Country Name': 'Benin',\n 'Time Zone': 'Africa/Porto-Novo',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'BM',\n 'Country Name': 'Bermuda',\n 'Time Zone': 'Atlantic/Bermuda',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'BT',\n 'Country Name': 'Bhutan',\n 'Time Zone': 'Asia/Thimphu',\n 'GMT Offset': 'UTC +06:00',\n },\n {\n 'Country Code': 'BO',\n 'Country Name': 'Bolivia, Plurinational State of',\n 'Time Zone': 'America/La_Paz',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'BQ',\n 'Country Name': 'Bonaire, Sint Eustatius and Saba',\n 'Time Zone': 'America/Kralendijk',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'BA',\n 'Country Name': 'Bosnia and Herzegovina',\n 'Time Zone': 'Europe/Sarajevo',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'BW',\n 'Country Name': 'Botswana',\n 'Time Zone': 'Africa/Gaborone',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Araguaina',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Bahia',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Belem',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Boa_Vista',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Campo_Grande',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Cuiaba',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Eirunepe',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Fortaleza',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Maceio',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Manaus',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Noronha',\n 'GMT Offset': 'UTC -02:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Porto_Velho',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Recife',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Rio_Branco',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Santarem',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'BR',\n 'Country Name': 'Brazil',\n 'Time Zone': 'America/Sao_Paulo',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'IO',\n 'Country Name': 'British Indian Ocean Territory',\n 'Time Zone': 'Indian/Chagos',\n 'GMT Offset': 'UTC +06:00',\n },\n {\n 'Country Code': 'BN',\n 'Country Name': 'Brunei Darussalam',\n 'Time Zone': 'Asia/Brunei',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'BG',\n 'Country Name': 'Bulgaria',\n 'Time Zone': 'Europe/Sofia',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'BF',\n 'Country Name': 'Burkina Faso',\n 'Time Zone': 'Africa/Ouagadougou',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'BI',\n 'Country Name': 'Burundi',\n 'Time Zone': 'Africa/Bujumbura',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'KH',\n 'Country Name': 'Cambodia',\n 'Time Zone': 'Asia/Phnom_Penh',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'CM',\n 'Country Name': 'Cameroon',\n 'Time Zone': 'Africa/Douala',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Atikokan',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Blanc-Sablon',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Cambridge_Bay',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Creston',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Dawson',\n 'GMT Offset': 'UTC -08:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Dawson_Creek',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Edmonton',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Fort_Nelson',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Glace_Bay',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Goose_Bay',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Halifax',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Inuvik',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Iqaluit',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Moncton',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Nipigon',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Pangnirtung',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Rainy_River',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Rankin_Inlet',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Regina',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Resolute',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/St_Johns',\n 'GMT Offset': 'UTC -03:30',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Swift_Current',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Thunder_Bay',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Toronto',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Vancouver',\n 'GMT Offset': 'UTC -08:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Whitehorse',\n 'GMT Offset': 'UTC -08:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Winnipeg',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'CA',\n 'Country Name': 'Canada',\n 'Time Zone': 'America/Yellowknife',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'CV',\n 'Country Name': 'Cape Verde',\n 'Time Zone': 'Atlantic/Cape_Verde',\n 'GMT Offset': 'UTC -01:00',\n },\n {\n 'Country Code': 'KY',\n 'Country Name': 'Cayman Islands',\n 'Time Zone': 'America/Cayman',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'CF',\n 'Country Name': 'Central African Republic',\n 'Time Zone': 'Africa/Bangui',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'TD',\n 'Country Name': 'Chad',\n 'Time Zone': 'Africa/Ndjamena',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'CL',\n 'Country Name': 'Chile',\n 'Time Zone': 'America/Punta_Arenas',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'CL',\n 'Country Name': 'Chile',\n 'Time Zone': 'America/Santiago',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'CL',\n 'Country Name': 'Chile',\n 'Time Zone': 'Pacific/Easter',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'CN',\n 'Country Name': 'China',\n 'Time Zone': 'Asia/Shanghai',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'CN',\n 'Country Name': 'China',\n 'Time Zone': 'Asia/Urumqi',\n 'GMT Offset': 'UTC +06:00',\n },\n {\n 'Country Code': 'CX',\n 'Country Name': 'Christmas Island',\n 'Time Zone': 'Indian/Christmas',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'CC',\n 'Country Name': 'Cocos (Keeling) Islands',\n 'Time Zone': 'Indian/Cocos',\n 'GMT Offset': 'UTC +06:30',\n },\n {\n 'Country Code': 'CO',\n 'Country Name': 'Colombia',\n 'Time Zone': 'America/Bogota',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'KM',\n 'Country Name': 'Comoros',\n 'Time Zone': 'Indian/Comoro',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'CG',\n 'Country Name': 'Congo',\n 'Time Zone': 'Africa/Brazzaville',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'CD',\n 'Country Name': 'Congo, the Democratic Republic of the',\n 'Time Zone': 'Africa/Kinshasa',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'CD',\n 'Country Name': 'Congo, the Democratic Republic of the',\n 'Time Zone': 'Africa/Lubumbashi',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'CK',\n 'Country Name': 'Cook Islands',\n 'Time Zone': 'Pacific/Rarotonga',\n 'GMT Offset': 'UTC -10:00',\n },\n {\n 'Country Code': 'CR',\n 'Country Name': 'Costa Rica',\n 'Time Zone': 'America/Costa_Rica',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'HR',\n 'Country Name': 'Croatia',\n 'Time Zone': 'Europe/Zagreb',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'CU',\n 'Country Name': 'Cuba',\n 'Time Zone': 'America/Havana',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'CW',\n 'Country Name': 'Curaçao',\n 'Time Zone': 'America/Curacao',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'CY',\n 'Country Name': 'Cyprus',\n 'Time Zone': 'Asia/Famagusta',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'CY',\n 'Country Name': 'Cyprus',\n 'Time Zone': 'Asia/Nicosia',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'CZ',\n 'Country Name': 'Czech Republic',\n 'Time Zone': 'Europe/Prague',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'CI',\n 'Country Name': \"Côte d'Ivoire\",\n 'Time Zone': 'Africa/Abidjan',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'DK',\n 'Country Name': 'Denmark',\n 'Time Zone': 'Europe/Copenhagen',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'DJ',\n 'Country Name': 'Djibouti',\n 'Time Zone': 'Africa/Djibouti',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'DM',\n 'Country Name': 'Dominica',\n 'Time Zone': 'America/Dominica',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'DO',\n 'Country Name': 'Dominican Republic',\n 'Time Zone': 'America/Santo_Domingo',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'EC',\n 'Country Name': 'Ecuador',\n 'Time Zone': 'America/Guayaquil',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'EC',\n 'Country Name': 'Ecuador',\n 'Time Zone': 'Pacific/Galapagos',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'EG',\n 'Country Name': 'Egypt',\n 'Time Zone': 'Africa/Cairo',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'SV',\n 'Country Name': 'El Salvador',\n 'Time Zone': 'America/El_Salvador',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'GQ',\n 'Country Name': 'Equatorial Guinea',\n 'Time Zone': 'Africa/Malabo',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'ER',\n 'Country Name': 'Eritrea',\n 'Time Zone': 'Africa/Asmara',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'EE',\n 'Country Name': 'Estonia',\n 'Time Zone': 'Europe/Tallinn',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'ET',\n 'Country Name': 'Ethiopia',\n 'Time Zone': 'Africa/Addis_Ababa',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'FK',\n 'Country Name': 'Falkland Islands (Malvinas)',\n 'Time Zone': 'Atlantic/Stanley',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'FO',\n 'Country Name': 'Faroe Islands',\n 'Time Zone': 'Atlantic/Faroe',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'FJ',\n 'Country Name': 'Fiji',\n 'Time Zone': 'Pacific/Fiji',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'FI',\n 'Country Name': 'Finland',\n 'Time Zone': 'Europe/Helsinki',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'FR',\n 'Country Name': 'France',\n 'Time Zone': 'Europe/Paris',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'GF',\n 'Country Name': 'French Guiana',\n 'Time Zone': 'America/Cayenne',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'PF',\n 'Country Name': 'French Polynesia',\n 'Time Zone': 'Pacific/Gambier',\n 'GMT Offset': 'UTC -09:00',\n },\n {\n 'Country Code': 'PF',\n 'Country Name': 'French Polynesia',\n 'Time Zone': 'Pacific/Marquesas',\n 'GMT Offset': 'UTC -09:30',\n },\n {\n 'Country Code': 'PF',\n 'Country Name': 'French Polynesia',\n 'Time Zone': 'Pacific/Tahiti',\n 'GMT Offset': 'UTC -10:00',\n },\n {\n 'Country Code': 'TF',\n 'Country Name': 'French Southern Territories',\n 'Time Zone': 'Indian/Kerguelen',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'GA',\n 'Country Name': 'Gabon',\n 'Time Zone': 'Africa/Libreville',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'GM',\n 'Country Name': 'Gambia',\n 'Time Zone': 'Africa/Banjul',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'GE',\n 'Country Name': 'Georgia',\n 'Time Zone': 'Asia/Tbilisi',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'DE',\n 'Country Name': 'Germany',\n 'Time Zone': 'Europe/Berlin',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'DE',\n 'Country Name': 'Germany',\n 'Time Zone': 'Europe/Busingen',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'GH',\n 'Country Name': 'Ghana',\n 'Time Zone': 'Africa/Accra',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'GI',\n 'Country Name': 'Gibraltar',\n 'Time Zone': 'Europe/Gibraltar',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'GR',\n 'Country Name': 'Greece',\n 'Time Zone': 'Europe/Athens',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'GL',\n 'Country Name': 'Greenland',\n 'Time Zone': 'America/Danmarkshavn',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'GL',\n 'Country Name': 'Greenland',\n 'Time Zone': 'America/Godthab',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'GL',\n 'Country Name': 'Greenland',\n 'Time Zone': 'America/Scoresbysund',\n 'GMT Offset': 'UTC -01:00',\n },\n {\n 'Country Code': 'GL',\n 'Country Name': 'Greenland',\n 'Time Zone': 'America/Thule',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'GD',\n 'Country Name': 'Grenada',\n 'Time Zone': 'America/Grenada',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'GP',\n 'Country Name': 'Guadeloupe',\n 'Time Zone': 'America/Guadeloupe',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'GU',\n 'Country Name': 'Guam',\n 'Time Zone': 'Pacific/Guam',\n 'GMT Offset': 'UTC +10:00',\n },\n {\n 'Country Code': 'GT',\n 'Country Name': 'Guatemala',\n 'Time Zone': 'America/Guatemala',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'GG',\n 'Country Name': 'Guernsey',\n 'Time Zone': 'Europe/Guernsey',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'GN',\n 'Country Name': 'Guinea',\n 'Time Zone': 'Africa/Conakry',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'GW',\n 'Country Name': 'Guinea-Bissau',\n 'Time Zone': 'Africa/Bissau',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'GY',\n 'Country Name': 'Guyana',\n 'Time Zone': 'America/Guyana',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'HT',\n 'Country Name': 'Haiti',\n 'Time Zone': 'America/Port-au-Prince',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'VA',\n 'Country Name': 'Holy See (Vatican City State)',\n 'Time Zone': 'Europe/Vatican',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'HN',\n 'Country Name': 'Honduras',\n 'Time Zone': 'America/Tegucigalpa',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'HK',\n 'Country Name': 'Hong Kong',\n 'Time Zone': 'Asia/Hong_Kong',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'HU',\n 'Country Name': 'Hungary',\n 'Time Zone': 'Europe/Budapest',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'IS',\n 'Country Name': 'Iceland',\n 'Time Zone': 'Atlantic/Reykjavik',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'IN',\n 'Country Name': 'India',\n 'Time Zone': 'Asia/Kolkata',\n 'GMT Offset': 'UTC +05:30',\n },\n {\n 'Country Code': 'ID',\n 'Country Name': 'Indonesia',\n 'Time Zone': 'Asia/Jakarta',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'ID',\n 'Country Name': 'Indonesia',\n 'Time Zone': 'Asia/Jayapura',\n 'GMT Offset': 'UTC +09:00',\n },\n {\n 'Country Code': 'ID',\n 'Country Name': 'Indonesia',\n 'Time Zone': 'Asia/Makassar',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'ID',\n 'Country Name': 'Indonesia',\n 'Time Zone': 'Asia/Pontianak',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'IR',\n 'Country Name': 'Iran, Islamic Republic of',\n 'Time Zone': 'Asia/Tehran',\n 'GMT Offset': 'UTC +03:30',\n },\n {\n 'Country Code': 'IQ',\n 'Country Name': 'Iraq',\n 'Time Zone': 'Asia/Baghdad',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'IE',\n 'Country Name': 'Ireland',\n 'Time Zone': 'Europe/Dublin',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'IM',\n 'Country Name': 'Isle of Man',\n 'Time Zone': 'Europe/Isle_of_Man',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'IL',\n 'Country Name': 'Israel',\n 'Time Zone': 'Asia/Jerusalem',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'IT',\n 'Country Name': 'Italy',\n 'Time Zone': 'Europe/Rome',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'JM',\n 'Country Name': 'Jamaica',\n 'Time Zone': 'America/Jamaica',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'JP',\n 'Country Name': 'Japan',\n 'Time Zone': 'Asia/Tokyo',\n 'GMT Offset': 'UTC +09:00',\n },\n {\n 'Country Code': 'JE',\n 'Country Name': 'Jersey',\n 'Time Zone': 'Europe/Jersey',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'JO',\n 'Country Name': 'Jordan',\n 'Time Zone': 'Asia/Amman',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'KZ',\n 'Country Name': 'Kazakhstan',\n 'Time Zone': 'Asia/Almaty',\n 'GMT Offset': 'UTC +06:00',\n },\n {\n 'Country Code': 'KZ',\n 'Country Name': 'Kazakhstan',\n 'Time Zone': 'Asia/Aqtau',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'KZ',\n 'Country Name': 'Kazakhstan',\n 'Time Zone': 'Asia/Aqtobe',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'KZ',\n 'Country Name': 'Kazakhstan',\n 'Time Zone': 'Asia/Atyrau',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'KZ',\n 'Country Name': 'Kazakhstan',\n 'Time Zone': 'Asia/Oral',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'KZ',\n 'Country Name': 'Kazakhstan',\n 'Time Zone': 'Asia/Qostanay',\n 'GMT Offset': 'UTC +06:00',\n },\n {\n 'Country Code': 'KZ',\n 'Country Name': 'Kazakhstan',\n 'Time Zone': 'Asia/Qyzylorda',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'KE',\n 'Country Name': 'Kenya',\n 'Time Zone': 'Africa/Nairobi',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'KI',\n 'Country Name': 'Kiribati',\n 'Time Zone': 'Pacific/Enderbury',\n 'GMT Offset': 'UTC +13:00',\n },\n {\n 'Country Code': 'KI',\n 'Country Name': 'Kiribati',\n 'Time Zone': 'Pacific/Kiritimati',\n 'GMT Offset': 'UTC +14:00',\n },\n {\n 'Country Code': 'KI',\n 'Country Name': 'Kiribati',\n 'Time Zone': 'Pacific/Tarawa',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'KP',\n 'Country Name': \"Korea, Democratic People's Republic of\",\n 'Time Zone': 'Asia/Pyongyang',\n 'GMT Offset': 'UTC +09:00',\n },\n {\n 'Country Code': 'KR',\n 'Country Name': 'Korea, Republic of',\n 'Time Zone': 'Asia/Seoul',\n 'GMT Offset': 'UTC +09:00',\n },\n {\n 'Country Code': 'KW',\n 'Country Name': 'Kuwait',\n 'Time Zone': 'Asia/Kuwait',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'KG',\n 'Country Name': 'Kyrgyzstan',\n 'Time Zone': 'Asia/Bishkek',\n 'GMT Offset': 'UTC +06:00',\n },\n {\n 'Country Code': 'LA',\n 'Country Name': \"Lao People's Democratic Republic\",\n 'Time Zone': 'Asia/Vientiane',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'LV',\n 'Country Name': 'Latvia',\n 'Time Zone': 'Europe/Riga',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'LB',\n 'Country Name': 'Lebanon',\n 'Time Zone': 'Asia/Beirut',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'LS',\n 'Country Name': 'Lesotho',\n 'Time Zone': 'Africa/Maseru',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'LR',\n 'Country Name': 'Liberia',\n 'Time Zone': 'Africa/Monrovia',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'LY',\n 'Country Name': 'Libya',\n 'Time Zone': 'Africa/Tripoli',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'LI',\n 'Country Name': 'Liechtenstein',\n 'Time Zone': 'Europe/Vaduz',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'LT',\n 'Country Name': 'Lithuania',\n 'Time Zone': 'Europe/Vilnius',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'LU',\n 'Country Name': 'Luxembourg',\n 'Time Zone': 'Europe/Luxembourg',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'MO',\n 'Country Name': 'Macao',\n 'Time Zone': 'Asia/Macau',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'MK',\n 'Country Name': 'Macedonia, the Former Yugoslav Republic of',\n 'Time Zone': 'Europe/Skopje',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'MG',\n 'Country Name': 'Madagascar',\n 'Time Zone': 'Indian/Antananarivo',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'MW',\n 'Country Name': 'Malawi',\n 'Time Zone': 'Africa/Blantyre',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'MY',\n 'Country Name': 'Malaysia',\n 'Time Zone': 'Asia/Kuala_Lumpur',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'MY',\n 'Country Name': 'Malaysia',\n 'Time Zone': 'Asia/Kuching',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'MV',\n 'Country Name': 'Maldives',\n 'Time Zone': 'Indian/Maldives',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'ML',\n 'Country Name': 'Mali',\n 'Time Zone': 'Africa/Bamako',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'MT',\n 'Country Name': 'Malta',\n 'Time Zone': 'Europe/Malta',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'MH',\n 'Country Name': 'Marshall Islands',\n 'Time Zone': 'Pacific/Kwajalein',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'MH',\n 'Country Name': 'Marshall Islands',\n 'Time Zone': 'Pacific/Majuro',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'MQ',\n 'Country Name': 'Martinique',\n 'Time Zone': 'America/Martinique',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'MR',\n 'Country Name': 'Mauritania',\n 'Time Zone': 'Africa/Nouakchott',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'MU',\n 'Country Name': 'Mauritius',\n 'Time Zone': 'Indian/Mauritius',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'YT',\n 'Country Name': 'Mayotte',\n 'Time Zone': 'Indian/Mayotte',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Bahia_Banderas',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Cancun',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Chihuahua',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Hermosillo',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Matamoros',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Mazatlan',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Merida',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Mexico_City',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Monterrey',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Ojinaga',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'MX',\n 'Country Name': 'Mexico',\n 'Time Zone': 'America/Tijuana',\n 'GMT Offset': 'UTC -08:00',\n },\n {\n 'Country Code': 'FM',\n 'Country Name': 'Micronesia, Federated States of',\n 'Time Zone': 'Pacific/Chuuk',\n 'GMT Offset': 'UTC +10:00',\n },\n {\n 'Country Code': 'FM',\n 'Country Name': 'Micronesia, Federated States of',\n 'Time Zone': 'Pacific/Kosrae',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'FM',\n 'Country Name': 'Micronesia, Federated States of',\n 'Time Zone': 'Pacific/Pohnpei',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'MD',\n 'Country Name': 'Moldova, Republic of',\n 'Time Zone': 'Europe/Chisinau',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'MC',\n 'Country Name': 'Monaco',\n 'Time Zone': 'Europe/Monaco',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'MN',\n 'Country Name': 'Mongolia',\n 'Time Zone': 'Asia/Choibalsan',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'MN',\n 'Country Name': 'Mongolia',\n 'Time Zone': 'Asia/Hovd',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'MN',\n 'Country Name': 'Mongolia',\n 'Time Zone': 'Asia/Ulaanbaatar',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'ME',\n 'Country Name': 'Montenegro',\n 'Time Zone': 'Europe/Podgorica',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'MS',\n 'Country Name': 'Montserrat',\n 'Time Zone': 'America/Montserrat',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'MA',\n 'Country Name': 'Morocco',\n 'Time Zone': 'Africa/Casablanca',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'MZ',\n 'Country Name': 'Mozambique',\n 'Time Zone': 'Africa/Maputo',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'MM',\n 'Country Name': 'Myanmar',\n 'Time Zone': 'Asia/Yangon',\n 'GMT Offset': 'UTC +06:30',\n },\n {\n 'Country Code': 'NA',\n 'Country Name': 'Namibia',\n 'Time Zone': 'Africa/Windhoek',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'NR',\n 'Country Name': 'Nauru',\n 'Time Zone': 'Pacific/Nauru',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'NP',\n 'Country Name': 'Nepal',\n 'Time Zone': 'Asia/Kathmandu',\n 'GMT Offset': 'UTC +05:45',\n },\n {\n 'Country Code': 'NL',\n 'Country Name': 'Netherlands',\n 'Time Zone': 'Europe/Amsterdam',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'NC',\n 'Country Name': 'New Caledonia',\n 'Time Zone': 'Pacific/Noumea',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'NZ',\n 'Country Name': 'New Zealand',\n 'Time Zone': 'Pacific/Auckland',\n 'GMT Offset': 'UTC +13:00',\n },\n {\n 'Country Code': 'NZ',\n 'Country Name': 'New Zealand',\n 'Time Zone': 'Pacific/Chatham',\n 'GMT Offset': 'UTC +13:45',\n },\n {\n 'Country Code': 'NI',\n 'Country Name': 'Nicaragua',\n 'Time Zone': 'America/Managua',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'NE',\n 'Country Name': 'Niger',\n 'Time Zone': 'Africa/Niamey',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'NG',\n 'Country Name': 'Nigeria',\n 'Time Zone': 'Africa/Lagos',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'NU',\n 'Country Name': 'Niue',\n 'Time Zone': 'Pacific/Niue',\n 'GMT Offset': 'UTC -11:00',\n },\n {\n 'Country Code': 'NF',\n 'Country Name': 'Norfolk Island',\n 'Time Zone': 'Pacific/Norfolk',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'MP',\n 'Country Name': 'Northern Mariana Islands',\n 'Time Zone': 'Pacific/Saipan',\n 'GMT Offset': 'UTC +10:00',\n },\n {\n 'Country Code': 'NO',\n 'Country Name': 'Norway',\n 'Time Zone': 'Europe/Oslo',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'OM',\n 'Country Name': 'Oman',\n 'Time Zone': 'Asia/Muscat',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'PK',\n 'Country Name': 'Pakistan',\n 'Time Zone': 'Asia/Karachi',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'PW',\n 'Country Name': 'Palau',\n 'Time Zone': 'Pacific/Palau',\n 'GMT Offset': 'UTC +09:00',\n },\n {\n 'Country Code': 'PS',\n 'Country Name': 'Palestine, State of',\n 'Time Zone': 'Asia/Gaza',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'PS',\n 'Country Name': 'Palestine, State of',\n 'Time Zone': 'Asia/Hebron',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'PA',\n 'Country Name': 'Panama',\n 'Time Zone': 'America/Panama',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'PG',\n 'Country Name': 'Papua New Guinea',\n 'Time Zone': 'Pacific/Bougainville',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'PG',\n 'Country Name': 'Papua New Guinea',\n 'Time Zone': 'Pacific/Port_Moresby',\n 'GMT Offset': 'UTC +10:00',\n },\n {\n 'Country Code': 'PY',\n 'Country Name': 'Paraguay',\n 'Time Zone': 'America/Asuncion',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'PE',\n 'Country Name': 'Peru',\n 'Time Zone': 'America/Lima',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'PH',\n 'Country Name': 'Philippines',\n 'Time Zone': 'Asia/Manila',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'PN',\n 'Country Name': 'Pitcairn',\n 'Time Zone': 'Pacific/Pitcairn',\n 'GMT Offset': 'UTC -08:00',\n },\n {\n 'Country Code': 'PL',\n 'Country Name': 'Poland',\n 'Time Zone': 'Europe/Warsaw',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'PT',\n 'Country Name': 'Portugal',\n 'Time Zone': 'Atlantic/Azores',\n 'GMT Offset': 'UTC -01:00',\n },\n {\n 'Country Code': 'PT',\n 'Country Name': 'Portugal',\n 'Time Zone': 'Atlantic/Madeira',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'PT',\n 'Country Name': 'Portugal',\n 'Time Zone': 'Europe/Lisbon',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'PR',\n 'Country Name': 'Puerto Rico',\n 'Time Zone': 'America/Puerto_Rico',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'QA',\n 'Country Name': 'Qatar',\n 'Time Zone': 'Asia/Qatar',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'RO',\n 'Country Name': 'Romania',\n 'Time Zone': 'Europe/Bucharest',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Anadyr',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Barnaul',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Chita',\n 'GMT Offset': 'UTC +09:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Irkutsk',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Kamchatka',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Khandyga',\n 'GMT Offset': 'UTC +09:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Krasnoyarsk',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Magadan',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Novokuznetsk',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Novosibirsk',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Omsk',\n 'GMT Offset': 'UTC +06:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Sakhalin',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Srednekolymsk',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Tomsk',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Ust-Nera',\n 'GMT Offset': 'UTC +10:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Vladivostok',\n 'GMT Offset': 'UTC +10:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Yakutsk',\n 'GMT Offset': 'UTC +09:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Asia/Yekaterinburg',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Europe/Astrakhan',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Europe/Kaliningrad',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Europe/Kirov',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Europe/Moscow',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Europe/Samara',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Europe/Saratov',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Europe/Ulyanovsk',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'RU',\n 'Country Name': 'Russian Federation',\n 'Time Zone': 'Europe/Volgograd',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'RW',\n 'Country Name': 'Rwanda',\n 'Time Zone': 'Africa/Kigali',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'RE',\n 'Country Name': 'Réunion',\n 'Time Zone': 'Indian/Reunion',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'BL',\n 'Country Name': 'Saint Barthélemy',\n 'Time Zone': 'America/St_Barthelemy',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'SH',\n 'Country Name': 'Saint Helena, Ascension and Tristan da Cunha',\n 'Time Zone': 'Atlantic/St_Helena',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'KN',\n 'Country Name': 'Saint Kitts and Nevis',\n 'Time Zone': 'America/St_Kitts',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'LC',\n 'Country Name': 'Saint Lucia',\n 'Time Zone': 'America/St_Lucia',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'MF',\n 'Country Name': 'Saint Martin (French part)',\n 'Time Zone': 'America/Marigot',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'PM',\n 'Country Name': 'Saint Pierre and Miquelon',\n 'Time Zone': 'America/Miquelon',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'VC',\n 'Country Name': 'Saint Vincent and the Grenadines',\n 'Time Zone': 'America/St_Vincent',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'WS',\n 'Country Name': 'Samoa',\n 'Time Zone': 'Pacific/Apia',\n 'GMT Offset': 'UTC +14:00',\n },\n {\n 'Country Code': 'SM',\n 'Country Name': 'San Marino',\n 'Time Zone': 'Europe/San_Marino',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'ST',\n 'Country Name': 'Sao Tome and Principe',\n 'Time Zone': 'Africa/Sao_Tome',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'SA',\n 'Country Name': 'Saudi Arabia',\n 'Time Zone': 'Asia/Riyadh',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'SN',\n 'Country Name': 'Senegal',\n 'Time Zone': 'Africa/Dakar',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'RS',\n 'Country Name': 'Serbia',\n 'Time Zone': 'Europe/Belgrade',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'SC',\n 'Country Name': 'Seychelles',\n 'Time Zone': 'Indian/Mahe',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'SL',\n 'Country Name': 'Sierra Leone',\n 'Time Zone': 'Africa/Freetown',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'SG',\n 'Country Name': 'Singapore',\n 'Time Zone': 'Asia/Singapore',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'SX',\n 'Country Name': 'Sint Maarten (Dutch part)',\n 'Time Zone': 'America/Lower_Princes',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'SK',\n 'Country Name': 'Slovakia',\n 'Time Zone': 'Europe/Bratislava',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'SI',\n 'Country Name': 'Slovenia',\n 'Time Zone': 'Europe/Ljubljana',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'SB',\n 'Country Name': 'Solomon Islands',\n 'Time Zone': 'Pacific/Guadalcanal',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'SO',\n 'Country Name': 'Somalia',\n 'Time Zone': 'Africa/Mogadishu',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'ZA',\n 'Country Name': 'South Africa',\n 'Time Zone': 'Africa/Johannesburg',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'GS',\n 'Country Name': 'South Georgia and the South Sandwich Islands',\n 'Time Zone': 'Atlantic/South_Georgia',\n 'GMT Offset': 'UTC -02:00',\n },\n {\n 'Country Code': 'SS',\n 'Country Name': 'South Sudan',\n 'Time Zone': 'Africa/Juba',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'ES',\n 'Country Name': 'Spain',\n 'Time Zone': 'Africa/Ceuta',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'ES',\n 'Country Name': 'Spain',\n 'Time Zone': 'Atlantic/Canary',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'ES',\n 'Country Name': 'Spain',\n 'Time Zone': 'Europe/Madrid',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'LK',\n 'Country Name': 'Sri Lanka',\n 'Time Zone': 'Asia/Colombo',\n 'GMT Offset': 'UTC +05:30',\n },\n {\n 'Country Code': 'SD',\n 'Country Name': 'Sudan',\n 'Time Zone': 'Africa/Khartoum',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'SR',\n 'Country Name': 'Suriname',\n 'Time Zone': 'America/Paramaribo',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'SJ',\n 'Country Name': 'Svalbard and Jan Mayen',\n 'Time Zone': 'Arctic/Longyearbyen',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'SZ',\n 'Country Name': 'Swaziland',\n 'Time Zone': 'Africa/Mbabane',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'SE',\n 'Country Name': 'Sweden',\n 'Time Zone': 'Europe/Stockholm',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'CH',\n 'Country Name': 'Switzerland',\n 'Time Zone': 'Europe/Zurich',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'SY',\n 'Country Name': 'Syrian Arab Republic',\n 'Time Zone': 'Asia/Damascus',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'TW',\n 'Country Name': 'Taiwan, Province of China',\n 'Time Zone': 'Asia/Taipei',\n 'GMT Offset': 'UTC +08:00',\n },\n {\n 'Country Code': 'TJ',\n 'Country Name': 'Tajikistan',\n 'Time Zone': 'Asia/Dushanbe',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'TZ',\n 'Country Name': 'Tanzania, United Republic of',\n 'Time Zone': 'Africa/Dar_es_Salaam',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'TH',\n 'Country Name': 'Thailand',\n 'Time Zone': 'Asia/Bangkok',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'TL',\n 'Country Name': 'Timor-Leste',\n 'Time Zone': 'Asia/Dili',\n 'GMT Offset': 'UTC +09:00',\n },\n {\n 'Country Code': 'TG',\n 'Country Name': 'Togo',\n 'Time Zone': 'Africa/Lome',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'TK',\n 'Country Name': 'Tokelau',\n 'Time Zone': 'Pacific/Fakaofo',\n 'GMT Offset': 'UTC +13:00',\n },\n {\n 'Country Code': 'TO',\n 'Country Name': 'Tonga',\n 'Time Zone': 'Pacific/Tongatapu',\n 'GMT Offset': 'UTC +13:00',\n },\n {\n 'Country Code': 'TT',\n 'Country Name': 'Trinidad and Tobago',\n 'Time Zone': 'America/Port_of_Spain',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'TN',\n 'Country Name': 'Tunisia',\n 'Time Zone': 'Africa/Tunis',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'TR',\n 'Country Name': 'Turkey',\n 'Time Zone': 'Europe/Istanbul',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'TM',\n 'Country Name': 'Turkmenistan',\n 'Time Zone': 'Asia/Ashgabat',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'TC',\n 'Country Name': 'Turks and Caicos Islands',\n 'Time Zone': 'America/Grand_Turk',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'TV',\n 'Country Name': 'Tuvalu',\n 'Time Zone': 'Pacific/Funafuti',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'UG',\n 'Country Name': 'Uganda',\n 'Time Zone': 'Africa/Kampala',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'UA',\n 'Country Name': 'Ukraine',\n 'Time Zone': 'Europe/Kiev',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'UA',\n 'Country Name': 'Ukraine',\n 'Time Zone': 'Europe/Simferopol',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'UA',\n 'Country Name': 'Ukraine',\n 'Time Zone': 'Europe/Uzhgorod',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'UA',\n 'Country Name': 'Ukraine',\n 'Time Zone': 'Europe/Zaporozhye',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'AE',\n 'Country Name': 'United Arab Emirates',\n 'Time Zone': 'Asia/Dubai',\n 'GMT Offset': 'UTC +04:00',\n },\n {\n 'Country Code': 'GB',\n 'Country Name': 'United Kingdom',\n 'Time Zone': 'Europe/London',\n 'GMT Offset': 'UTC',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Adak',\n 'GMT Offset': 'UTC -10:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Anchorage',\n 'GMT Offset': 'UTC -09:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Boise',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Chicago',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Denver',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Detroit',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Indiana/Indianapolis',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Indiana/Knox',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Indiana/Marengo',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Indiana/Petersburg',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Indiana/Tell_City',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Indiana/Vevay',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Indiana/Vincennes',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Indiana/Winamac',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Juneau',\n 'GMT Offset': 'UTC -09:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Kentucky/Louisville',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Kentucky/Monticello',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Los_Angeles',\n 'GMT Offset': 'UTC -08:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Menominee',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Metlakatla',\n 'GMT Offset': 'UTC -09:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/New_York',\n 'GMT Offset': 'UTC -05:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Nome',\n 'GMT Offset': 'UTC -09:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/North_Dakota/Beulah',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/North_Dakota/Center',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/North_Dakota/New_Salem',\n 'GMT Offset': 'UTC -06:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Phoenix',\n 'GMT Offset': 'UTC -07:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Sitka',\n 'GMT Offset': 'UTC -09:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'America/Yakutat',\n 'GMT Offset': 'UTC -09:00',\n },\n {\n 'Country Code': 'US',\n 'Country Name': 'United States',\n 'Time Zone': 'Pacific/Honolulu',\n 'GMT Offset': 'UTC -10:00',\n },\n {\n 'Country Code': 'UM',\n 'Country Name': 'United States Minor Outlying Islands',\n 'Time Zone': 'Pacific/Midway',\n 'GMT Offset': 'UTC -11:00',\n },\n {\n 'Country Code': 'UM',\n 'Country Name': 'United States Minor Outlying Islands',\n 'Time Zone': 'Pacific/Wake',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'UY',\n 'Country Name': 'Uruguay',\n 'Time Zone': 'America/Montevideo',\n 'GMT Offset': 'UTC -03:00',\n },\n {\n 'Country Code': 'UZ',\n 'Country Name': 'Uzbekistan',\n 'Time Zone': 'Asia/Samarkand',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'UZ',\n 'Country Name': 'Uzbekistan',\n 'Time Zone': 'Asia/Tashkent',\n 'GMT Offset': 'UTC +05:00',\n },\n {\n 'Country Code': 'VU',\n 'Country Name': 'Vanuatu',\n 'Time Zone': 'Pacific/Efate',\n 'GMT Offset': 'UTC +11:00',\n },\n {\n 'Country Code': 'VE',\n 'Country Name': 'Venezuela, Bolivarian Republic of',\n 'Time Zone': 'America/Caracas',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'VN',\n 'Country Name': 'Viet Nam',\n 'Time Zone': 'Asia/Ho_Chi_Minh',\n 'GMT Offset': 'UTC +07:00',\n },\n {\n 'Country Code': 'VG',\n 'Country Name': 'Virgin Islands, British',\n 'Time Zone': 'America/Tortola',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'VI',\n 'Country Name': 'Virgin Islands, U.S.',\n 'Time Zone': 'America/St_Thomas',\n 'GMT Offset': 'UTC -04:00',\n },\n {\n 'Country Code': 'WF',\n 'Country Name': 'Wallis and Futuna',\n 'Time Zone': 'Pacific/Wallis',\n 'GMT Offset': 'UTC +12:00',\n },\n {\n 'Country Code': 'EH',\n 'Country Name': 'Western Sahara',\n 'Time Zone': 'Africa/El_Aaiun',\n 'GMT Offset': 'UTC +01:00',\n },\n {\n 'Country Code': 'YE',\n 'Country Name': 'Yemen',\n 'Time Zone': 'Asia/Aden',\n 'GMT Offset': 'UTC +03:00',\n },\n {\n 'Country Code': 'ZM',\n 'Country Name': 'Zambia',\n 'Time Zone': 'Africa/Lusaka',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'ZW',\n 'Country Name': 'Zimbabwe',\n 'Time Zone': 'Africa/Harare',\n 'GMT Offset': 'UTC +02:00',\n },\n {\n 'Country Code': 'AX',\n 'Country Name': 'Åland Islands',\n 'Time Zone': 'Europe/Mariehamn',\n 'GMT Offset': 'UTC +02:00',\n },\n ],\n};\n","import { Trans } from 'react-i18next';\nimport { notification, message } from 'antd';\nimport moment from 'moment';\nimport qrcodeGenerator from 'qrcode-generator';\nimport axios from 'axios';\nimport i18next from 'i18next';\n\nimport { FileAPIMessages } from '@Constants/fileConstants';\n\nimport { timeFormatYMDHMZ } from './commonVariable';\nimport { OTHER_CHOICE_ID } from './commonParameters';\n\nimport * as API from '../api';\n\nexport function getBaseURL(infix = '') {\n const baseURL = `https://funevent${infix}.azurewebsites.net`;\n\n return baseURL;\n}\n\nexport function getEnvironmentBaseURL() {\n const devUrl = getBaseURL('-backend-dev');\n const stageUrl = getBaseURL('-backend-stage');\n const liveUrl = getBaseURL('-backend');\n const LOCAL_SERVER_HOST = devUrl;\n const { origin } = window.location;\n\n if (process.env.NODE_ENV === 'development') return LOCAL_SERVER_HOST;\n if (origin) {\n if (origin.includes('entry-dev')) {\n return devUrl;\n }\n if (origin.includes('entry-stage')) {\n return stageUrl;\n }\n\n return liveUrl;\n }\n\n return stageUrl;\n}\n\n// 頁面 URL\nexport function getAppUrl() {\n const { origin } = window.location;\n return process.env.NODE_ENV === 'development' ? `${origin}/#` : `${origin}/app/#`;\n}\n\n// 活動報到平台 URL\nexport function getOnSiteAppUrl() {\n const { origin } = window.location;\n return process.env.NODE_ENV === 'development'\n ? 'http://localhost:3002/onsite'\n : `${origin}/onsite`;\n}\n\nexport const getUserLanguage = () => {\n let systemLanguage = 'en-US';\n if (\n JSON.parse(window.localStorage.getItem('persist:env')) === undefined ||\n JSON.parse(window.localStorage.getItem('persist:env')) === null\n ) {\n return systemLanguage;\n }\n const { userLanguage } = JSON.parse(window.localStorage.getItem('persist:env'));\n switch (userLanguage) {\n case '\"en-US\"':\n systemLanguage = 'en-US';\n break;\n case '\"zh-TW\"':\n systemLanguage = 'zh-TW';\n break;\n case '\"default\"':\n systemLanguage = window.navigator.language;\n break;\n default:\n systemLanguage = 'en-US';\n }\n\n return systemLanguage;\n};\n\n// 檢查密碼是否包含英文與數字,有的話回傳 true;反之\nexport function checkPassword(password) {\n let checkPasswordEnglish = false;\n let checkPasswordNumber = false;\n for (let i = 0; i < password.length; i += 1) {\n if (\n (password.charCodeAt(i) >= 65 && password.charCodeAt(i) <= 90) ||\n (password.charCodeAt(i) >= 97 && password.charCodeAt(i) <= 122)\n ) {\n checkPasswordEnglish = true;\n } else if (password.charCodeAt(i) >= 48 && password.charCodeAt(i) <= 57) {\n checkPasswordNumber = true;\n }\n }\n\n if (checkPasswordEnglish && checkPasswordNumber) {\n return true;\n }\n\n return false;\n}\n\n// TODO:待修改成 RegExp\n// 檢查 email 值含 \"@\" 符號\n// \"@\" 後面要有字串\n// 不能以 \"@\" 開頭\n// 不能有兩個以上的 \"@\"\n// 至少要有一個 \".\"\n// \".\" 前後都要有字元\n// \".\" 的前一個字元不能是 \"@\"\nexport function checkValidEmailFormat(emailValue) {\n if (!emailValue) return false;\n\n const AT_CHAR_CODE = 64;\n const POINT_CHAR_CODE = 46;\n // 字元數量\n let atCharacterCount = null;\n let pointCharacterCount = null;\n // 字元位置\n let atCharacterPoistion = null;\n\n const emailValueToString = emailValue.toString();\n\n if (!emailValueToString) return;\n\n if (emailValueToString.charCodeAt(0) === AT_CHAR_CODE) {\n // 不能以 @ 開頭\n return false;\n }\n\n for (let i = 0; i < emailValueToString.length; i += 1) {\n const charCode = emailValueToString.charCodeAt(i);\n\n // 遇到 @ 就 + 1 數量, 數量不能超過 1\n if (charCode === AT_CHAR_CODE) {\n atCharacterPoistion = i;\n atCharacterCount += 1;\n }\n if (atCharacterCount > 1) {\n return false;\n }\n\n // @ 後面至少三個字元\n if (charCode === AT_CHAR_CODE && emailValueToString[i + 3] === undefined) {\n return false;\n }\n\n if (charCode === POINT_CHAR_CODE) {\n pointCharacterCount += 1;\n }\n\n // 以下為 . 在 @ 後面的規則\n // . 前後至少都要有一個字元\n // . 前面不能是 @\n if (\n i > atCharacterPoistion &&\n charCode === POINT_CHAR_CODE &&\n (emailValueToString[i - 1] === undefined ||\n emailValueToString[i + 1] === undefined ||\n emailValueToString[i - 1] === '@')\n ) {\n return false;\n }\n }\n\n // 沒有 @ 或 .\n if (atCharacterCount === null || pointCharacterCount === null) {\n return false;\n }\n\n return true;\n}\n\n// 台灣手機電話 檢查\nexport function checkValidCellPhoneFormat(phoneValue) {\n if (!phoneValue) return false;\n const phoneValueToString = phoneValue?.toString();\n if (!phoneValueToString) return false;\n\n const regexPattern = /^09[0-9]{8}$/;\n const internationalRegexPattern = /^[+]8869[0-9]{8}$/;\n\n const isPatternTestPass = regexPattern?.test(phoneValue);\n const isInternationalPatternTestPass = internationalRegexPattern?.test(phoneValue);\n\n if (isPatternTestPass || isInternationalPatternTestPass) {\n return true;\n }\n\n return false;\n}\n\n// 檢查物件的 key 的長度(主要用於檢查 store 的 state 收到 API 的 response 了沒,\n// 若沒有,就會是 state 設定的初始值,目前都設定初始值為 {},因此沒收到的話,以下結果的陣列長度都會是 0;反之)\nexport function checkObjectLength(globalState) {\n const objectLength = Object.keys(globalState).length;\n return objectLength;\n}\n\n// unlayer initialize\nexport const initializeUnlayerEditor = (unlayer, id, tagData = '') => {\n const editor = unlayer.createEditor({\n id,\n displayMode: 'email',\n locale: getUserLanguage(),\n tools: {\n form: { enabled: false },\n timer: { enabled: false },\n video: { enabled: false },\n },\n features: { stockImages: false },\n safeHtml: true,\n mergeTags: {\n ...tagData,\n },\n });\n\n return editor;\n};\n\nexport const mergeTagsKeyAndValue = (name, value) => ({\n name,\n value: `{{${value}}}`,\n});\n\n// TODO: 換變數名稱,與上面做區隔,前面只有一個大括號\nexport const emailTitleMergeTagsKeyAndValue = (name, value) => ({\n name,\n value: `${value}}}`,\n});\n\n// 錯誤提示框,預設是 401 的錯誤提示\nexport function errorNotification(\n message = Error Message,\n description = (\n Oops! The account is unauthorized.\n ),\n) {\n return notification.error({\n key: 'unauthorized',\n message,\n description,\n duration: 8,\n });\n}\n\n// 參加者名單列表 API response 的資料與 Table 的格式不符,因此用此函式轉換成 Table 可以用的格式\nexport function getTransformedColumns(columns) {\n // response 回來的 orderBy 會亂掉,所以先排序\n columns.sort((a, b) => a.orderBy - b.orderBy);\n\n let transformedColumns = [];\n columns.forEach((column) => {\n const columnObject = { dataIndex: column.orderBy.toString(), title: column.name, width: 150 };\n transformedColumns = [...transformedColumns, columnObject];\n });\n\n return transformedColumns;\n}\n\n// 匯出檔案,blob 形式\nexport const exportBlobFile = (data, fileName, fileNameExtension = 'xlsx') => {\n const blob = new Blob([data]);\n const url = window.URL.createObjectURL(blob);\n const linkElement = document.createElement('a');\n linkElement.href = url;\n linkElement.setAttribute('download', `${fileName}.${fileNameExtension}`);\n document.body.appendChild(linkElement);\n linkElement.click();\n document.body.removeChild(linkElement);\n};\n\n// 取得當前分頁的內容\nexport const getPresentPageContent = (index, presentPage, pageSize) => {\n if (presentPage === null || pageSize === null) return undefined;\n const previousPage = (presentPage - 1) * pageSize;\n const thisPage = presentPage * pageSize;\n return index + 1 <= thisPage && index + 1 > previousPage;\n};\n\n// 取得當前時間並轉換顯示的格式\nexport const getNowTimeAndTransferFormat = () => {\n const nowTime = new Date();\n const transferNowTime = moment(nowTime).format(timeFormatYMDHMZ);\n return transferNowTime;\n};\n\n// 字串是否 ellipsis\nexport const getIsStringEllipsis = (e) => {\n return e.offsetWidth < e.scrollWidth;\n};\n\n// 排序問卷有包含\"其它\"選項的題型,如單選題和多選題,0 預設為\"其它\"選項\nexport const sortSurveyFormChoicesQuestionIncludedOther = (a, b) => {\n if (a !== OTHER_CHOICE_ID && b !== OTHER_CHOICE_ID) return Number(a) - Number(b);\n\n if (a === OTHER_CHOICE_ID) return 1;\n\n if (b === OTHER_CHOICE_ID) return -1;\n};\n\n// 取得排序結果\nexport const getSortedResult = (a, b, locales = 'en') => {\n const index = a.toString().localeCompare(b.toString(), locales);\n return index;\n};\n\nexport const transformServerWebImageToBase64 = (imageUrl, onload) => {\n return new Promise((resolve, reject) => {\n if (!imageUrl) {\n resolve('');\n return;\n }\n\n axios\n .get(imageUrl, { responseType: 'blob' })\n .then((res) => {\n if (!res?.data) return;\n\n if (!res.data?.type || !res.data.type.includes('image')) {\n message.error(\n \n 解析網路圖片失敗,請使用正確的圖片類型\n ,\n );\n return;\n }\n\n const reader = new FileReader();\n\n reader.readAsDataURL(res.data);\n\n reader.onloadend = () => {\n onload && onload();\n\n const base64URI = reader.result;\n\n if (base64URI) resolve(base64URI);\n };\n\n reader.onerror = () => {\n reject('ERROR');\n };\n })\n .catch((error) => {\n reject(error);\n });\n });\n};\n\n// get uploaded image's Base64 URL\nexport const getBase64URLOfUploadedImage = (e, isShownFileName = false, onload) => {\n return new Promise((resolve, reject) => {\n let imageUri = '';\n let fileName = '';\n\n if (e?.target?.files.length === 0) return;\n const fileObject = e.target.files[0];\n fileName = e.target.files[0].name;\n\n if (fileObject?.type === '' || !fileObject.type.includes('image')) {\n message.error(\n 上傳失敗,請上傳圖片類型的檔案,\n );\n return;\n }\n\n const reader = new FileReader();\n reader.readAsDataURL(fileObject);\n\n reader.onload = () => {\n onload && onload();\n\n if (reader.result) {\n imageUri = reader.result;\n\n if (isShownFileName) {\n resolve({ imageUri, fileName });\n } else {\n resolve(imageUri);\n }\n\n return;\n }\n\n resolve('NO RESULT');\n };\n\n reader.onerror = () => {\n reject('ERROR');\n };\n });\n};\n\nexport const getUploadedImageLink = async (e) => {\n const result = {\n imageLink: '',\n message: '',\n returnCode: 0,\n filename: '',\n };\n\n if (!e?.target && !e?.attachments) return result;\n\n const formData = new FormData();\n const fileObject = e.attachments ? e.attachments[0] : e?.target?.files[0];\n result.filename = fileObject?.name || '';\n formData.append('file', fileObject);\n\n if (!formData) return result;\n\n if (fileObject?.type === '' || !fileObject?.type.includes('image')) {\n result.message = i18next.t('common.uploadImageFailed');\n\n message.error(上傳失敗,請上傳圖片類型的檔案);\n\n return { ...result, returnCode: 1 };\n }\n\n await API.postFileUpload(formData)\n .then((res) => {\n if (!res?.data) {\n result.message = 'invalid format';\n result.returnCode = 1;\n return result;\n }\n\n const { data, msg, returnCode } = res.data;\n\n if ((returnCode !== 0 && !returnCode) || !msg) {\n result.message = 'invalid format';\n result.returnCode = 1;\n return result;\n }\n\n result.message = msg;\n result.returnCode = returnCode;\n\n if (returnCode === 1) {\n if (msg === FileAPIMessages.FILE_SIZE_GREATER_THAN_100000_BYTES) {\n result.message = i18next.t('common.uploadImageOutOfMaxSize');\n\n message.error(\n 上傳失敗,檔案大小超過 1MB,\n );\n return result;\n }\n\n message.error(msg);\n return result;\n }\n\n if (!data) {\n result.message = 'invalid format';\n result.returnCode = 1;\n return result;\n }\n\n result.imageLink = data;\n })\n .catch((error) => {\n result.message = error.message;\n result.returnCode = 1;\n message.error(`${error.message} 上傳圖片失敗` || 'ERROR STATUS');\n });\n\n return result;\n};\n\n/**\n *\n * @param {string[]} array\n * @returns\n */\nexport const getLongestValueIndex = (array) => {\n let theLongestIndex = null;\n const lengthArray = array.map((element) => element.length);\n\n theLongestIndex = lengthArray.indexOf(Math.max(...lengthArray));\n\n return theLongestIndex;\n};\n\n/**\n *\n * @param {string} content : ;\n * @param {number} typeNumber\n * @param {string} errorCorrectionLevel\n * @param {string} mode\n * @returns {string} default source: base64 data url, otherwise, empty string\n */\nexport const generateQRCodeResource = (\n content,\n typeNumber = 0,\n errorCorrectionLevel = 'M',\n mode = 'Byte',\n) =>\n /**\n *\n * @param {number} cellSize\n * @param {string} createType data url, svg, image\n */\n (cellSize, createType = 'dataURL') => {\n const qr = qrcodeGenerator(typeNumber, errorCorrectionLevel);\n\n if (!content) return '';\n qr.addData(content, mode);\n qr.make();\n\n let qrResource = '';\n\n if (createType === 'dataURL') {\n qrResource = qr.createDataURL(cellSize);\n }\n\n if (createType === 'svg') {\n qrResource = qr.createSvgTag({ cellSize, scalable: true });\n }\n\n if (createType === 'image') {\n qrResource = qr.createImgTag(cellSize);\n }\n\n return qrResource;\n };\n\n/**\n * parse blob data\n * if data is returnCode 1 or other API failed, JSON.parse reader.result\n */\nexport const parseBlobData = async (blobData, onLoad, onError) => {\n const JSON_TYPE = 'application/json';\n const reader = new FileReader();\n let result = '';\n\n const isBlobType = blobData instanceof Blob;\n\n if (!isBlobType) {\n return '';\n }\n\n reader.readAsText(blobData);\n\n reader.onload = () => {\n if (blobData.type === JSON_TYPE) {\n result = JSON.parse(reader.result);\n onLoad && onLoad(result);\n return;\n }\n\n onLoad && onLoad(result);\n };\n\n reader.onerror = () => {\n onError && onError();\n };\n\n return result;\n};\n","// 使用 redux-persist 在 localStorage 的 item 名稱\nexport const localStoargePersistRoot = 'persist:root';\n\n// TODO: 若無用,可移除\n// 伺服器設定和寄件設定的欄位中斷點,裝置寬度小於 745px 時每個欄位會變成滿版\nexport const breakpointOfEmailAndEmailSettingInput = 745;\n// 表單欄位的 layout 基準值\nexport const formItemColSpan = 12;\n\n// time foramt\nexport const timeFormatYMDHMZ = 'YYYY-MM-DD HH:mm Z';\nexport const timeFormatYMDHM = 'YYYY-MM-DD HH:mm';\nexport const timeFormatYMDHMS = 'YYYY-MM-DD HH:mm:ss';\n\n// 帳號方案\nexport const roleType = {\n default: 'default',\n annual: 'annual',\n};\n\n// 帳號 role feature\nexport const userRoleFeature = {\n sendSMS: 'SendSMS',\n downloadQRImage: 'DownloadQRImage',\n healthyForm: 'HealthyForm',\n surveyForm: 'SurveyForm',\n indexPage: 'IndexPage',\n badge: 'Badge',\n anonymousSurveyForm: 'AnonymousSurveyForm',\n mailServer: 'MailServer',\n};\n\n// 帳號方案,目前僅應用在個人專屬頁面,PRO 以上才可使用攤位集點\nexport const PLANS = {\n Free: 1,\n Basic: 2,\n Advanced: 3,\n Pro: 4,\n 'Pro+': 5,\n 'Pro++': 6,\n};\n","import { getAppUrl } from '@Utils/commonFunction';\n\nexport const DEFAULT_EVENT_TIME_ZONE = {\n value: 'Asia/Taipei(UTC +08:00)',\n label: 'Asia/Taipei(UTC +08:00)',\n};\n\nexport const MODULE_TYPE = {\n project: 0,\n participant: 1,\n participantColumn: 2,\n badge: 3,\n healthyForm: 4,\n surveyForm: 5,\n indexPage: 6,\n email: 7,\n sms: 8,\n session: 9,\n ticketType: 10,\n ticket: 11,\n code: 15,\n};\n\nexport const MODULE_ACTION_TYPE = {\n create: 0,\n update: 1,\n patch: 2,\n delete: 3,\n};\n\n/**\n *\n * @param {string} eventKey projectCode\n * @param {string} uuid 報名首頁識別碼\n * @returns {string} url\n */\nexport const getSignUpUrl = (eventKey, uuid) => {\n if (!eventKey || !uuid) return '';\n\n return `${getAppUrl()}/guest/${eventKey}/sign-up/${uuid}`;\n};\n\nexport const getCustomSignUpUrl = (eventKey, uuid) => {\n if (!eventKey || !uuid) return '';\n\n return `${getAppUrl()}/guest/${eventKey}/custom-sign-up/${uuid}`;\n};\n","export const FileAPIMessages = {\n FILE_SIZE_GREATER_THAN_100000_BYTES: 'File size greater than 1 MB',\n};\n\nexport const TERMS_OF_USE_AND_PRIVACY_POLICY_URL =\n 'https://confcdnnode2.azureedge.net/pdf/%E6%9C%8D%E5%8B%99%E6%A2%9D%E6%AC%BE%E5%8F%8A%E9%9A%B1%E7%A7%81%E6%AC%8A%E6%94%BF%E7%AD%96.pdf';\n","import { EMAIL_TYPE, DEFAULT_SENDER_EMAIL } from '@Constants/emailConstant';\nimport { RECEIVER_TYPE } from '@Constants/receiverConstant';\n\nimport * as actionTypes from './actionTypes';\nimport * as API from './api';\n\nexport const setIsOnline = (isOnline) => ({\n type: actionTypes.SET_IS_ONLINE,\n isOnline,\n});\n\n// 設定當前頁面的 inner width\nexport const setWindowInnerWidth = (width) => ({\n type: actionTypes.SET_WINDOW_INNER_WIDTH,\n width,\n});\n\n// 是否第一次使用(藉由啟動碼有無最後使用時間判定)\nexport const getIsDoneFirstTimeAction = {\n getIsDoneFirstTime: () => {\n return (dispatch) => {\n dispatch(getIsDoneFirstTimeAction.getIsDoneFirstTImePending());\n API.getIsDoneFirstTime()\n .then((res) => dispatch(getIsDoneFirstTimeAction.getIsDoneFirstTimeFulfiled(res)))\n .catch((error) => dispatch(getIsDoneFirstTimeAction.getIsDoneFirstTimeFailure(error)));\n };\n },\n getIsDoneFirstTImePending: () => ({\n type: actionTypes.GET_IS_DONE_FIRST_TIME_PENDING,\n }),\n getIsDoneFirstTimeFulfiled: (data) => ({\n type: actionTypes.GET_IS_DONE_FIRST_TIME_FULFILLED,\n data,\n }),\n getIsDoneFirstTimeFailure: (error) => ({\n type: actionTypes.GET_IS_DONE_FIRST_TIME_FAILURE,\n error,\n }),\n};\nexport const setIsDoneFirstTime = (isDone) => ({\n type: actionTypes.IS_DONE_FIRST_TIME,\n isDone,\n});\n\n// 切換 導覽 active key\nexport const postTutorialsActiveKey = (key) => ({\n type: actionTypes.POST_TUTORIALS_ACTIVE_KEY,\n key,\n});\n\nexport const setIsShowPriorSettingBlock = () => ({\n type: actionTypes.SET_IS_SHOW_PRIOR_SETTING_BLOCK,\n});\n\nexport const setListNoticeShow = (key) => ({\n type: actionTypes.SET_LIST_NOTICE_SHOW,\n key,\n});\n\nexport const setIsOpenedSmsEditInstructionPanel = (isOpened) => ({\n type: actionTypes.SET_IS_OPENED_SMS_EDIT_INSTRUCTION_PANEL,\n isOpened,\n});\n\n// left-top hint\nexport const setIsHideRightBottomHint = (isHidden) => ({\n type: actionTypes.SET_IS_HIDDEN_RIGHT_BOTTOM_HINT,\n isHidden,\n});\n\nexport const setIsHiddenEmailTemplateHint = (isHidden) => ({\n type: actionTypes.SET_IS_HIDDEN_EMAIL_TEMPLATE_HINT,\n isHidden,\n});\n\nexport const setIsHiddenHealthFormHint = (isHidden) => ({\n type: actionTypes.SET_IS_HIDDEN_HEALTH_FORM_HINT,\n isHidden,\n});\n\nexport const setIsHiddenTutorialTabHint = (isHidden) => ({\n type: actionTypes.SET_IS_HIDDEN_TUTORIAL_TAB_HINT,\n isHidden,\n});\n\n// 名單 Email 格式檢查\nexport const setIsEmailFormatChecked = (isChecked) => ({\n type: actionTypes.SET_IS_EMAIL_FORMAT_CHECKED,\n isChecked,\n});\n\n// 名單 phone 格式檢查\nexport const setIsCellPhoneFormatChecked = (isChecked) => ({\n type: actionTypes.SET_IS_CELL_PHONE_FORMAT_CHECKED,\n isChecked,\n});\n\n// 是否第一次造訪平台\nexport const setIsVisitFirstTime = (isFirstTime) => ({\n type: actionTypes.SET_IS_VISIT_FIRST_TIME,\n isFirstTime,\n});\n\n// 不顯示標籤租用資訊 toast\nexport const setIsNotBadgeLabelMachineRentInformationShown = (isChecked) => ({\n type: actionTypes.SET_IS_NOT_BADGE_LABEL_MACHINE_RENT_INFORMATION_SHOWN,\n isChecked,\n});\n\n// 初始化所有 state\nexport const initializeAllStates = () => ({\n type: actionTypes.INITIALIZE_ALL_STATES,\n});\n\n// 初始化選定的 state\nexport const initializeStates = () => ({\n type: actionTypes.INITIALIZE_STATES_FULFILLED,\n});\n\n// SET LANGUAGE\nexport const setUserLanguage = (language) => ({\n type: actionTypes.SET_USER_LANGUAGE,\n data: language,\n});\n\n// 成功登入後,設定使用者 token\nexport const setUserAuthenticated = (token) => ({\n type: actionTypes.SET_USER_AUTHENTICATED,\n token,\n});\n\nexport const setUserRoles = (roles) => ({\n type: actionTypes.SET_USER_ROLES,\n roles,\n});\n\n// 是否有其它裝置登入\nexport const setIsLoggedIn = (isLoggedIn) => ({\n type: actionTypes.SET_IS_LOGGED_IN,\n isLoggedIn,\n});\n\nexport const logout = () => ({\n type: actionTypes.LOGOUT,\n});\n\n// 設定目前選擇的 Event\nexport const switchEvent = (eventInfo = {}) => ({\n type: actionTypes.SWITCH_EVENT,\n data: eventInfo,\n});\n\n// ------ 頁面尚未儲存的提示阻擋 ----------\n// survey form edit\nexport const setIsSurveyFormEditSavedNotYet = (toggle) => ({\n type: actionTypes.SET_IS_SURVEY_FORM_EDIT_SAVED_NOT_YET,\n toggle,\n});\n\n// index page edit\nexport const setIsIndexPageEditSavedNotYet = (toggle) => ({\n type: actionTypes.SET_IS_INDEX_PAGE_EDIT_SAVED_NOT_YET,\n toggle,\n});\n\n// badge edit\nexport const setIsBadgeEditSavedNotYet = (toggle) => ({\n type: actionTypes.SET_IS_BADGE_EDIT_SAVED_NOT_YET,\n toggle,\n});\n\n// -------系統相關 --------------\n\n// 設定 server timestamp\nexport const setSystemTimestamp = (timestamp) => ({\n type: actionTypes.SET_SYSTEM_TIMESTAMP,\n timestamp,\n});\n\n// 信箱驗證\nexport const postRegisterAuthenticatedPending = () => ({\n type: actionTypes.POST_REGISTER_AUTHENTICATED_PENDING,\n});\n\nexport const postRegisterAuthenticatedSuccess = (data) => ({\n type: actionTypes.POST_REGISTER_AUTHENTICATED_FULFILLED,\n data,\n});\n\nexport const postRegisterAuthenticatedFailure = (error) => ({\n type: actionTypes.POST_REGISTER_AUTHENTICATED_FAILURE,\n error,\n});\n\nexport const postRegisterAuthenticated = (token) => {\n return (dispatch) => {\n dispatch(postRegisterAuthenticatedPending());\n API.postRegisterAuthenticated(token)\n .then((res) => dispatch(postRegisterAuthenticatedSuccess(res)))\n .catch((error) => dispatch(postRegisterAuthenticatedFailure(error)));\n };\n};\n\n// 重發驗證信\nexport const reSendRegisterAuthenticatedPending = () => ({\n type: actionTypes.RESEND_REGISTER_AUTHENTICATED_PENDING,\n});\n\nexport const reSendRegisterAuthenticatedSuccess = (data) => ({\n type: actionTypes.RESEND_REGISTER_AUTHENTICATED_FULFILLED,\n data,\n});\n\nexport const reSendRegisterAuthenticatedFailure = (error) => ({\n type: actionTypes.RESEND_REGISTER_AUTHENTICATED_FAILURE,\n error,\n});\n\nexport const reSendRegisterAuthenticated = (account) => {\n return (dispatch) => {\n dispatch(reSendRegisterAuthenticatedPending());\n API.reSendRegisterAuthenticated(account)\n .then((res) => dispatch(reSendRegisterAuthenticatedSuccess(res)))\n .catch((error) => dispatch(reSendRegisterAuthenticatedFailure(error)));\n };\n};\n\n// 註冊\nexport const postRegisterPending = () => ({\n type: actionTypes.POST_REGISTER_PENDING,\n});\nexport const postRegisterSuccess = (data) => ({\n type: actionTypes.POST_REGISTER_FULFILLED,\n data,\n});\nexport const postRegisterFailure = (error) => ({\n type: actionTypes.POST_REGISTER_FAILURE,\n error,\n});\n\nexport const postRegister = (\n account,\n password,\n name,\n company,\n cellPhone,\n taxIDNumber,\n industry,\n) => {\n return (dispatch) => {\n dispatch(postRegisterPending());\n API.postRegister(account, password, name, company, cellPhone, taxIDNumber, industry)\n .then((res) => dispatch(postRegisterSuccess(res.data)))\n .catch((error) => dispatch(postRegisterFailure(error)));\n };\n};\n\n// 註冊時,檢查帳號可否使用\nexport const checkRepeatAccountPending = () => ({\n type: actionTypes.CHECK_REPEAT_ACCOUNT_PENDING,\n});\n\nexport const checkRepeatAccountSuccess = (data) => ({\n type: actionTypes.CHECK_REPEAT_ACCOUNT_FULFILLED,\n data,\n});\n\nexport const checkRepeatAccountFailure = (error) => ({\n type: actionTypes.CHECK_REPEAT_ACCOUNT_FAILURE,\n error,\n});\n\nexport const checkRepeatAccount = (account) => {\n return (dispatch) => {\n dispatch(checkRepeatAccountPending());\n API.checkRepeatAccount(account)\n .then((res) => dispatch(checkRepeatAccountSuccess(res.data)))\n .catch((error) => dispatch(checkRepeatAccountFailure(error)));\n };\n};\n\n// 檢查登入\nexport const checkLoginPending = () => ({\n type: actionTypes.CHECK_LOGIN_PENDING,\n});\n\nexport const checkLoginSuccess = (data) => ({\n type: actionTypes.CHECK_LOGIN_FULFILLED,\n data,\n});\n\nexport const checkLoginFailure = (error) => ({\n type: actionTypes.CHECK_LOGIN_FAILURE,\n error,\n});\n\nexport const checkLogin = (account, password) => {\n return (dispatch) => {\n dispatch(checkLoginPending());\n API.checkLogin(account, password)\n .then((res) => dispatch(checkLoginSuccess(res)))\n .catch((error) => dispatch(checkLoginFailure(error)));\n };\n};\n\n// 檢查 token 是否過期\nexport const checkTokenExpiredAction = {\n checkTokenExpired: () => {\n return (dispatch) => {\n dispatch(checkTokenExpiredAction.checkTokenExpiredPending());\n API.checkTokenExpired()\n .then((res) => dispatch(checkTokenExpiredAction.checkTokenExpiredFulfilled(res)))\n .catch((error) => dispatch(checkTokenExpiredAction.checkTokenExpiredFailed(error)));\n };\n },\n\n checkTokenExpiredPending: () => ({\n type: actionTypes.CHECK_TOKEN_EXPIRED_PENDING,\n }),\n checkTokenExpiredFulfilled: (data) => ({\n type: actionTypes.CHECK_TOKEN_EXPIRED_FULFILLED,\n data,\n }),\n checkTokenExpiredFailed: (error) => ({\n type: actionTypes.CHECK_TOKEN_EXPIRED_FAILURE,\n error,\n }),\n};\n\n// 忘記密碼發送重設密碼信件\nexport const sendForgotPasswordEmailPending = () => ({\n type: actionTypes.SEND_FORGOT_PASSWORD_EMAIL_PENDING,\n});\n\nexport const sendForgotPasswordEmailSuccess = (data) => ({\n type: actionTypes.SEND_FORGOT_PASSWORD_EMAIL_FULFILLED,\n data,\n});\n\nexport const sendForgotPasswordEmailFailure = (error) => ({\n type: actionTypes.SEND_FORGOT_PASSWORD_EMAIL_FAILURE,\n error,\n});\n\nexport const sendForgotPasswordEmail = (account) => {\n return (dispatch) => {\n dispatch(sendForgotPasswordEmailPending());\n API.sendForgotPasswordEmail(account)\n .then((res) => dispatch(sendForgotPasswordEmailSuccess(res)))\n .catch((error) => dispatch(sendForgotPasswordEmailFailure(error)));\n };\n};\n\n// 重設密碼\nexport const resetNewPasswordPending = () => ({\n type: actionTypes.RESET_NEW_PASSWORD_PENDING,\n});\n\nexport const resetNewPasswordSuccess = (data) => ({\n type: actionTypes.RESET_NEW_PASSWORD_FULFILLED,\n data,\n});\n\nexport const resetNewPasswordFailure = (error) => ({\n type: actionTypes.RESET_NEW_PASSWORD_FAILURE,\n error,\n});\n\nexport const resetNewPassword = (token, password) => {\n return (dispatch) => {\n dispatch(resetNewPasswordPending());\n API.resetNewPassword(token, password)\n .then((res) => dispatch(resetNewPasswordSuccess(res)))\n .catch((error) => dispatch(resetNewPasswordFailure(error)));\n };\n};\n\n// ------------- device code -----------------\n// 取得啟動碼 list\nexport const getDeviceCodeListAction = {\n getDeviceCodeList: (projectCode) => {\n return (dispatch) => {\n dispatch(getDeviceCodeListAction.getDeviceCodeListPending());\n API.getDeviceCodeList(projectCode)\n .then((res) => dispatch(getDeviceCodeListAction.getDeviceCodeListFulfilled(res)))\n .catch((error) => dispatch(getDeviceCodeListAction.getDeviceCodeListFailed(error)));\n };\n },\n getDeviceCodeListPending: () => ({\n type: actionTypes.GET_DEVICE_CODE_LIST_PENDING,\n }),\n getDeviceCodeListFulfilled: (data) => ({\n type: actionTypes.GET_DEVICE_CODE_LIST_FULFILLED,\n data,\n }),\n getDeviceCodeListFailed: (error) => ({\n type: actionTypes.GET_DEVICE_CODE_LIST_FAILURE,\n error,\n }),\n};\n\n// logout device code\nexport const getDisuseDeviceCodePending = () => ({\n type: actionTypes.GET_DISUSE_DEVICE_CODE_PENDING,\n});\nexport const getDisuseDeviceCodeFulfilled = (data) => ({\n type: actionTypes.GET_DISUSE_DEVICE_CODE_FULFILLED,\n data,\n});\nexport const getDisuseDeviceCodeFailure = (error) => ({\n type: actionTypes.GET_DISUSE_DEVICE_CODE_FAILURE,\n error,\n});\nexport const getDisuseDeviceCode = (projectCode, deviceSeq) => {\n return (dispatch) => {\n dispatch(getDisuseDeviceCodePending());\n API.getDisuseDeviceCode(projectCode, deviceSeq)\n .then((res) => dispatch(getDisuseDeviceCodeFulfilled(res)))\n .catch((error) => dispatch(getDisuseDeviceCodeFailure(error)));\n };\n};\n\n// create a new device code\nexport const postCreateDeviceCodePending = () => ({\n type: actionTypes.POST_CREATE_DEVICE_CODE_PENDING,\n});\nexport const postCreateDeviceCodeFulfilled = (data) => ({\n type: actionTypes.POST_CREATE_DEVICE_CODE_FULFILLED,\n data,\n});\nexport const postCreateDeviceCodeFailure = (error) => ({\n type: actionTypes.POST_CREATE_DEVICE_CODE_FAILURE,\n error,\n});\nexport const postCreateDeviceCode = (projectCode) => {\n return (dispatch) => {\n dispatch(postCreateDeviceCodePending());\n API.postCreateDeviceCode(projectCode)\n .then((res) => dispatch(postCreateDeviceCodeFulfilled(res)))\n .catch((error) => dispatch(postCreateDeviceCodeFailure(error)));\n };\n};\n\n// delete a device code\nexport const deleteDeviceCodePending = () => ({\n type: actionTypes.DELETE_DEVICE_CODE_PENDING,\n});\nexport const deleteDeviceCodeFulfilled = (data) => ({\n type: actionTypes.DELETE_DEVICE_CODE_FULFILLED,\n data,\n});\nexport const deleteDeviceCodeFailure = (error) => ({\n type: actionTypes.DELETE_DEVICE_CODE_FAILURE,\n error,\n});\nexport const deleteDeviceCode = (projectCode, deviceSeq) => {\n return (dispatch) => {\n dispatch(deleteDeviceCodePending());\n API.deleteDeviceCode(projectCode, deviceSeq)\n .then((res) => dispatch(deleteDeviceCodeFulfilled(res)))\n .catch((error) => dispatch(deleteDeviceCodeFailure(error)));\n };\n};\n\n// ------------- booth device code -----------------\n// 取得攤位啟動碼 list\nexport const getBoothDeviceCodeListAction = {\n getBoothDeviceCodeList: (projectCode, deviceSeq) => {\n return (dispatch) => {\n dispatch(getBoothDeviceCodeListAction.getBoothDeviceCodeListPending());\n API.getBoothDeviceCodeList(projectCode, deviceSeq)\n .then((res) => dispatch(getBoothDeviceCodeListAction.getBoothDeviceCodeListFulfilled(res)))\n .catch((error) =>\n dispatch(getBoothDeviceCodeListAction.getBoothDeviceCodeListFailed(error)),\n );\n };\n },\n getBoothDeviceCodeListPending: () => ({\n type: actionTypes.GET_BOOTH_DEVICE_CODE_LIST_PENDING,\n }),\n getBoothDeviceCodeListFulfilled: (data) => ({\n type: actionTypes.GET_BOOTH_DEVICE_CODE_LIST_FULFILLED,\n data,\n }),\n getBoothDeviceCodeListFailed: (error) => ({\n type: actionTypes.GET_BOOTH_DEVICE_CODE_LIST_FAILURE,\n error,\n }),\n};\n\n// logout booth device code\nexport const getDisuseBoothDeviceCodePending = () => ({\n type: actionTypes.GET_DISUSE_BOOTH_DEVICE_CODE_PENDING,\n});\nexport const getDisuseBoothDeviceCodeFulfilled = (data) => ({\n type: actionTypes.GET_DISUSE_BOOTH_DEVICE_CODE_FULFILLED,\n data,\n});\nexport const getDisuseBoothDeviceCodeFailure = (error) => ({\n type: actionTypes.GET_DISUSE_BOOTH_DEVICE_CODE_FAILURE,\n error,\n});\nexport const getDisuseBoothDeviceCode = (projectCode, deviceSeq) => {\n return (dispatch) => {\n dispatch(getDisuseBoothDeviceCodePending());\n API.getDisuseBoothDeviceCode(projectCode, deviceSeq)\n .then((res) => dispatch(getDisuseBoothDeviceCodeFulfilled(res)))\n .catch((error) => dispatch(getDisuseBoothDeviceCodeFailure(error)));\n };\n};\n\n// create a new booth device code\nexport const postCreateBoothDeviceCodePending = () => ({\n type: actionTypes.POST_CREATE_BOOTH_DEVICE_CODE_PENDING,\n});\nexport const postCreateBoothDeviceCodeFulfilled = (data) => ({\n type: actionTypes.POST_CREATE_BOOTH_DEVICE_CODE_FULFILLED,\n data,\n});\nexport const postCreateBoothDeviceCodeFailure = (error) => ({\n type: actionTypes.POST_CREATE_BOOTH_DEVICE_CODE_FAILURE,\n error,\n});\nexport const postCreateBoothDeviceCode = (projectCode) => {\n return (dispatch) => {\n dispatch(postCreateBoothDeviceCodePending());\n API.postCreateBoothDeviceCode(projectCode)\n .then((res) => dispatch(postCreateBoothDeviceCodeFulfilled(res)))\n .catch((error) => dispatch(postCreateBoothDeviceCodeFailure(error)));\n };\n};\n\n// delete a booth device code\nexport const deleteBoothDeviceCodePending = () => ({\n type: actionTypes.DELETE_BOOTH_DEVICE_CODE_PENDING,\n});\nexport const deleteBoothDeviceCodeFulfilled = (data) => ({\n type: actionTypes.DELETE_BOOTH_DEVICE_CODE_FULFILLED,\n data,\n});\nexport const deleteBoothDeviceCodeFailure = (error) => ({\n type: actionTypes.DELETE_BOOTH_DEVICE_CODE_FAILURE,\n error,\n});\nexport const deleteBoothDeviceCode = (projectCode, deviceSeq) => {\n return (dispatch) => {\n dispatch(deleteBoothDeviceCodePending());\n API.deleteBoothDeviceCode(projectCode, deviceSeq)\n .then((res) => dispatch(deleteBoothDeviceCodeFulfilled(res)))\n .catch((error) => dispatch(deleteBoothDeviceCodeFailure(error)));\n };\n};\n\n// 取得 account 資料\nexport const getProfileAction = {\n getProfile: () => {\n return (dispatch) => {\n dispatch(getProfileAction.getProfilePending());\n API.getProfile()\n .then((res) => dispatch(getProfileAction.getProfileFulfilled(res)))\n .catch((error) => dispatch(getProfileAction.getProfileFailure(error)));\n };\n },\n getProfilePending: () => ({\n type: actionTypes.GET_PROFILE_PENDING,\n }),\n getProfileFulfilled: (data) => ({\n type: actionTypes.GET_PROFILE_FULFILLED,\n data,\n }),\n getProfileFailure: (error) => ({\n type: actionTypes.GET_PROFILE_FAILURE,\n error,\n }),\n};\n\n// 更新 account 資料\nexport const updateProfileAction = {\n updateProfile: (name, company, cellPhone, taxIDNumber, language, industry) => {\n return (dispatch) => {\n dispatch(updateProfileAction.updateProfilePending());\n API.updateProfile(name, company, cellPhone, taxIDNumber, language, industry)\n .then((res) => dispatch(updateProfileAction.updateProfileFulfilled(res)))\n .catch((error) => dispatch(updateProfileAction.updateProfileFailure(error)));\n };\n },\n updateProfilePending: () => ({\n type: actionTypes.UPDATE_PROFILE_PENDING,\n }),\n updateProfileFulfilled: (data) => ({\n type: actionTypes.UPDATE_PROFILE_FULFILLED,\n data,\n }),\n updateProfileFailure: (error) => ({\n type: actionTypes.UPDATE_PROFILE_FAILURE,\n error,\n }),\n};\n\n// ------ 名單 API 相關 ------\n\n// ---- email template --------\n// get email templates\nexport const getEmailTemplatesAction = {\n getEmailTemplates: (tokenId) => {\n return (dispatch) => {\n dispatch(getEmailTemplatesAction.getEmailTemplatesPending());\n API.getEmailTemplates(tokenId)\n .then((res) => {\n const formatResponse = JSON.parse(JSON.stringify(res));\n let dataWithAdjustedJson = [];\n if (res !== '' && res?.status >= 200 && res.status < 300 && res?.data?.data) {\n dataWithAdjustedJson = JSON.parse(JSON.stringify(res.data.data));\n\n dataWithAdjustedJson.map((template) => {\n const templateData = template;\n const { json } = templateData;\n templateData.json = JSON.parse(json);\n });\n formatResponse.data.data = dataWithAdjustedJson;\n dispatch(getEmailTemplatesAction.getEmailTemplatesFulfilled(formatResponse));\n } else {\n dispatch(getEmailTemplatesAction.getEmailTemplatesFulfilled(res));\n }\n })\n .catch((error) => dispatch(getEmailTemplatesAction.getEmailTemplatesFailure(error)));\n };\n },\n getEmailTemplatesPending: () => ({\n type: actionTypes.GET_EMAIL_TEMPLATES_PENDING,\n }),\n getEmailTemplatesFulfilled: (data) => ({\n type: actionTypes.GET_EMAIL_TEMPLATES_FULFILLED,\n data,\n }),\n getEmailTemplatesFailure: (error) => ({\n type: actionTypes.GET_EMAIL_TEMPLATES_FAILURE,\n error,\n }),\n};\n\n// post email template\nexport const postEmailTemplateAction = {\n postEmailTemplate: (name, html, json, emailTitle) => {\n return (dispatch) => {\n dispatch(postEmailTemplateAction.postEmailTemplatePending());\n API.postEmailTemplate(name, html, json, emailTitle)\n .then((res) => dispatch(postEmailTemplateAction.postEmailTemplateFulfilled(res)))\n .catch((error) => dispatch(postEmailTemplateAction.postEmailTemplateFailure(error)));\n };\n },\n postEmailTemplatePending: () => ({\n type: actionTypes.POST_EMAIL_TEMPLATE_PENDING,\n }),\n postEmailTemplateFulfilled: (data) => ({\n type: actionTypes.POST_EMAIL_TEMPLATE_FULFILLED,\n data,\n }),\n postEmailTemplateFailure: (error) => ({\n type: actionTypes.POST_EMAIL_TEMPLATE_FAILURE,\n error,\n }),\n};\n\n// delete email template\nexport const deleteEmailTemplateAction = {\n deleteEmailTemplate: (templateId) => {\n return (dispatch) => {\n dispatch(deleteEmailTemplateAction.deleteEmailTemplatePending());\n API.deleteEmailTemplate(templateId)\n .then((res) => dispatch(deleteEmailTemplateAction.deleteEmailTemplateFulfilled(res)))\n .catch((error) => dispatch(deleteEmailTemplateAction.deleteEmailTemplateFailure(error)));\n };\n },\n deleteEmailTemplatePending: () => ({\n type: actionTypes.DELETE_EMAIL_TEMPLATE_PENDING,\n }),\n deleteEmailTemplateFulfilled: (data) => ({\n type: actionTypes.DELETE_EMAIL_TEMPLATE_FULFILLED,\n data,\n }),\n deleteEmailTemplateFailure: (error) => ({\n type: actionTypes.DELETE_EMAIL_TEMPLATE_FAILURE,\n error,\n }),\n};\n\n// patch email template\nexport const patchEmailTemplateAction = {\n patchEmailTemplate: (templateId, name, html, json, emailTitle) => {\n return (dispatch) => {\n dispatch(patchEmailTemplateAction.patchEmailTemplatePending());\n API.patchEmailTemplate(templateId, name, html, json, emailTitle)\n .then((res) => dispatch(patchEmailTemplateAction.patchEmailTemplateFulfilled(res)))\n .catch((error) => dispatch(patchEmailTemplateAction.patchEmailTemplateFailure(error)));\n };\n },\n patchEmailTemplatePending: () => ({\n type: actionTypes.PATCH_EMAIL_TEMPLATE_PENDING,\n }),\n patchEmailTemplateFulfilled: (data) => ({\n type: actionTypes.PATCH_EMAIL_TEMPLATE_FULFILLED,\n data,\n }),\n patchEmailTemplateFailure: (error) => ({\n type: actionTypes.PATCH_EMAIL_TEMPLATE_FAILURE,\n error,\n }),\n};\n\n// --- email list ----\n// get email list\nexport const getEmailListAction = {\n getEmailList: (projectCode, seq) => {\n return (dispatch) => {\n dispatch(getEmailListAction.getEmailListPending());\n API.getEmailList(projectCode, seq)\n .then((res) => dispatch(getEmailListAction.getEmailListFulfilled(res)))\n .catch((error) => dispatch(getEmailListAction.getEmailListFailure(error)));\n };\n },\n getEmailListPending: () => ({\n type: actionTypes.GET_EMAIL_LIST_PENDING,\n }),\n getEmailListFulfilled: (data) => ({\n type: actionTypes.GET_EMAIL_LIST_FULFILLED,\n data,\n }),\n getEmailListFailure: (error) => ({\n type: actionTypes.GET_EMAIL_LIST_FAILURE,\n error,\n }),\n};\n\n// get email draft\nexport const getEmailDraftAction = {\n getEmailDraft: (projectCode, draftSeq) => {\n return (dispatch) => {\n dispatch(getEmailDraftAction.getEmailDraftPending());\n API.getEmailDraft(projectCode, draftSeq)\n .then((res) => dispatch(getEmailDraftAction.getEmailDraftFulfilled(res)))\n .catch((error) => dispatch(getEmailDraftAction.getEmailDraftFailure(error)));\n };\n },\n getEmailDraftPending: () => ({\n type: actionTypes.GET_EMAIL_DRAFT_PEDNING,\n }),\n getEmailDraftFulfilled: (data) => ({\n type: actionTypes.GET_EMAIL_DRAFT_FULFILLED,\n data,\n }),\n getEmailDraftFailure: (error) => ({\n type: actionTypes.GET_EMAIL_DRAFT_FAILURE,\n error,\n }),\n};\n\n// post email list\nexport const postEmailListAction = {\n postEmailList: (projectCode, template) => {\n return (dispatch) => {\n const data = {\n sender: '',\n title: template.emailTitle,\n sendAt: null,\n uuids: [],\n senderEmail: DEFAULT_SENDER_EMAIL,\n replyTo: '',\n bcc: [],\n html: template.html,\n json: JSON.stringify(template.json),\n note: '',\n receiverType: RECEIVER_TYPE.none, // null, 0, 1, 2, 3\n type: EMAIL_TYPE.sketch,\n };\n\n dispatch(postEmailListAction.postEmailListPending());\n API.postEmailList(projectCode, data)\n .then((res) => dispatch(postEmailListAction.postEmailListFulfilled(res)))\n .catch((error) => dispatch(postEmailListAction.postEmailListFailure(error)));\n };\n },\n postEmailListPending: () => ({\n type: actionTypes.POST_EMAIL_LIST_PENDING,\n }),\n postEmailListFulfilled: (data) => ({\n type: actionTypes.POST_EMAIL_LIST_FULFILLED,\n data,\n }),\n postEmailListFailure: (error) => ({\n type: actionTypes.POST_EMAIL_LIST_FAILURE,\n error,\n }),\n};\n\n// delete email list\nexport const deleteEmailListAction = {\n deleteEmailList: (projectCode, seq) => {\n return (dispatch) => {\n dispatch(deleteEmailListAction.deleteEmailListPending());\n API.deleteEmailDraft(projectCode, seq)\n .then((res) => dispatch(deleteEmailListAction.deleteEmailListFulfilled(res)))\n .catch((error) => dispatch(deleteEmailListAction.deleteEmailListFailure(error)));\n };\n },\n deleteEmailListPending: () => ({\n type: actionTypes.DELETE_EMAIL_LIST_PENDING,\n }),\n deleteEmailListFulfilled: (data) => ({\n type: actionTypes.DELETE_EMAIL_LIST_FULFILLED,\n data,\n }),\n deleteEmailListFailure: (error) => ({\n type: actionTypes.DELETE_EMAIL_LIST_FAILURE,\n error,\n }),\n};\n\n// patch email list\nexport const patchEmailListAction = {\n patchEmailList: (projectCode, seq, data) => {\n return (dispatch) => {\n dispatch(patchEmailListAction.patchEmailListPending());\n API.patchEmailDraft(projectCode, seq, data)\n .then((res) => dispatch(patchEmailListAction.patchEmailListFulfilled(res)))\n .catch((error) => {\n dispatch(patchEmailListAction.patchEmailListFailure(error));\n });\n };\n },\n patchEmailListPending: () => ({\n type: actionTypes.PATCH_EMAIL_LIST_PENDING,\n }),\n patchEmailListFulfilled: (data) => ({\n type: actionTypes.PATCH_EMAIL_LIST_FULFILLED,\n data,\n }),\n patchEmailListFailure: (error) => ({\n type: actionTypes.PATCH_EMAIL_LIST_FAILURE,\n error,\n }),\n};\n\n// POST copy email list\nexport const postCopyEmailListAction = {\n postCopyEmailList: (projectCode, draftSeq) => {\n return (dispatch) => {\n dispatch(postCopyEmailListAction.postCopyEmailListPending());\n API.postCopyEmailList(projectCode, draftSeq)\n .then((res) => dispatch(postCopyEmailListAction.postCopyEmailListFulfilled(res)))\n .catch((error) => dispatch(postCopyEmailListAction.postCopyEmailListFailure(error)));\n };\n },\n postCopyEmailListPending: () => ({\n type: actionTypes.POST_COPY_EMAIL_LIST_PENDING,\n }),\n postCopyEmailListFulfilled: (data) => ({\n type: actionTypes.POST_COPY_EMAIL_LIST_FULFILLED,\n data,\n }),\n postCopyEmailListFailure: (error) => ({\n type: actionTypes.POST_COPY_EMAIL_LIST_FULFILLED,\n error,\n }),\n};\n\n// check email list 有無特定參加者\nexport const getParticularAttendeeNumberAction = {\n getParticularAttendeeNumber: (projectCode) => {\n return (dispatch) => {\n dispatch(getParticularAttendeeNumberAction.getParticularAttendeeNumberPending());\n API.getParticularAttendeeNumber(projectCode)\n .then((res) =>\n dispatch(getParticularAttendeeNumberAction.getParticularAttendeeNumberFulfilled(res)),\n )\n .catch((error) =>\n dispatch(getParticularAttendeeNumberAction.getParticularAttendeeNumberFailure(error)),\n );\n };\n },\n getParticularAttendeeNumberPending: () => ({\n type: actionTypes.GET_PARTICULAR_ATTENDEE_NUMBER_PENDING,\n }),\n getParticularAttendeeNumberFulfilled: (data) => ({\n type: actionTypes.GET_PARTICULAR_ATTENDEE_NUMBER_FULFILLED,\n data,\n }),\n getParticularAttendeeNumberFailure: (error) => ({\n type: actionTypes.GET_PARTICULAR_ATTENDEE_NUMBER_FAILURE,\n error,\n }),\n};\n\n// get email preview\nexport const getEmailPreviewAction = {\n getEmailPreview: (projectCode, draftSeq) => {\n return (dispatch) => {\n dispatch(getEmailPreviewAction.getEmailPreviewPending());\n API.getEmailPreview(projectCode, draftSeq)\n .then((res) => dispatch(getEmailPreviewAction.getEmailPreviewFulfilled(res)))\n .catch((error) => dispatch(getEmailPreviewAction.getEmailPreviewFailure(error)));\n };\n },\n getEmailPreviewPending: () => ({\n type: actionTypes.GET_EMAIL_PREVIEW_PENDING,\n }),\n getEmailPreviewFulfilled: (data) => ({\n type: actionTypes.GET_EMAIL_PREVIEW_FULFILLED,\n data,\n }),\n getEmailPreviewFailure: (error) => ({\n type: actionTypes.GET_EMAIL_PREVIEW_FAILURE,\n error,\n }),\n};\n\n// ----- email record -------\n// GET single email record\nexport const getSingleEmailRecordAction = {\n getSingleEmailRecord: (projectCode, draftSeq) => {\n return (dispatch) => {\n dispatch(getSingleEmailRecordAction.getSingleEmailRecordPending());\n API.getSingleEmailRecord(projectCode, draftSeq)\n .then((res) => dispatch(getSingleEmailRecordAction.getSingleEmailRecordFulfilled(res)))\n .catch((error) => dispatch(getSingleEmailRecordAction.getSingleEmailRecordFailure(error)));\n };\n },\n getSingleEmailRecordPending: () => ({\n type: actionTypes.GET_SINGLE_EMAIL_RECORD_PENDING,\n }),\n getSingleEmailRecordFulfilled: (data) => ({\n type: actionTypes.GET_SINGLE_EMAIL_RECORD_FULFILLED,\n data,\n }),\n getSingleEmailRecordFailure: (error) => ({\n type: actionTypes.GET_SINGLE_EMAIL_RECORD_FAILURE,\n error,\n }),\n};\n\n// -------- SMS -----------\n// get sms list\nexport const getSmsListAction = {\n getSmsList: (proejctCode) => {\n return (dispatch) => {\n dispatch(getSmsListAction.getSmsListPending());\n API.getSmsList(proejctCode)\n .then((res) => dispatch(getSmsListAction.getSmsListFulfilled(res)))\n .catch((error) => dispatch(getSmsListAction.getSmsListFailure(error)));\n };\n },\n\n getSmsListPending: () => ({\n type: actionTypes.GET_SMS_LIST_PENDING,\n }),\n getSmsListFulfilled: (data) => ({\n type: actionTypes.GET_SMS_LIST_FULFILLED,\n data,\n }),\n getSmsListFailure: (error) => ({\n type: actionTypes.GET_SMS_LIST_FAILURE,\n error,\n }),\n};\n\nexport const getSmsDraftAction = {\n getSmsDraft: (projectCode, draftSeq) => {\n return (dispatch) => {\n dispatch(getSmsDraftAction.getSmsDraftPending());\n API.getSmsDraft(projectCode, draftSeq)\n .then((res) => dispatch(getSmsDraftAction.getSmsDraftFulfilled(res)))\n .catch((error) => dispatch(getSmsDraftAction.getSmsDraftFailure(error)));\n };\n },\n getSmsDraftPending: () => ({\n type: actionTypes.GET_SMS_DRAFT_PENDING,\n }),\n getSmsDraftFulfilled: (data) => ({\n type: actionTypes.GET_SMS_DRAFT_FULFILLED,\n data,\n }),\n getSmsDraftFailure: (error) => ({\n type: actionTypes.GET_SMS_DRAFT_FAILURE,\n error,\n }),\n};\n\nexport const postSmsDraftAction = {\n postSmsDraft: (projectCode, data) => {\n return (dispatch) => {\n dispatch(postSmsDraftAction.postSmsDraftPending());\n API.postSmsDraft(projectCode, data)\n .then((res) => dispatch(postSmsDraftAction.postSmsDraftFulfilled(res)))\n .catch((error) => dispatch(postSmsDraftAction.postSmsDraftFailure(error)));\n };\n },\n postSmsDraftPending: () => ({\n type: actionTypes.POST_SMS_DRAFT_PENDING,\n }),\n postSmsDraftFulfilled: (data) => ({\n type: actionTypes.POST_SMS_DRAFT_FULFILLED,\n data,\n }),\n postSmsDraftFailure: (error) => ({\n type: actionTypes.POST_SMS_DRAFT_FAILURE,\n error,\n }),\n};\n\nexport const patchSmsDraftAction = {\n patchSmsDraft: (projectCode, draftSeq, data) => {\n return (dispatch) => {\n dispatch(patchSmsDraftAction.patchSmsDraftPending());\n API.patchSmsDraft(projectCode, draftSeq, data)\n .then((res) => dispatch(patchSmsDraftAction.patchSmsDraftFulfilled(res)))\n .catch((error) => dispatch(patchSmsDraftAction.patchSmsDraftFailure(error)));\n };\n },\n patchSmsDraftPending: () => ({\n type: actionTypes.PATCH_SMS_DRAFT_PENDING,\n }),\n patchSmsDraftFulfilled: (data) => ({\n type: actionTypes.PATCH_SMS_DRAFT_FULFILLED,\n data,\n }),\n patchSmsDraftFailure: (error) => ({\n type: actionTypes.PATCH_SMS_DRAFT_FAILURE,\n error,\n }),\n};\n\nexport const deleteSmsDraftAction = {\n deleteSmsDraft: (projectCode, draftSeq) => {\n return (dispatch) => {\n dispatch(deleteSmsDraftAction.deleteSmsDraftPending());\n API.deleteSmsDraft(projectCode, draftSeq)\n .then((res) => dispatch(deleteSmsDraftAction.deleteSmsDraftFulfilled(res)))\n .catch((error) => dispatch(deleteSmsDraftAction.deleteSmsDraftFailure(error)));\n };\n },\n deleteSmsDraftPending: () => ({\n type: actionTypes.DELETE_SMS_DRAFT_PEDNING,\n }),\n deleteSmsDraftFulfilled: (data) => ({\n type: actionTypes.DELETE_SMS_DRAFT_FULFILLED,\n data,\n }),\n deleteSmsDraftFailure: (error) => ({\n type: actionTypes.DELETE_SMS_DRAFT_FAILURE,\n error,\n }),\n};\n\nexport const postCopySmsDraftAction = {\n postCopySmsDraft: (projectCode, draftSeq) => {\n return (dispatch) => {\n dispatch(postCopySmsDraftAction.postCopySmsDraftPending());\n API.postCopySmsDraft(projectCode, draftSeq)\n .then((res) => dispatch(postCopySmsDraftAction.postCopySmsDraftFulfilled(res)))\n .catch((error) => dispatch(postCopySmsDraftAction.postCopySmsDraftFailure(error)));\n };\n },\n postCopySmsDraftPending: () => ({\n type: actionTypes.POST_COPY_SMS_DRAFT_PENDING,\n }),\n postCopySmsDraftFulfilled: (data) => ({\n type: actionTypes.POST_COPY_SMS_DRAFT_FULFILLED,\n data,\n }),\n postCopySmsDraftFailure: (error) => ({\n type: actionTypes.POST_COPY_SMS_DRAFT_FAILURE,\n error,\n }),\n};\n\nexport const getSingleSmsRecordAction = {\n getSingleSmsRecord: (projectCode, draftSeq) => {\n return (dispatch) => {\n dispatch(getSingleSmsRecordAction.getSingleSmsRecordPending());\n API.getSingleSmsRecord(projectCode, draftSeq)\n .then((res) => dispatch(getSingleSmsRecordAction.getSingleSmsRecordFulfilled(res)))\n .catch((error) => dispatch(getSingleSmsRecordAction.getSingleSmsRecordFailure(error)));\n };\n },\n getSingleSmsRecordPending: () => ({\n type: actionTypes.GET_SINGLE_SMS_RECORD_PENDING,\n }),\n getSingleSmsRecordFulfilled: (data) => ({\n type: actionTypes.GET_SINGLE_SMS_RECORD_FULFILLED,\n data,\n }),\n getSingleSmsRecordFailure: (error) => ({\n type: actionTypes.GET_SINGLE_SMS_RECORD_FAILURE,\n error,\n }),\n};\n\n// get sms list preview\nexport const getSmsPreviewAction = {\n getSmsPreview: (projectCode, draftSeq) => {\n return (dispatch) => {\n dispatch(getSmsPreviewAction.getSmsPreviewPending());\n API.getSmsPreview(projectCode, draftSeq)\n .then((res) => dispatch(getSmsPreviewAction.getSmsPreviewFulfilled(res)))\n .catch((error) => dispatch(getSmsPreviewAction.getSmsPreviewFaiure(error)));\n };\n },\n getSmsPreviewPending: () => ({\n type: actionTypes.GET_SMS_PREVIEW_PENDING,\n }),\n getSmsPreviewFulfilled: (data) => ({\n type: actionTypes.GET_SMS_PREVIEW_FULFILLED,\n data,\n }),\n getSmsPreviewFailure: (error) => ({\n type: actionTypes.GET_SMS_PREVIEW_FAILURE,\n error,\n }),\n};\n\n// ---------- Health Form -----------\n// GET helath form templates\nexport const getHealthFormTemplatesPending = () => ({\n type: actionTypes.GET_HEALTH_FORM_TEMPLATES_PENDING,\n});\nexport const getHealthFormTemplatesFulfilled = (data) => ({\n type: actionTypes.GET_HEALTH_FORM_TEMPLATES_FULFILLED,\n data,\n});\nexport const getHealthFormTemplatesFailure = (error) => ({\n type: actionTypes.GET_HEALTH_FORM_TEMPLATES_FAILURE,\n error,\n});\nexport const getHealthFormTemplates = () => {\n return (dispatch) => {\n dispatch(getHealthFormTemplatesPending());\n API.getHealthFormTemplates()\n .then((res) => dispatch(getHealthFormTemplatesFulfilled(res)))\n .catch((error) => dispatch(getHealthFormTemplatesFailure(error)));\n };\n};\n\n// GET event health form setting\nexport const getHealthFormSettingPending = () => ({\n type: actionTypes.GET_HEALTH_FORM_SETTING_PENDING,\n});\nexport const getHealthFormSettingFulfilled = (data) => ({\n type: actionTypes.GET_HEALTH_FORM_SETTING_FULFILLED,\n data,\n});\nexport const getHealthFormSettingFailure = (error) => ({\n type: actionTypes.GET_HEALTH_FORM_SETTING_FAILURE,\n error,\n});\nexport const getHelathFormSetting = (projectId) => {\n return (dispatch) => {\n dispatch(getHealthFormSettingPending());\n API.getHealthFormSetting(projectId)\n .then((res) => dispatch(getHealthFormSettingFulfilled(res)))\n .catch((error) => dispatch(getHealthFormSettingFailure(error)));\n };\n};\n\n// PATCH event health form setting\nexport const patchHealthFormSettingPending = () => ({\n type: actionTypes.PATCH_HEALTH_FORM_SETTING_PENDING,\n});\nexport const patchHealthFormSettingFulfilled = (data) => ({\n type: actionTypes.PATCH_HEALTH_FORM_SETTING_FULFILLED,\n data,\n});\nexport const patchHealthFormSettingFailure = (error) => ({\n type: actionTypes.PATCH_HEALTH_FORM_SETTING_FAILURE,\n error,\n});\nexport const patchHealthFormSetting = (projectId, data) => {\n return (dispatch) => {\n dispatch(patchHealthFormSettingPending());\n API.patchHealthFormSetting(projectId, data)\n .then((res) => dispatch(patchHealthFormSettingFulfilled(res)))\n .catch((error) => dispatch(patchHealthFormSettingFailure(error)));\n };\n};\n\n// 報到人數限額\nexport const setCheckInQuota = (data) => ({\n type: actionTypes.SET_CHECKIN_QUOTA,\n data,\n});\n\n// ----- point -----\nexport const setTotalPoint = (data) => ({\n type: actionTypes.SET_TOTAL_POINT,\n data,\n});\n\n// 取得實際扣點數字\nexport const postContentToGetRealCostPending = () => ({\n type: actionTypes.POST_CONTENT_TO_GET_REAL_COST_PENDING,\n});\nexport const postContentToGetRealCostFulfilled = (data) => ({\n type: actionTypes.POST_CONTENT_TO_GET_REAL_COST_FULFILLED,\n data,\n});\nexport const postContentToGetRealCostFailure = (error) => ({\n type: actionTypes.POST_CONTENT_TO_GET_REAL_COST_FAILURE,\n error,\n});\nexport const postContentToGetRealCost = (projectCode, data) => {\n return (dispatch) => {\n dispatch(postContentToGetRealCostPending());\n API.postContentToGetRealCost(projectCode, data)\n .then((res) => dispatch(postContentToGetRealCostFulfilled(res)))\n .catch((error) => dispatch(postContentToGetRealCostFailure(error)));\n };\n};\n\n// ------- FILE ----------\nexport const postFileUploadAction = {\n postFileUpload: (file) => {\n return (dispatch) => {\n dispatch(postFileUploadAction.postFileUploadPending());\n API.postFileUpload(file)\n .then((res) => dispatch(postFileUploadAction.postFileUploadFulfilled(res)))\n .catch((error) => dispatch(postFileUploadAction.postFileUploadFailure(error)));\n };\n },\n postFileUploadPending: () => ({\n type: actionTypes.POST_FILE_UPLOAD_PENDING,\n }),\n postFileUploadFulfilled: (data) => ({\n type: actionTypes.POST_FILE_UPLOAD_FULFILLED,\n data,\n }),\n postFileUploadFailure: (error) => ({\n type: actionTypes.POST_FILE_UPLOAD_FAILURE,\n error,\n }),\n};\n\n// -------- index page -------------\n// GET index page setting data\nexport const getIndexPageEditPending = () => ({\n type: actionTypes.GET_INDEX_PAGE_EDIT_PENDING,\n});\nexport const getIndexPageEditFulfilled = (data) => ({\n type: actionTypes.GET_INDEX_PAGE_EDIT_FULFILLED,\n data,\n});\nexport const getIndexPageEditFailure = (error) => ({\n type: actionTypes.GET_INDEX_PAGE_EDIT_FAILURE,\n error,\n});\n// 變換語系或變換活動時皆會由此拿到專屬頁面設定\nexport const getIndexPageEdit = (projectCode, lang) => {\n return (dispatch) => {\n dispatch(getIndexPageEditPending());\n API.getIndexPageEdit(projectCode, lang)\n .then((res) => dispatch(getIndexPageEditFulfilled(res)))\n .catch((error) => dispatch(getIndexPageEditFailure(error)));\n };\n};\n\n// add a index page\nexport const postIndexPagePending = () => ({\n type: actionTypes.POST_INDEX_PAGE_PENDING,\n});\nexport const postIndexPageFulfilled = (data) => ({\n type: actionTypes.POST_INDEX_PAGE_FULFILLED,\n data,\n});\nexport const postIndexPageFailure = (error) => ({\n type: actionTypes.POST_INDEX_PAGE_FAILURE,\n error,\n});\nexport const postIndexPage = (projectId, data) => {\n return (dispatch) => {\n dispatch(postIndexPagePending());\n API.postIndexPage(projectId, data)\n .then((res) => dispatch(postIndexPageFulfilled(res)))\n .catch((error) => dispatch(postIndexPageFailure(error)));\n };\n};\n\n// PATCH index page setting data\nexport const patchIndexPageEditPending = () => ({\n type: actionTypes.PATCH_INDEX_PAGE_EDIT_PENDING,\n});\nexport const patchIndexPageEditFulfilled = (data) => ({\n type: actionTypes.PATCH_INDEX_PAGE_EDIT_FULFILLED,\n data,\n});\nexport const patchIndexPageEditFailure = (error) => ({\n type: actionTypes.PATCH_INDEX_PAGE_EDIT_FAILURE,\n error,\n});\nexport const patchIndexPageEdit = (uuid, data) => {\n return (dispatch) => {\n dispatch(patchIndexPageEditPending());\n API.patchIndexPageEdit(uuid, data)\n .then((res) => dispatch(patchIndexPageEditFulfilled(res)))\n .catch((error) => dispatch(patchIndexPageEditFailure(error)));\n };\n};\n\n// GET guest index page\nexport const getGuestIndexPagePending = () => ({\n type: actionTypes.GET_GUEST_INDEX_PAGE_PENDING,\n});\nexport const getGuestIndexPageFulfilled = (data) => ({\n type: actionTypes.GET_GUEST_INDEX_PAGE_FULFILLED,\n data,\n});\nexport const getGuestIndexPageFailure = (error) => ({\n type: actionTypes.GET_GUEST_INDEX_PAGE_FAILURE,\n error,\n});\nexport const getGuestIndexPage = (projectCode, userCode, preview) => {\n return (dispatch) => {\n dispatch(getGuestIndexPagePending());\n API.getGuestIndexPage(projectCode, userCode, preview)\n .then((res) => dispatch(getGuestIndexPageFulfilled(res)))\n .catch((error) => dispatch(getGuestIndexPageFailure(error)));\n };\n};\n\n// get index page preview data\nexport const getIndexPagePreviewPending = () => ({\n type: actionTypes.GET_INDEX_PAGE_PREVIEW_PENDING,\n});\nexport const getIndexPagePreviewFulfilled = (data) => ({\n type: actionTypes.GET_INDEX_PAGE_PREVIEW_FULFILLED,\n data,\n});\nexport const getIndexPagePreviewFailure = (error) => ({\n type: actionTypes.GET_INDEX_PAGE_PREVIEW_FAILURE,\n error,\n});\nexport const getIndexPagePreview = (projectCode, userId) => {\n return (dispatch) => {\n dispatch(getIndexPagePreviewPending());\n API.getIndexPagePreview(projectCode, userId)\n .then((res) => dispatch(getIndexPagePreviewFulfilled(res)))\n .catch((error) => dispatch(getIndexPagePreviewFailure(error)));\n };\n};\n\n// ------- statistic ------------\nexport const getAttendeeCheckinSituationAction = {\n getAttendeeCheckinSituation: (projectId) => {\n return (dispatch) => {\n dispatch(getAttendeeCheckinSituationAction.getAttendeeCheckinSituationPending());\n API.getAttendeeCheckinSituation(projectId)\n .then((res) =>\n dispatch(getAttendeeCheckinSituationAction.getAttendeeCheckinSituationFulfilled(res)),\n )\n .catch((error) =>\n dispatch(getAttendeeCheckinSituationAction.getAttendeeCheckinSituationFailure(error)),\n );\n };\n },\n getAttendeeCheckinSituationPending: () => ({\n type: actionTypes.GET_ATTENDEE_CHECKIN_SITUATION_PENDING,\n }),\n getAttendeeCheckinSituationFulfilled: (data) => ({\n type: actionTypes.GET_ATTENDEE_CHECKIN_SITUATION_FULFILLED,\n data,\n }),\n getAttendeeCheckinSituationFailure: (error) => ({\n type: actionTypes.GET_ATTENDEE_CHECKIN_SITUATION_FAILURE,\n error,\n }),\n};\n\n// 匯出統計報表\nexport const postExportStatisticCheckinReportAction = {\n postExportStatisticCheckinReport: (projectId) => {\n return (dispatch) => {\n dispatch(postExportStatisticCheckinReportAction.postExportStatisticCheckinReportPending());\n API.postExportStatisticCheckinReport(projectId)\n .then((res) =>\n dispatch(\n postExportStatisticCheckinReportAction.postExportStatisticCheckinReportFulfilled(res),\n ),\n )\n .catch((error) =>\n dispatch(\n postExportStatisticCheckinReportAction.postExportStatisticCheckinReportFailure(error),\n ),\n );\n };\n },\n postExportStatisticCheckinReportPending: () => ({\n type: actionTypes.POST_EXPORT_STATISTIC_CHECKIN_REPORT_PENDING,\n }),\n postExportStatisticCheckinReportFulfilled: (data) => ({\n type: actionTypes.POST_EXPORT_STATISTIC_CHECKIN_REPORT_FULFILLED,\n data,\n }),\n postExportStatisticCheckinReportFailure: (error) => ({\n type: actionTypes.POST_EXPORT_STATISTIC_CHECKIN_REPORT_FAILURE,\n error,\n }),\n};\n\n// 取得自訂圖表 list\nexport const getCustomizeChartListAction = {\n getCustomizeChartList: (tokenId, projectId) => {\n return (dispatch) => {\n dispatch(getCustomizeChartListAction.getCustomizeChartListPending());\n API.getCustomizeChartList(tokenId, projectId)\n .then((res) => dispatch(getCustomizeChartListAction.getCustomizeChartListFulfilled(res)))\n .catch((error) =>\n dispatch(getCustomizeChartListAction.getCustomizeChartListFailure(error)),\n );\n };\n },\n getCustomizeChartListPending: () => ({\n type: actionTypes.GET_CUSTOMIZE_CHART_LIST_PENDING,\n }),\n getCustomizeChartListFulfilled: (data) => ({\n type: actionTypes.GET_CUSTOMIZE_CHART_LIST_FULFILLED,\n data,\n }),\n getCustomizeChartListFailure: (error) => ({\n type: actionTypes.GET_CUSTOMIZE_CHART_LIST_FAILURE,\n error,\n }),\n};\n\n// post single 自訂圖表\nexport const postSingleCustomizeChartAction = {\n postSingleCustomizeChart: (tokenId, projectId, data) => {\n return (dispatch) => {\n dispatch(postSingleCustomizeChartAction.postSingleCustomizeChartPending());\n API.postSingleCustomizeChart(tokenId, projectId, data)\n .then((res) =>\n dispatch(postSingleCustomizeChartAction.postSingleCustomizeChartFulfilled(res)),\n )\n .catch((error) =>\n dispatch(postSingleCustomizeChartAction.postSingleCustomizeChartFailure(error)),\n );\n };\n },\n postSingleCustomizeChartPending: () => ({\n type: actionTypes.POST_SINGLE_CUSTOMIZE_CHART_PENDING,\n }),\n postSingleCustomizeChartFulfilled: (data) => ({\n type: actionTypes.POST_SINGLE_CUSTOMIZE_CHART_FULFILLED,\n data,\n }),\n postSingleCustomizeChartFailure: (error) => ({\n type: actionTypes.POST_SINGLE_CUSTOMIZE_CHART_FAILURE,\n error,\n }),\n};\n\n// delete single customize chart\nexport const deleteSingleCustomizeChartAction = {\n deleteSingleCustomizeChart: (tokenId, projectId, seq) => {\n return (dispatch) => {\n dispatch(deleteSingleCustomizeChartAction.deleteSingleCustomizeChartPending());\n API.deleteSingleCustomizeChart(tokenId, projectId, seq)\n .then((res) =>\n dispatch(deleteSingleCustomizeChartAction.deleteSingleCustomizeChartFulfilled(res)),\n )\n .catch((error) =>\n dispatch(deleteSingleCustomizeChartAction.deleteSingleCustomizeChartFailure(error)),\n );\n };\n },\n deleteSingleCustomizeChartPending: () => ({\n type: actionTypes.DELETE_SINGLE_CUSTOMIZE_CHART_PENDING,\n }),\n deleteSingleCustomizeChartFulfilled: (data) => ({\n type: actionTypes.DELETE_SINGLE_CUSTOMIZE_CHART_FULFILLED,\n data,\n }),\n deleteSingleCustomizeChartFailure: (error) => ({\n type: actionTypes.DELETE_SINGLE_CUSTOMIZE_CHART_FAILURE,\n error,\n }),\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"alert\":\"antdErrorAlert__alert___2CziW\",\"alert-no-fixed\":\"antdErrorAlert__alert-no-fixed___1GsuS\"};","/**\n * antd Alert error component\n * https://ant.design/components/alert-cn\n *\n * TODO: 待替換成 chakra-ui 的 useToast (./utils/toast)\n */\n\nimport i18n from 'i18next';\nimport { Alert } from 'antd';\nimport styles from './antdErrorAlert.scss';\n\nfunction AntdErrorAlert({\n errorMessage = i18n.t('common.serverErrorMessage'),\n fixed = true,\n onCloseFunction = null,\n}) {\n return (\n (onCloseFunction === null ? '' : onCloseFunction())}\n />\n );\n}\n\nexport default AntdErrorAlert;\n","/**\n * v6 API return code 的對照表\n * 每一個模組間隔 10000\n */\n\n/**\n *\n * @param {number} codeReminder\n * @param {number} nmultipleum\n * @returns returnCode: number\n */\nfunction setCode(codeReminder, multiple = 1) {\n return multiple * 1000000 + codeReminder;\n}\n\nexport const API_RETURN_CODE = {\n success: 0,\n common: {\n success: 0,\n },\n admin: {\n unauthorized: setCode(0),\n planExpired: setCode(1),\n exceedPlanParticipantMaximum: setCode(2),\n exceedPlanStartupCodeMaximum: setCode(3),\n pointsNotEnough: setCode(4),\n loginFailure: setCode(6),\n tokenExpired: setCode(7),\n invalidToken: setCode(8),\n },\n module: {\n notFound: setCode(10000),\n maintenance: setCode(10004), // 維護中\n },\n event: {\n canNotCancelToPublishBecauseSold: setCode(20000),\n canNotCloseSignUpBecauseSold: setCode(20001),\n canNotDeleteEventBecausePublished: setCode(20002),\n prefixConflict: setCode(20003),\n },\n participant: {\n notIncludedDefaultColumns: setCode(30000), // 未包含預設欄位\n userIdIsDuplicated: setCode(30001), // ID 重複\n importTicketTypeNotFound: setCode(30002), // 找不到匯入票種\n exceedTicketTypeMaximum: setCode(30003), // 人數超出票種上限\n columnsAndParticipantsAreNotConsistency: setCode(30004), // 名單與欄位不一致\n columnIdIsDuplicated: setCode(30005), // 欄位 id 重複\n columnsOutOfRange: setCode(30006), // 欄位超過上限 20 欄\n needToSameColumnsWhenIsSignUpActive: setCode(30007), // 報名表單開啟時,無法匯入欄位不同的名單\n eachLangSameColumnsAmount: setCode(30009), // 不同語系欄位數量不一致(各語系欄位數量應一致)\n },\n signUp: {\n ticketIsNotPermitted: setCode(40000), // 票券已被刪除或完成報名\n eventIsNotActive: setCode(40001), // 活動尚未發布\n signUpFormIsNotActive: setCode(40002), // 報名表單尚未開啟\n ticketIsNotActive: setCode(40003), // 票券尚未販售\n ticketisNotSoldPeriod: setCode(40004), // 票券尚不能購買\n ticketIsSoldOut: setCode(40005), // 票券無庫存\n noChooseAnyTicketTypes: setCode(40006), // 未指定購買票種\n unableToBuySession: setCode(40007), // 無法購買場次\n chooseSessionAmountNotAllowed: setCode(40008), // 自選場次數量不符\n sessionIsFull: setCode(40009), // 場次已額滿\n },\n qrImage: {\n receiverKeysAreNull: setCode(50000), // ID 為空\n receiverKeysAreDuplicated: setCode(50001), // ID 重複\n receiverKeysAreNotValid: setCode(50002), // ID 不存在\n indexPageNotFound: setCode(500003), // 找不到來賓專屬頁面\n },\n email: {\n notFoundReceiver: setCode(80000), // 找不到收件人\n sentAlready: setCode(80001), // 已發送的信件\n invalidBcc: setCode(80002), // bcc 格式錯誤\n },\n sms: {\n sentAlready: setCode(90001), // 已發送的信件\n },\n indexPage: {\n isExist: setCode(100000), // 已經存在\n isNotActiveYet: setCode(100001), // 尚未開放\n participantNotFound: setCode(100002), // 找不到來賓\n invalidParticipant: setCode(100003), // 無效的來賓\n isNotActiveWthinTime: setCode(100004), // 未在開放時間內\n invalidUserCode: setCode(100005), // userCode 驗證失敗\n isNotOpenCode: setCode(100006), // 來賓專屬頁面不存在(未開啟)\n },\n session: {\n sortIdIsRepeat: setCode(110000), // sort ID 重複\n nameIsRepeat: setCode(110001), // 場次名稱重複\n sessionHaveBeenSold: setCode(110002), // 無法更新/刪除販售中票種關聯的場次\n sessionIsFull: setCode(110003), // 場次額滿\n },\n paymentSetting: {\n paymentSettingIsExist: setCode(140000), // 金流設定已存在 (已 POST 過)\n paymentNotSetting: setCode(140001), // 未設定金流\n },\n surveyForm: {\n isNotWithinTime: setCode(170000), // 未在開放時間內的問卷,\n isObtained: setCode(170001), // 已領取過問卷禮\n versionIsOutdated: setCode(170002), // 非最新版問卷\n },\n guest: {\n userCodeIsNull: setCode(180000), // userCode 空的\n userCodeUnauthenticated: setCode(180001), // userCode 驗證失敗\n },\n mailServerSetting: {\n mailServerSettingIsExist: setCode(190000), // 郵件伺服器設定已經存在 (曾 Creat 過)\n mailServerSettingNotExist: setCode(190001), // 未設定過郵件伺服器\n },\n familyDayForm: {\n familyDayFormIsExist: setCode(200000), // 家庭日表單已存在\n familyDayFormNotExist: setCode(200001), // 家庭日表單尚未設定過\n },\n redeemPrize: {\n prizeNotExist: setCode(210001), // 獎項不存在\n prizeTokenNotExist: setCode(210002), // 領獎token不存在\n prizeRedeemed: setCode(210003), // 獎項已領取\n },\n};\n","/**\n * 客製化 chakra-ui toast UI\n * 因為若直接使用 toast 會與官方 default UI 不一樣,推測是受其它 UI library 影響(如 antd)\n */\n\nimport { Box, Flex, Heading, CloseButton } from '@chakra-ui/react';\nimport { CheckCircleIcon, WarningIcon, InfoIcon } from '@chakra-ui/icons';\n\nexport const RenderedToast = ({\n id,\n title = '',\n iconSize = 18,\n status = 'info',\n description = '',\n onClose = null,\n handleClose = null,\n isClosable = true,\n}) => {\n let icon = null;\n let backgroundColor = 'green.500';\n\n const lowerStatus = status.toLowerCase();\n\n switch (lowerStatus) {\n case 'success':\n icon = ;\n backgroundColor = 'green.500';\n break;\n case 'info':\n icon = ;\n backgroundColor = 'blue.500';\n break;\n case 'error':\n icon = ;\n backgroundColor = 'red.500';\n break;\n case 'warning':\n icon = ;\n backgroundColor = 'orange.500';\n break;\n default:\n icon = ;\n }\n\n return (\n \n \n {icon}\n \n {title && (\n \n {title}\n \n )}\n {description && {description}}\n \n \n {isClosable && (\n {\n onClose();\n handleClose && handleClose();\n }}\n border=\"none\"\n bgColor=\"transparent\"\n pos=\"absolute\"\n right=\"5px\"\n top=\"5px\"\n />\n )}\n \n );\n};\n","export const SET_WINDOW_INNER_WIDTH = 'SET_WINDOW_INNER_WIDTH';\n\nexport const SET_USER_AUTHENTICATED = 'SET_USER_AUTHENTICATED';\nexport const SET_USER_ROLES = 'SET_USER_ROLES';\nexport const SET_IS_LOGIN = 'SET_IS_LOGIN';\nexport const SET_IS_LOGGED_IN = 'SET_IS_LOGGED_IN';\nexport const LOGOUT = 'LOGOUT';\nexport const SET_IS_ONLINE = 'SET_IS_ONLINE';\n\n// 頁面尚未儲存的阻擋提示\nexport const SET_IS_SURVEY_FORM_EDIT_SAVED_NOT_YET = 'SET_IS_SURVEY_FORM_EDIT_SAVED_NOT_YET';\nexport const SET_IS_INDEX_PAGE_EDIT_SAVED_NOT_YET = 'SET_IS_INDEX_PAGE_EDIT_SAVED_NOT_YET';\nexport const SET_IS_BADGE_EDIT_SAVED_NOT_YET = 'SET_IS_BADGE_EDIT_SAVED_NOT_YET';\n\nexport const SWITCH_EVENT = 'SWITCH_EVENT';\n// Event 首頁的動作與設定收合\nexport const SET_IS_SHOW_PRIOR_SETTING_BLOCK = 'SET_IS_SHOW_PRIOR_SETTING_BLOCK';\n// List 的注意事項收合\nexport const SET_LIST_NOTICE_SHOW = 'SET_LIST_NOTICE_SHOW';\n// SMS 編輯的說明與範例收合\nexport const SET_IS_OPENED_SMS_EDIT_INSTRUCTION_PANEL = 'SET_IS_OPENED_SMS_EDIT_INSTRUCTION_PANEL';\n\n// Email、cell phone 格式檢查\nexport const SET_IS_EMAIL_FORMAT_CHECKED = 'SET_IS_EMAIL_FORMAT_CHECKED';\nexport const SET_IS_CELL_PHONE_FORMAT_CHECKED = 'SET_IS_CELL_PHONE_FORMAT_CHECKED';\n\n// 各種提示訊息是否隱藏\nexport const SET_IS_HIDDEN_RIGHT_BOTTOM_HINT = 'SET_IS_HIDDEN_RIGHT_BOTTOM_HINT';\nexport const SET_IS_HIDDEN_EMAIL_TEMPLATE_HINT = 'SET_IS_HIDDEN_EMAIL_TEMPLATE_HINT';\nexport const SET_IS_HIDDEN_HEALTH_FORM_HINT = 'SET_IS_HIDDEN_HEALTH_FORM_HINT';\nexport const SET_IS_HIDDEN_BADGE_HINT = 'SET_IS_HIDDEN_BADGE_HINT';\nexport const SET_IS_HIDDEN_TUTORIAL_TAB_HINT = 'SET_IS_HIDDEN_TUTORIAL_TAB_HINT';\n\n// 第一次造訪平台\nexport const SET_IS_VISIT_FIRST_TIME = 'SET_IS_VISIT_FIRST_TIME';\n\n// 不顯示標籤機租用資訊 toast\nexport const SET_IS_NOT_BADGE_LABEL_MACHINE_RENT_INFORMATION_SHOWN =\n 'SET_IS_NOT_BADGE_LABEL_MACHINE_RENT_INFORMATION_SHOWN';\n\n// 初始化所有 store states\nexport const INITIALIZE_ALL_STATES = 'INITIALIZE_ALL_STATES';\n\n// 初始化設定的 reducer 的 state\nexport const INITIALIZE_STATES_FULFILLED = 'INITIALIZE_STATES_FULFILLED';\n\n// set language\nexport const SET_USER_LANGUAGE = 'SET_USER_LANGUAGE';\n\n// 設定 server timestamp\nexport const SET_SYSTEM_TIMESTAMP = 'SET_SYSTEM_TIMESTAMP';\nexport const SET_IS_MAINTENANCE = 'SET_IS_MAINTENANCE';\n\n// 導覽的當前 KEY\nexport const POST_TUTORIALS_ACTIVE_KEY = 'POST_TUTORIALS_ACTIVE_KEY';\n\n// GET 是否第一次使用\nexport const IS_DONE_FIRST_TIME = 'IS_DONE_FIRST_TIME';\nexport const GET_IS_DONE_FIRST_TIME_PENDING = 'GET_IS_DONE_FIRST_TIME_PENDING';\nexport const GET_IS_DONE_FIRST_TIME_FULFILLED = 'GET_IS_DONE_FIRST_TIME_FULFILLED';\nexport const GET_IS_DONE_FIRST_TIME_FAILURE = 'GET_IS_DONE_FIRST_TIME_FAILURE';\n\n/* modal visible */\n// 建立活動 modal visible\nexport const SET_CREATING_EVENT_MODAL_VISIBLE = 'SET_CREATING_EVENT_MODAL_VISIBLE';\n/* modal visible */\n\n// 註冊驗證信\nexport const POST_REGISTER_AUTHENTICATED_PENDING = 'POST_REGISTER_AUTHENTICATED_PENDING';\nexport const POST_REGISTER_AUTHENTICATED_FULFILLED = 'POST_REGISTER_AUTHENTICATED_FULFILLED';\nexport const POST_REGISTER_AUTHENTICATED_FAILURE = 'POST_REGISTER_AUTHENTICATED_FAILURE';\n\n// 重發驗證信\nexport const RESEND_REGISTER_AUTHENTICATED_PENDING = 'RESEND_REGISTER_AUTHENTICATED_PENDING';\nexport const RESEND_REGISTER_AUTHENTICATED_FULFILLED = 'RESEND_REGISTER_AUTHENTICATED_FULFILLED';\nexport const RESEND_REGISTER_AUTHENTICATED_FAILURE = 'RESEND_REGISTER_AUTHENTICATED_FAILURE';\n\n// 忘記密碼重設\nexport const RESET_NEW_PASSWORD = 'RESET_NEW_PASSWORD';\n\n// 註冊\nexport const POST_REGISTER_PENDING = 'POST_REGISTER_PENDING';\nexport const POST_REGISTER_FULFILLED = 'POST_REGISTER_FULFILLED';\nexport const POST_REGISTER_FAILURE = 'POST_REGISTER_FAILURE';\n\n// 檢查註冊帳號可否使用\nexport const CHECK_REPEAT_ACCOUNT_PENDING = 'CHECK_REPEAT_ACCOUNT_PENDING';\nexport const CHECK_REPEAT_ACCOUNT_FULFILLED = 'CHECK_REPEAT_ACCOUNT_FULFILLED';\nexport const CHECK_REPEAT_ACCOUNT_FAILURE = 'CHECK_REPEAT_ACCOUNT_FAILURE';\n\n// 檢查登入\nexport const CHECK_LOGIN_PENDING = 'CHECK_LOGIN_PENDING';\nexport const CHECK_LOGIN_FULFILLED = 'CHECK_LOGIN_FULFILLED';\nexport const CHECK_LOGIN_FAILURE = 'CHECK_LOGIN_FAILURE';\n\n// 檢查 token 期限\nexport const CHECK_TOKEN_EXPIRED_PENDING = 'CHECK_TOKEN_EXPIRED_PENDING';\nexport const CHECK_TOKEN_EXPIRED_FULFILLED = 'CHECK_TOKEN_EXPIRED_FULFILLED';\nexport const CHECK_TOKEN_EXPIRED_FAILURE = 'CHECK_TOKEN_EXPIRED_FAILURE';\n\n// 忘記密碼發送重設密碼信件\nexport const SEND_FORGOT_PASSWORD_EMAIL_PENDING = 'SEND_FORGOT_PASSWORD_EMAIL_PENDING';\nexport const SEND_FORGOT_PASSWORD_EMAIL_FULFILLED = 'SEND_FORGOT_PASSWORD_EMAIL_FULFILLED';\nexport const SEND_FORGOT_PASSWORD_EMAIL_FAILURE = 'SEND_FORGOT_PASSWORD_EMAIL_FAILURE';\n\n// 重設密碼\nexport const RESET_NEW_PASSWORD_PENDING = ' RESET_NEW_PASSWORD_PENDING';\nexport const RESET_NEW_PASSWORD_FULFILLED = ' RESET_NEW_PASSWORD_FULFILLED';\nexport const RESET_NEW_PASSWORD_FAILURE = ' RESET_NEW_PASSWORD_FAILURE';\n\n// -------------- device -------------------\n// logut device code\nexport const GET_DISUSE_DEVICE_CODE_PENDING = 'GET_DISUSE_DEVICE_CODE_PENDING';\nexport const GET_DISUSE_DEVICE_CODE_FULFILLED = 'GET_DISUSE_DEVICE_CODE_FULFILLED';\nexport const GET_DISUSE_DEVICE_CODE_FAILURE = 'GET_DISUSE_DEVICE_CODE_FAILURE';\n\n// 取得啟動碼列表\nexport const GET_DEVICE_CODE_LIST_PENDING = 'GET_DEVICE_CODE_LIST_PENDING';\nexport const GET_DEVICE_CODE_LIST_FULFILLED = 'GET_DEVICE_CODE_LIST_FULFILLED';\nexport const GET_DEVICE_CODE_LIST_FAILURE = 'GET_DEVICE_CODE_LIST_FAILURE';\n\n// create a new device code\nexport const POST_CREATE_DEVICE_CODE_PENDING = 'POST_CREATE_DEVICE_CODE_PENDING';\nexport const POST_CREATE_DEVICE_CODE_FULFILLED = 'POST_CREATE_DEVICE_CODE_FULFILLED';\nexport const POST_CREATE_DEVICE_CODE_FAILURE = 'POST_CREATE_DEVICE_CODE_FAILURE';\n\n// delete a device code\nexport const DELETE_DEVICE_CODE_PENDING = 'DELETE_DEVICE_CODE_PENDING';\nexport const DELETE_DEVICE_CODE_FULFILLED = 'DELETE_DEVICE_CODE_FULFILLED';\nexport const DELETE_DEVICE_CODE_FAILURE = 'DELETE_DEVICE_CODE_FAILURE';\n\n// -------------- booth device -------------------\n// logut booth device code\nexport const GET_DISUSE_BOOTH_DEVICE_CODE_PENDING = 'GET_DISUSE_BOOTH_DEVICE_CODE_PENDING';\nexport const GET_DISUSE_BOOTH_DEVICE_CODE_FULFILLED = 'GET_DISUSE_BOOTH_DEVICE_CODE_FULFILLED';\nexport const GET_DISUSE_BOOTH_DEVICE_CODE_FAILURE = 'GET_DISUSE_BOOTH_DEVICE_CODE_FAILURE';\n\n// 取得活動啟動碼列表\nexport const GET_BOOTH_DEVICE_CODE_LIST_PENDING = 'GET_BOOTH_DEVICE_CODE_LIST_PENDING';\nexport const GET_BOOTH_DEVICE_CODE_LIST_FULFILLED = 'GET_BOOTH_DEVICE_CODE_LIST_FULFILLED';\nexport const GET_BOOTH_DEVICE_CODE_LIST_FAILURE = 'GET_BOOTH_DEVICE_CODE_LIST_FAILURE';\n\n// create a new booth device code\nexport const POST_CREATE_BOOTH_DEVICE_CODE_PENDING = 'POST_CREATE_BOOTH_DEVICE_CODE_PENDING';\nexport const POST_CREATE_BOOTH_DEVICE_CODE_FULFILLED = 'POST_CREATE_BOOTH_DEVICE_CODE_FULFILLED';\nexport const POST_CREATE_BOOTH_DEVICE_CODE_FAILURE = 'POST_CREATE_BOOTH_DEVICE_CODE_FAILURE';\n\n// delete a booth device code\nexport const DELETE_BOOTH_DEVICE_CODE_PENDING = 'DELETE_BOOTH_DEVICE_CODE_PENDING';\nexport const DELETE_BOOTH_DEVICE_CODE_FULFILLED = 'DELETE_BOOTH_DEVICE_CODE_FULFILLED';\nexport const DELETE_BOOTH_DEVICE_CODE_FAILURE = 'DELETE_BOOTH_DEVICE_CODE_FAILURE';\n\n// -------------- Profile ---------------\nexport const GET_PROFILE_PENDING = 'GET_PROFILE_PENDING';\nexport const GET_PROFILE_FULFILLED = 'GET_PROFILE_FULFILLED';\nexport const GET_PROFILE_FAILURE = 'GET_PROFILE_FAILURE';\n\n// 更新 Profile\nexport const UPDATE_PROFILE_PENDING = 'UPDATE_PROFILE_PENDING';\nexport const UPDATE_PROFILE_FULFILLED = 'UPDATE_PROFILE_FULFILLED';\nexport const UPDATE_PROFILE_FAILURE = 'UPDATE_PROFILE_FAILURE';\n\n// -------------- List ---------------\n// delete a user row in list\nexport const DELETE_SINGLE_ROW_IN_USER_LIST_PENDING = 'DELETE_SINGLE_ROW_IN_USER_LIST_PENDING';\nexport const DELETE_SINGLE_ROW_IN_USER_LIST_FULFILLED = 'DELETE_SINGLE_ROW_IN_USER_LIST_FULFILLED';\nexport const DELETE_SINGLE_ROW_IN_USER_LIST_FAILURE = 'DELETE_SINGLE_ROW_IN_USER_LIST_FAILURE';\n\n// delete all user rows in lsit\nexport const DELETE_ALL_ROWS_IN_USER_LIST_PENDING = 'DELETE_ALL_ROWS_IN_USER_LIST_PENDING';\nexport const DELETE_ALL_ROWS_IN_USER_LIST_FULFILLED = 'DELETE_ALL_ROWS_IN_USER_LIST_FULFILLED';\nexport const DELETE_ALL_ROWS_IN_USER_LIST_FAILURE = 'DELETE_ALL_ROWS_IN_USER_LIST_FAILURE';\n\n// -------------- EMAIL TEMPLATES ---------------\n// GET email templates\nexport const GET_EMAIL_TEMPLATES_PENDING = 'GET_EMAIL_TEMPLATES_PENDING';\nexport const GET_EMAIL_TEMPLATES_FULFILLED = 'GET_EMAIL_TEMPLATES_FULFILLED';\nexport const GET_EMAIL_TEMPLATES_FAILURE = 'GET_EMAIL_TEMPLATES_FAILURE';\n\n// POST email template\nexport const POST_EMAIL_TEMPLATE_PENDING = 'POST_EMAIL_TEMPLATE_PENDING';\nexport const POST_EMAIL_TEMPLATE_FULFILLED = 'POST_EMAIL_TEMPLATE_FULFILLED';\nexport const POST_EMAIL_TEMPLATE_FAILURE = 'POST_EMAIL_TEMPLATE_FAILURE';\n\n// DELETE email template\nexport const DELETE_EMAIL_TEMPLATE_PENDING = 'DELETE_EMAIL_TEMPLATE_PENDING';\nexport const DELETE_EMAIL_TEMPLATE_FULFILLED = 'DELETE_EMAIL_TEMPLATE_FULFILLED';\nexport const DELETE_EMAIL_TEMPLATE_FAILURE = 'DELETE_EMAIL_TEMPLATE_FAILURE';\n\n// PATCH email template\nexport const PATCH_EMAIL_TEMPLATE_PENDING = 'PATCH_EMAIL_TEMPLATE_PENDING';\nexport const PATCH_EMAIL_TEMPLATE_FULFILLED = 'PATCH_EMAIL_TEMPLATE_FULFILLED';\nexport const PATCH_EMAIL_TEMPLATE_FAILURE = 'PATCH_EMAIL_TEMPLATE_FAILURE';\n\n// -------------- EMAIL LIST ---------------\n// TODO: 應該都改叫 draft,然後 get email list 刪掉和 get email draft 共用\n// GET email list\nexport const GET_EMAIL_LIST_PENDING = 'GET_EMAIL_LIST_PENDING';\nexport const GET_EMAIL_LIST_FULFILLED = 'GET_EMAIL_LIST_FULFILLED';\nexport const GET_EMAIL_LIST_FAILURE = 'GET_EMAIL_LIST_FAILURE';\n\n// GET email draft\nexport const GET_EMAIL_DRAFT_PEDNING = 'GET_EMAIL_DRAFT_PEDNING';\nexport const GET_EMAIL_DRAFT_FULFILLED = 'GET_EMAIL_DRAFT_FULFILLED';\nexport const GET_EMAIL_DRAFT_FAILURE = 'GET_EMAIL_DRAFT_FAILURE';\n\n// POST email list\nexport const POST_EMAIL_LIST_PENDING = 'POST_EMAIL_LIST_PENDING';\nexport const POST_EMAIL_LIST_FULFILLED = 'POST_EMAIL_LIST_FULFILLED';\nexport const POST_EMAIL_LIST_FAILURE = 'POST_EMAIL_LIST_FAILURE';\n\n// DELETE email list\nexport const DELETE_EMAIL_LIST_PENDING = 'DELETE_EMAIL_LIST_PENDING';\nexport const DELETE_EMAIL_LIST_FULFILLED = 'DELETE_EMAIL_LIST_FULFILLED';\nexport const DELETE_EMAIL_LIST_FAILURE = 'DELETE_EMAIL_LIST_FAILURE';\n\n// PATCH email list\nexport const PATCH_EMAIL_LIST_PENDING = 'PATCH_EMAIL_LIST_PENDING';\nexport const PATCH_EMAIL_LIST_FULFILLED = 'PATCH_EMAIL_LIST_FULFILLED';\nexport const PATCH_EMAIL_LIST_FAILURE = 'PATCH_EMAIL_LIST_FAILURE';\n\n// POST copy email list\nexport const POST_COPY_EMAIL_LIST_PENDING = 'POST_COPY_EMAIL_LIST_PENDING';\nexport const POST_COPY_EMAIL_LIST_FULFILLED = 'POST_COPY_EMAIL_LIST_FULFILLED';\nexport const POST_COPY_EMAIL_LIST_FAILURE = 'POST_COPY_EMAIL_LIST_FAILURE';\n\n// CHECK email list 有沒有特定參加者 getIsParticularAttendeeInEmailList\nexport const GET_PARTICULAR_ATTENDEE_NUMBER_PENDING = 'GET_PARTICULAR_ATTENDEE_NUMBER_PENDING';\nexport const GET_PARTICULAR_ATTENDEE_NUMBER_FULFILLED = 'GET_PARTICULAR_ATTENDEE_NUMBER_FULFILLED';\nexport const GET_PARTICULAR_ATTENDEE_NUMBER_FAILURE = 'GET_PARTICULAR_ATTENDEE_NUMBER_FAILURE';\n\n// get email preview\nexport const GET_EMAIL_PREVIEW_PENDING = 'GET_EMAIL_PREVIEW_PENDING';\nexport const GET_EMAIL_PREVIEW_FULFILLED = 'GET_EMAIL_PREVIEW_FULFILLED';\nexport const GET_EMAIL_PREVIEW_FAILURE = 'GET_EMAIL_PREVIEW_FAILURE';\n\n// ------------- email record -----------\n// GET Single Email record\nexport const GET_SINGLE_EMAIL_RECORD_PENDING = 'GET_SINGLE_EMAIL_RECORD_PENDING';\nexport const GET_SINGLE_EMAIL_RECORD_FULFILLED = 'GET_SINGLE_EMAIL_RECORD_FULFILLED';\nexport const GET_SINGLE_EMAIL_RECORD_FAILURE = 'GET_SINGLE_EMAIL_RECORD_FAILURE';\n\n// -------------- SMS draft ---------------\n// GET SMS list\nexport const GET_SMS_LIST_PENDING = 'GET_SMS_LIST_PENDING';\nexport const GET_SMS_LIST_FULFILLED = 'GET_SMS_LIST_FULFILLED';\nexport const GET_SMS_LIST_FAILURE = 'GET_SMS_LIST_FAILURE';\n\n// GET SMS draft\nexport const GET_SMS_DRAFT_PENDING = 'GET_SMS_DRAFT_PENDING';\nexport const GET_SMS_DRAFT_FULFILLED = 'GET_SMS_DRAFT_FULFILLED';\nexport const GET_SMS_DRAFT_FAILURE = 'GET_SMS_DRAFT_FAILURE';\n\n// POST SMS draft\nexport const POST_SMS_DRAFT_PENDING = 'POST_SMS_DRAFT_PENDING';\nexport const POST_SMS_DRAFT_FULFILLED = 'POST_SMS_DRAFT_FULFILLED';\nexport const POST_SMS_DRAFT_FAILURE = 'POST_SMS_DRAFT_FAILURE';\n\n// POST copy draft\nexport const POST_COPY_SMS_DRAFT_PENDING = 'POST_COPY_SMS_DRAFT_PENDING';\nexport const POST_COPY_SMS_DRAFT_FULFILLED = 'POST_COPY_SMS_DRAFT_FULFILLED';\nexport const POST_COPY_SMS_DRAFT_FAILURE = 'POST_COPY_SMS_DRAFT_FAILURE';\n\n// DELETE SMS draft\nexport const DELETE_SMS_DRAFT_PEDNING = 'DELETE_SMS_DRAFT_PEDNING';\nexport const DELETE_SMS_DRAFT_FULFILLED = 'DELETE_SMS_DRAFT_FULFILLED';\nexport const DELETE_SMS_DRAFT_FAILURE = 'DELETE_SMS_DRAFT_FAILURE';\n\n// PATCH SMS draft\nexport const PATCH_SMS_DRAFT_PENDING = 'PATCH_SMS_DRAFT_PENDING';\nexport const PATCH_SMS_DRAFT_FULFILLED = 'PATCH_SMS_DRAFT_FULFILLED';\nexport const PATCH_SMS_DRAFT_FAILURE = 'PATCH_SMS_DRAFT_FAILURE';\n\n// GET SMS record\nexport const GET_SINGLE_SMS_RECORD_PENDING = 'GET_SINGLE_SMS_RECORD_PENDING';\nexport const GET_SINGLE_SMS_RECORD_FULFILLED = 'GET_SINGLE_SMS_RECORD_FULFILLED';\nexport const GET_SINGLE_SMS_RECORD_FAILURE = 'GET_SINGLE_SMS_RECORD_FAILURE';\n\n// GET SMS preview\nexport const GET_SMS_PREVIEW_PENDING = 'GET_SMS_PREVIEW_PENDING';\nexport const GET_SMS_PREVIEW_FULFILLED = 'GET_SMS_PREVIEW_FULFILLED';\nexport const GET_SMS_PREVIEW_FAILURE = 'GET_SMS_PREVIEW_FAILURE';\n\n// POST sms content to get sms preview in sms editing\nexport const POST_CONTENT_TO_GET_SMS_PREVIEW_PENDING = 'POST_CONTENT_TO_GET_SMS_PREVIEW_PENDING';\nexport const POST_CONTENT_TO_GET_SMS_PREVIEW_FULFILLED =\n 'POST_CONTENT_TO_GET_SMS_PREVIEW_FULFILLED';\nexport const POST_CONTENT_TO_GET_SMS_PREVIEW_FAILURE = 'POST_CONTENT_TO_GET_SMS_PREVIEW_FAILURE';\n\n// POST content to get real cost\nexport const POST_CONTENT_TO_GET_REAL_COST_PENDING = 'POST_CONTENT_TO_GET_REAL_COST_PENDING';\nexport const POST_CONTENT_TO_GET_REAL_COST_FULFILLED = 'POST_CONTENT_TO_GET_REAL_COST_FULFILLED';\nexport const POST_CONTENT_TO_GET_REAL_COST_FAILURE = 'POST_CONTENT_TO_GET_REAL_COST_FAILURE';\n\n// ----------- Health Form ------------\nexport const GET_HEALTH_FORM_TEMPLATES_PENDING = 'GET_HEALTH_FORM_TEMPLATES_PENDING';\nexport const GET_HEALTH_FORM_TEMPLATES_FULFILLED = 'GET_HEALTH_FORM_TEMPLATES_FULFILLED';\nexport const GET_HEALTH_FORM_TEMPLATES_FAILURE = 'GET_HEALTH_FORM_TEMPLATES_FAILURE';\n\nexport const GET_HEALTH_FORM_SETTING_PENDING = 'GET_HEALTH_FORM_SETTING_PENDING';\nexport const GET_HEALTH_FORM_SETTING_FULFILLED = 'GET_HEALTH_FORM_SETTING_FULFILLED';\nexport const GET_HEALTH_FORM_SETTING_FAILURE = 'GET_HEALTH_FORM_SETTING_FAILURE';\n\nexport const PATCH_HEALTH_FORM_SETTING_PENDING = 'PATCH_HEALTH_FORM_SETTING_PENDING';\nexport const PATCH_HEALTH_FORM_SETTING_FULFILLED = 'PATCH_HEALTH_FORM_SETTING_FULFILLED';\nexport const PATCH_HEALTH_FORM_SETTING_FAILURE = 'PATCH_HEALTH_FORM_SETTING_FAILURE';\n\n// -------------- POINT ---------------\nexport const SET_TOTAL_POINT = 'SET_TOTAL_POINT';\n\n// -------------- CHECKIN QUOTA ---------------\nexport const SET_CHECKIN_QUOTA = 'SET_CHECKIN_QUOTA';\n\n// ------------ File ---------------\nexport const POST_FILE_UPLOAD_PENDING = 'POST_FILE_UPLOAD_PENDING';\nexport const POST_FILE_UPLOAD_FULFILLED = 'POST_FILE_UPLOAD_FULFILLED';\nexport const POST_FILE_UPLOAD_FAILURE = 'POST_FILE_UPLOAD_FAILURE';\n\n// ---------- index page ---------------\nexport const GET_INDEX_PAGE_EDIT_PENDING = 'GET_INDEX_PAGE_EDIT_PENDING';\nexport const GET_INDEX_PAGE_EDIT_FULFILLED = 'GET_INDEX_PAGE_EDIT_FULFILLED';\nexport const GET_INDEX_PAGE_EDIT_FAILURE = 'GET_INDEX_PAGE_EDIT_FAILURE';\n\nexport const POST_INDEX_PAGE_PENDING = 'POST_INDEX_PAGE_PENDING';\nexport const POST_INDEX_PAGE_FULFILLED = 'POST_INDEX_PAGE_FULFILLED';\nexport const POST_INDEX_PAGE_FAILURE = 'POST_INDEX_PAGE_FAILURE';\n\nexport const PATCH_INDEX_PAGE_EDIT_PENDING = 'PATCH_INDEX_PAGE_EDIT_PENDING';\nexport const PATCH_INDEX_PAGE_EDIT_FULFILLED = 'PATCH_INDEX_PAGE_EDIT_FULFILLED';\nexport const PATCH_INDEX_PAGE_EDIT_FAILURE = 'PATCH_INDEX_PAGE_EDIT_FAILURE';\n\nexport const GET_GUEST_INDEX_PAGE_PENDING = 'GET_GUEST_INDEX_PAGE_PENDING';\nexport const GET_GUEST_INDEX_PAGE_FULFILLED = 'GET_GUEST_INDEX_PAGE_FULFILLED';\nexport const GET_GUEST_INDEX_PAGE_FAILURE = 'GET_GUEST_INDEX_PAGE_FAILURE';\n\nexport const GET_INDEX_PAGE_PREVIEW_PENDING = 'GET_INDEX_PAGE_PREVIEW_PENDING';\nexport const GET_INDEX_PAGE_PREVIEW_FULFILLED = 'GET_INDEX_PAGE_PREVIEW_FULFILLED';\nexport const GET_INDEX_PAGE_PREVIEW_FAILURE = 'GET_INDEX_PAGE_PREVIEW_FAILURE';\n\n// --------------- Badge ---------------\nexport const GET_BADGE_SETTING_PENDING = 'GET_BADGE_SETTING_PENDING';\nexport const GET_BADGE_SETTING_FULFILLED = 'GET_BADGE_SETTING_FULFILLED';\nexport const GET_BADGE_SETTING_FAILURE = 'GET_BADGE_SETTING_FAILURE';\n\nexport const POST_BADGE_SETTING_PENDGING = 'POST_BADGE_SETTING_PENDGING';\nexport const POST_BADGE_SETTING_FULFILLED = 'POST_BADGE_SETTING_FULFILLED';\nexport const POST_BADGE_SETTING_FAILURE = 'POST_BADGE_SETTING_FAILURE';\n\nexport const DELETE_BADGE_SETTING_PENDING = 'DELETE_BADGE_SETTING_PENDING';\nexport const DELETE_BADGE_SETTING_FULFILLED = 'DELETE_BADGE_SETTING_FULFILLED';\nexport const DELETE_BADGE_SETTING_FAILURE = 'DELETE_BADGE_SETTING_FAILURE';\n\nexport const PATCH_BADGE_SETTING_PENDING = 'PATCH_BADGE_SETTING_PENDING';\nexport const PATCH_BADGE_SETTING_FULFILLED = 'PATCH_BADGE_SETTING_FULFILLED';\nexport const PATCH_BADGE_SETTING_FAILURE = 'PATCH_BADGE_SETTING_FAILURE';\n\n// ------------- system announcement -----------\n// GET All announcements\nexport const GET_SYSTEM_ANNOUNCEMENTS_PENDING = 'GET_SYSTEM_ANNOUNCEMENTS_PENDING';\nexport const GET_SYSTEM_ANNOUNCEMENTS_FULFILLED = 'GET_SYSTEM_ANNOUNCEMENTS_FULFILLED';\nexport const GET_SYSTEM_ANNOUNCEMENTS_FAILURE = 'GET_SYSTEM_ANNOUNCEMENTS_FAILURE';\n\n// ---------- 統計、Dashboard -----------\n// 參加者報到出席狀況\nexport const GET_ATTENDEE_CHECKIN_SITUATION_PENDING = 'GET_ATTENDEE_CHECKIN_SITUATION_PENDING';\nexport const GET_ATTENDEE_CHECKIN_SITUATION_FULFILLED = 'GET_ATTENDEE_CHECKIN_SITUATION_FULFILLED';\nexport const GET_ATTENDEE_CHECKIN_SITUATION_FAILURE = 'GET_ATTENDEE_CHECKIN_SITUATION_FAILURE';\n\n// 匯出統計報表\nexport const POST_EXPORT_STATISTIC_CHECKIN_REPORT_PENDING =\n 'POST_EXPORT_STATISTIC_CHECKIN_REPORT_PENDING';\nexport const POST_EXPORT_STATISTIC_CHECKIN_REPORT_FULFILLED =\n 'POST_EXPORT_STATISTIC_CHECKIN_REPORT_FULFILLED';\nexport const POST_EXPORT_STATISTIC_CHECKIN_REPORT_FAILURE =\n 'POST_EXPORT_STATISTIC_CHECKIN_REPORT_FAILURE';\n\n// 取得自訂圖表 list\nexport const GET_CUSTOMIZE_CHART_LIST_PENDING = 'GET_CUSTOMIZE_CHART_LIST_PENDING';\nexport const GET_CUSTOMIZE_CHART_LIST_FULFILLED = 'GET_CUSTOMIZE_CHART_LIST_FULFILLED';\nexport const GET_CUSTOMIZE_CHART_LIST_FAILURE = 'GET_CUSTOMIZE_CHART_LIST_FAILURE';\n\n// 新增一自訂圖表到 chart lsit\nexport const POST_SINGLE_CUSTOMIZE_CHART_PENDING = 'POST_SINGLE_CUSTOMIZE_CHART_PENDING';\nexport const POST_SINGLE_CUSTOMIZE_CHART_FULFILLED = 'POST_SINGLE_CUSTOMIZE_CHART_FULFILLED';\nexport const POST_SINGLE_CUSTOMIZE_CHART_FAILURE = 'POST_SINGLE_CUSTOMIZE_CHART_FAILURE';\n\n// 刪除一自訂圖表從 chart list\nexport const DELETE_SINGLE_CUSTOMIZE_CHART_PENDING = 'DELETE_SINGLE_CUSTOMIZE_CHART_PENDING';\nexport const DELETE_SINGLE_CUSTOMIZE_CHART_FULFILLED = 'DELETE_SINGLE_CUSTOMIZE_CHART_FULFILLED';\nexport const DELETE_SINGLE_CUSTOMIZE_CHART_FAILURE = 'DELETE_SINGLE_CUSTOMIZE_CHART_FAILURE';\n\n// ------------------------ client -------------------------\nexport const SET_GUEST_SIGN_UP_INFO = 'SET_GUEST_SIGN_UP_INFO';\nexport const SET_GUEST_SELECT_SESSIONS = 'SET_GUEST_SELECT_SESSIONS';\n","export default {\n brand: {\n 50: '#ecf3f5',\n 100: '#c5dbec',\n 200: '#a4c1db',\n 300: '#83a9c9',\n 400: '#6090b8',\n 500: '#47769f',\n 600: '#355c7c',\n 700: '#24425a',\n 800: '#122739',\n 900: '#000e1a',\n },\n card: {\n 50: '#f0f0f0',\n },\n};\n","import * as React from \"react\";\n\nfunction SvgLoadingSmall(props) {\n return ;\n}\n\nexport default \"https://confcdnnode2.azureedge.net/funeventapp/images/loading-small.svg\";\nexport { SvgLoadingSmall as ReactComponent };","/**\n * 此 constants 為所有 API 通用的 API response messages\n */\n\nexport const ApiMessagesConstants = Object.freeze({\n ADMIN_NOT_FOUND: 'Admin Not Found',\n UNAUTHORIZED: 'Unauthorized',\n PLAN_EXPIRED: 'Plan Expired',\n\n PROJECT_NOT_FOUND: 'Project Not Found',\n ADMIN_PROJECT_NOT_FOUND: 'Admin Project Not Found',\n\n // like survey form\n VERSION_IS_NOT_LATEST: 'Version Is Not Latest',\n\n // like index page, survey form\n INVALID_UUID: 'Invalid Uuid',\n INVALID_USER_CODE: 'Invalid User Code',\n IS_NOT_WITHIN_TIME: 'Is Not Within Time',\n UNAVAILABLE: 'Unavailable', // LIKE is not active\n\n TOKEN_EXPIRED: 'Token expired',\n});\n","// email state\n// https://coda.io/d/Backend-Docs_dMWssUbfZKE/State-Code_sunHz\n\n// default sender email\nexport const DEFAULT_SENDER_EMAIL = 'no-reply@funevent.net';\n\n// 草稿選擇的 action state\nexport const EMAIL_TYPE = {\n sketch: 0, // 草稿\n reserve: 1, // 預定發送\n send: 2, // 立即發送\n};\n// 草稿寄件狀態\nexport const EMAIL_SEND_STATE = {\n notYet: 0, // 未發送\n sent: 1, // 已發送\n sentFailure: 2, // 發送失敗\n};\nexport const EMAIL_RECEIVER_STATE = {\n notYet: 0, // 未發送\n sent: 1, // 發送中\n sentFailure: 2, // 發送失敗\n arrived: 3, // 已送達\n finished: 7, // 完成\n};\n/**\n * 信件發送失敗時,出現的 error code\n * 預設值: null\n */\nexport const EMAIL_ERROR_CODE = {\n noError: null, // default value\n pointNotEnough: 0, // 點數不足\n sentFailure: 1, // 發送失敗\n invalidFormat: 2, // 格式錯誤\n mailserverError: 7, // mailServer 錯誤\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"language-select\":\"appRoute__language-select___kbP4u\",\"language-select__popover-container\":\"appRoute__language-select__popover-container___2obO3\",\"update-version-button\":\"appRoute__update-version-button___r1ZGe\"};","import { useQuery } from 'react-query';\nimport { useApiResponseHandler } from '@Hooks/useApiResponseHandler';\nimport { APP_VERSION_QUERY_KEY } from '@Constants/queryKeyConstants';\nimport { systemPresentVersion } from '@Utils/commonParameters';\n\nimport * as API from '@/api';\n\nexport const useAppVersion = ({ intervalSeconds = null, enabled = true }) => {\n const handler = useApiResponseHandler();\n\n return useQuery(\n [APP_VERSION_QUERY_KEY],\n () => handler(API.getCheckVersion(systemPresentVersion)),\n {\n enabled,\n refetchInterval: intervalSeconds ? intervalSeconds * 1000 : null,\n refetchIntervalInBackground: true,\n },\n );\n};\n","/**\n * API Error Provider and handler\n * 處理從 API 取得 status code >= 500 統一會執行的動作\n *\n */\n\nimport { createContext, useContext, useCallback, useState, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useToast } from '@chakra-ui/react';\nimport { popupToast } from '@Utils/toast';\n\nconst ErrorHandlerContext = createContext();\n\nconst SERVER_5OO_TOAST_ID = 'SEVER500';\n\nexport const ErrorHandler = ({ children }) => {\n const toast = useToast();\n const { t } = useTranslation();\n const [errorStatusCode, setErrorStatusCode] = useState(null);\n const [, setMsg] = useState('');\n const renderContent = useCallback(() => {\n if (errorStatusCode >= 500) {\n popupToast({\n toast,\n id: SERVER_5OO_TOAST_ID,\n noDuplicate: true,\n status: 'error',\n title: t('common.serverHaveSomeProblem'),\n duration: 7000,\n });\n }\n\n return children;\n }, [errorStatusCode]);\n\n const contextPayload = useMemo(() => {\n return { setErrorStatusCode, setMsg };\n }, [setErrorStatusCode, setMsg]);\n\n return (\n \n {renderContent()}\n \n );\n};\n\nexport const useErrorHandlerContext = () => {\n const { setErrorStatusCode, setMsg } = useContext(ErrorHandlerContext);\n\n return { setErrorStatusCode, setMsg };\n};\n","export const getMillisecond = (second) => second * 1000;\n","import { getMillisecond } from '@Utils/getMillisecond';\n\nexport const ACTION_DONE_DURATION = getMillisecond(3);\nexport const ACTION_ERROR_DURATION = getMillisecond(5);\nexport const ACTION_WARNING_DURATION = getMillisecond(5);\nexport const ACTION_INFO_DURATION = getMillisecond(10);\n\nexport const TOOLTIP_OPEN_DELAY_DURATION = getMillisecond(0.6);\nexport const TOOLTIP_CLOSE_DELAY_DURATION = getMillisecond(0.1);\n","import i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nimport tw from './assets/i18n/zh-TW.json';\nimport en from './assets/i18n/en.json';\n\nconst resources = {\n // zh 開頭的語言代號都符合,如 zh-TW、zh-CN\n zh: {\n translation: tw,\n },\n // en 開頭的語言代號都符合,如 en-US、en-AU、en-GB、en-NZ\n en: {\n translation: en,\n },\n 'zh-CN': {\n translation: en,\n },\n};\n\ni18n.use(initReactI18next).init({\n resources,\n // 預設語言\n lng: 'zh',\n // 切換的語言沒有對應的翻譯就用這個語言\n fallbackLng: 'en',\n // 如果語系檔中有巢狀的結構,則\b escapeValue 要設為 false,這樣就可以透過物件的方式來取得巢狀內的翻譯\n interpolation: {\n escapeValue: false,\n },\n});\n\nexport default i18n;\n","import loadable from '@loadable/component';\n\nimport PageLoading from '../components/pageLoading';\n\nconst Login = loadable(() => import('./login'), { fallback: });\nconst Pricing = loadable(() => import('./pricing'), { fallback: });\nconst RegisterRoute = loadable(() => import('../routes/register'), { fallback: });\nconst ForgotPasswordRoute = loadable(() => import('../routes/forgotPassword'), {\n fallback: ,\n});\nconst GuestSurveyFormRoute = loadable(() => import('../routes/guestSurveyForm'), {\n fallback: ,\n});\nconst IndexPageAppRoute = loadable(() => import('../routes/indexPageApp'), {\n fallback: ,\n});\nconst DashboardRoute = loadable(() => import('../routes/dashboard'), { fallback: });\nconst GuestTicketRoute = loadable(() => import('../routes/guestTicket'), {\n fallback: ,\n});\nconst GuestRoute = loadable(() => import('../routes/guest'), {\n fallback: ,\n});\nconst Home = loadable(() => import('./home'), { fallback: });\nconst Event = loadable(() => import('./event'), { fallback: });\nconst Site = loadable(() => import('../landingPage/site'), { fallback: });\nconst NotFound = loadable(() => import('./notFound'), { fallback: });\nconst GuestNotFound = loadable(() => import('./guestNotFound'), { fallback: });\nconst Maintenance = loadable(() => import('./maintenance'), { fallback: });\n\nexport {\n Login,\n Pricing,\n RegisterRoute,\n ForgotPasswordRoute,\n DashboardRoute,\n GuestSurveyFormRoute,\n IndexPageAppRoute,\n GuestTicketRoute,\n GuestRoute,\n Home,\n Event,\n Site,\n NotFound,\n GuestNotFound,\n Maintenance,\n};\n","import { useState, useEffect } from 'react';\nimport { Route, Redirect } from 'react-router-dom';\n\nimport PageLoading from '@Components/pageLoading';\n\nfunction PrivateRoute({ children, userAuth, ...rest }) {\n const [directToPage, setDirectToPage] = useState();\n\n useEffect(() => {\n if (userAuth === '') {\n setDirectToPage();\n } else {\n setDirectToPage(children);\n }\n }, [userAuth]);\n\n return directToPage} />;\n}\n\nexport default PrivateRoute;\n","import { connect } from 'react-redux';\nimport PrivateRoute from './PrivateRoute';\n\nconst PrivateRouteContainer = (props) => ;\n\nconst mapStateTOProps = (state) => ({\n userAuth: state.login.userAuth,\n});\n\nexport default connect(mapStateTOProps, null)(PrivateRouteContainer);\n","import PrivateRoute from './PrivateRouteContainer';\n\nexport default PrivateRoute;\n","import { Route, Redirect } from 'react-router-dom';\n\nfunction RedirectRoute({ children, userAuth, ...rest }) {\n return (userAuth !== '' ? : children)} />;\n}\n\nexport default RedirectRoute;\n","import { connect } from 'react-redux';\nimport RedirectRoute from './RedirectRoute';\n\nconst RedirectRouteContainer = (props) => ;\n\nconst mapStateTOProps = (state) => ({\n userAuth: state.login.userAuth,\n});\n\nexport default connect(mapStateTOProps, null)(RedirectRouteContainer);\n","import RedirectRoute from './RedirectRouteContainer';\n\nexport default RedirectRoute;\n","import 'antd/dist/antd.css';\nimport '../../normalize.css';\n\nimport { useState, useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { useQueryClient } from 'react-query';\nimport {\n HashRouter as Router,\n Route,\n Switch,\n Redirect,\n useLocation,\n useHistory,\n} from 'react-router-dom';\nimport { ThunderboltOutlined } from '@ant-design/icons';\nimport { withTranslation, useTranslation } from 'react-i18next';\n\nimport { APP_VERSION_QUERY_KEY } from '@Constants/queryKeyConstants';\nimport { API_RETURN_CODE } from '@Constants/apiReturnCode';\nimport { useAppVersion } from '@Hooks/useQueries/useSystemQueries';\nimport { systemPresentVersion } from '@Utils/commonParameters';\nimport { useIsDevelopment } from '@Utils/commonHooks';\n\nimport AntdErrorAlert from '@Components/antdErrorAlert';\n\nimport * as systemActions from '@/actions/systemActions';\n\nimport {\n Login,\n Pricing,\n RegisterRoute,\n ForgotPasswordRoute,\n DashboardRoute,\n GuestSurveyFormRoute,\n IndexPageAppRoute,\n GuestRoute,\n NotFound,\n Site,\n GuestNotFound,\n Maintenance,\n} from '../../pages/app';\n\nimport PrivateRoute from '../private';\nimport RedirectRoute from '../redirect';\n\nimport styles from './appRoute.scss';\n\nfunction UpdatingVersionButton() {\n const { systemVersion } = useSelector((state) => state.systemSetting);\n\n const { t } = useTranslation();\n const location = useLocation();\n const history = useHistory();\n const dispatch = useDispatch();\n const queryClient = useQueryClient();\n\n const [newVersion, setNewVersion] = useState(systemPresentVersion);\n const [versionMustBeUpdated, setVersionMustBeUpdated] = useState(false);\n\n const appVersionQuery = useAppVersion({});\n\n const handleUpdateVersion = () => {\n return window.location.reload();\n };\n\n // 切換頁面就 call 檢查版號\n useEffect(() => {\n if (systemVersion) {\n queryClient.invalidateQueries([APP_VERSION_QUERY_KEY]);\n }\n }, [location.pathname, systemVersion, queryClient]);\n\n useEffect(() => {\n if (appVersionQuery.isLoading || appVersionQuery.isFetching || !appVersionQuery.data) return;\n const { data } = appVersionQuery;\n const { mustBeUpdated, version, returnCode } = data;\n\n setNewVersion(version);\n setVersionMustBeUpdated(mustBeUpdated);\n\n dispatch(systemActions.setIsMaintenance(returnCode === API_RETURN_CODE.module.maintenance));\n\n if (returnCode === API_RETURN_CODE.success && location.pathname?.includes('/maintenance')) {\n history.replace('/home');\n }\n }, [appVersionQuery.isLoading, appVersionQuery.isFetching, appVersionQuery.data]);\n\n // 版本不同,強制更新 true,則重新整理\n // 風險: 如果忘記改版號(systemVersion)但 db 已經有新的版號,就會一直重新整理頁面\n // TODO: 可以於 sessionStorage 計算 call hanldeUpdateVersion 幾次,超過一定數量就不再 call function\n useEffect(() => {\n if (versionMustBeUpdated && newVersion !== systemVersion) {\n handleUpdateVersion();\n }\n }, [versionMustBeUpdated, newVersion, systemVersion]);\n\n // 沒有強制更新的時候,user 可以點此按鈕 reload page fetch the newest version\n // 目前比較少用到此邏輯,因為每次更改版號現在都設定成\"強制更新\"會比較保險\n return (\n <>\n {newVersion !== undefined &&\n versionMustBeUpdated !== undefined &&\n systemVersion !== newVersion &&\n !versionMustBeUpdated && (\n \n \n \n )}\n \n );\n}\n\nfunction AppRoute(props) {\n const { setWindowInnerWidth, i18n, setIsOnline, isOnline } = props;\n\n const { t } = useTranslation();\n\n const isDevelopment = useIsDevelopment();\n\n const { isMaintenance } = useSelector((state) => state.systemSetting);\n\n window.onresize = () => {\n if (window.innerWidth) {\n setWindowInnerWidth(window.innerWidth);\n }\n };\n\n window.addEventListener('load', () => {\n function handleNetworkCondition(event) {\n if (event.type === 'online') {\n window.location.reload();\n }\n const condition = window.navigator.onLine;\n setIsOnline(condition);\n return undefined;\n }\n\n window.addEventListener('online', handleNetworkCondition);\n window.addEventListener('offline', handleNetworkCondition);\n });\n\n useEffect(() => {\n if (window?.navigator?.language) {\n i18n.changeLanguage(window.navigator.language);\n }\n }, []);\n\n return (\n \n \n {!isOnline && }\n\n \n \n {isMaintenance && }\n\n \n {(isDevelopment === '' || isDevelopment) && }\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\nexport default withTranslation()(AppRoute);\n","/**\n * 系統相關 actions\n */\n\nimport * as actionTypes from '../actionTypes';\n\n// 系統是否在維護中\nexport const setIsMaintenance = (data) => ({\n type: actionTypes.SET_IS_MAINTENANCE,\n data,\n});\n","import { connect } from 'react-redux';\nimport AppRoute from './AppRoute';\nimport * as actions from '../../actions';\n\nconst AppRouteContainer = (props) => ;\n\nconst mapStateToProps = (state) => ({\n userAuth: state.login.userAuth,\n isOnline: state.parameter.isOnline,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n setWindowInnerWidth(width) {\n dispatch(actions.setWindowInnerWidth(width));\n },\n setIsOnline(isOnline) {\n dispatch(actions.setIsOnline(isOnline));\n },\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AppRouteContainer);\n","import AppRoute from './AppRouteContainer';\n\nexport default AppRoute;\n","import { QueryClient, QueryClientProvider as ReactQueryClientProvider } from 'react-query';\n\n// new react query client\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\nexport const QueryClientProvider = ({ children }) => {\n return {children};\n};\n","import Button from './button';\nimport Link from './link';\nimport Popover from './popover';\n\nconst components = {\n ...Button,\n ...Link,\n ...Popover,\n};\n\nexport default components;\n","export default {\n Button: {\n baseStyle: {\n backgroundColor: '#fff',\n\n _focus: {\n boxShadow: 'none',\n },\n },\n variants: {\n solid({ colorScheme, theme }) {\n if (colorScheme === 'white') {\n return {\n color: '#000',\n backgroundColor: '#fff',\n border: '1px solid #cecece',\n boxShadow: '0px 0px 1px 0px #e7e7e7e6',\n\n _hover: {\n border: `1px solid ${theme.colors.brand[400]}`,\n color: theme.colors.brand[400],\n },\n };\n }\n\n return {\n borderColor: 'transparent',\n _hover: {\n bgColor: `${colorScheme}.400`,\n border: '1px solid transparent',\n },\n };\n },\n outline(props) {\n return {\n _hover: {\n bgColor: '#f8f8f8d1',\n },\n _active: {\n bgColor: props?._hover?.bgColor ?? '#f8f8f8d1',\n color:\n props.colorScheme === 'white' ? 'black' : props?._hover?.color ?? props.colorScheme,\n },\n };\n },\n // 初始 style 為 outline,:hover 和 :active 會變為 solid style\n outlineToSolid(props) {\n // 白色沒效果,純粹 chakra ui 的 default outline\n if (props.colorScheme === 'white') {\n return {\n color: 'black',\n _hover: {\n bgColor: '#f8f8f8d1',\n },\n _active: {\n bgColor: '#f8f8f8d1',\n },\n };\n }\n\n if (props.colorScheme === 'black') {\n return {\n color: 'black',\n bgColor: 'white',\n _hover: {\n bgColor: 'gray.800',\n color: 'white',\n },\n _active: {\n bgColor: 'gray.800',\n color: 'white',\n },\n };\n }\n\n return {\n color: props.colorScheme ? `${props.colorScheme}.500` : 'brand.500',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: props.colorScheme ? `${props.colorScheme}.500` : 'brand.500',\n _hover: {\n bgColor: props.colorScheme ? `${props.colorScheme}.500` : 'brand.500',\n color: 'white',\n },\n _active: {\n bgColor: `${props.colorScheme}.500` ?? '#f8f8f8d1',\n color: props.colorScheme === 'white' ? 'black' : 'white' ?? props.colorScheme,\n },\n };\n },\n },\n },\n};\n","export default {\n Link: {\n baseStyle: {\n color: 'brand.500',\n _hover: { color: 'brand.600' },\n _focus: { boxShadow: 'none' },\n },\n },\n};\n","export default {\n Popover: {\n baseStyle: {\n zIndex: 134,\n },\n variants: {\n responsive: {\n popper: {\n maxW: 'unset',\n width: 'unset',\n },\n },\n },\n },\n};\n","import { createBreakpoints } from '@chakra-ui/theme-tools';\nimport {\n smallDeviceWidth,\n medium745DeviceWidth,\n mediumDeviceWidth,\n largeDeviceWidth,\n doubleLargeDeviceWidth,\n} from '@Utils/commonParameters';\n\nexport default createBreakpoints({\n sm: `${smallDeviceWidth}px`,\n md: `${medium745DeviceWidth}px`,\n lg: `${mediumDeviceWidth}px`,\n xl: `${largeDeviceWidth}px`,\n '2xl': `${doubleLargeDeviceWidth}px`,\n});\n","import { extendTheme } from '@chakra-ui/react';\n\nimport styles from './styles';\nimport components from './components';\nimport colors from './colors';\nimport breakpoints from './breakpoints';\nimport textStyles from './textStyles';\n\nconst theme = extendTheme({\n breakpoints,\n styles: {\n ...styles,\n },\n textStyles,\n colors: {\n ...colors,\n },\n components: {\n ...components,\n },\n});\n\nexport default theme;\n","export default {\n global: (props) => ({\n '*': {\n // TODO: 升級到 React 18 and Chakra UI v2.0,並設定特定的 localStorage key 後,移除以下\n borderColor: props.theme.colors.gray[200],\n '::placeholder': {\n color: props.theme.colors.gray[400],\n },\n },\n body: {\n bgColor: '#f0f2f5',\n color: 'rgba(0, 0, 0, 1)',\n },\n button: {\n _hover: {\n cursor: 'pointer',\n },\n },\n input: {\n padding: '0px',\n borderLeft: 'none',\n borderTop: 'none',\n borderRight: 'none',\n },\n }),\n};\n","export default {};\n","import ReactDOM from 'react-dom';\nimport utc from 'dayjs/plugin/utc';\nimport timezone from 'dayjs/plugin/timezone';\nimport dayjs from 'dayjs';\nimport { PersistGate } from 'redux-persist/integration/react';\nimport { Provider } from 'react-redux';\nimport { ReactQueryDevtools } from 'react-query/devtools';\nimport { ChakraProvider } from '@chakra-ui/react';\nimport { ErrorHandler } from '@Components/errorHandler';\nimport { store, persistor } from './store';\nimport 'regenerator-runtime/runtime';\nimport './i18n';\nimport AppRoute from './routes/app';\nimport PageLoading from './components/pageLoading';\nimport { QueryClientProvider } from './queryClient';\n\nimport theme from './theme';\n\n// dayjs extend plugin\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\n// 當執行的時候,會把 AppRoute 的 Component,render 到 root 這個 DOM 節點上面去\nReactDOM.render(\n \n \n } persistor={persistor}>\n \n \n \n \n \n \n \n \n ,\n document.getElementById('root'),\n);\n","/**\n * 收件者常數\n */\n\nimport i18next from 'i18next';\n\n// 草稿選擇要發送的來賓類型\nexport const RECEIVER_TYPE = {\n none: null, // 沒選任一\n choose: -1, // 自選\n all: 0, // 名單全部\n import: 1, // 匯入票\n signup: 2, // 報名票\n valid: 3, // 有效票\n validSignup: 4, // 有效報名票\n};\n\nexport const RECEIVER_TYPE_SELECTIONS = [\n {\n key: RECEIVER_TYPE.none,\n name: i18next.t('common.pleaseSelectParticipant'),\n i18key: 'common.pleaseSelectParticipant',\n },\n {\n key: RECEIVER_TYPE.choose,\n name: i18next.t('common.chooseParticipant'),\n i18key: 'common.chooseParticipant',\n },\n {\n key: RECEIVER_TYPE.all,\n name: i18next.t('common.allParticipant'),\n i18key: 'common.allParticipant',\n },\n {\n key: RECEIVER_TYPE.valid,\n name: i18next.t('common.allValidParticipant'),\n i18key: 'common.allValidParticipant',\n },\n {\n key: RECEIVER_TYPE.import,\n name: i18next.t('common.allImportTicket'),\n i18key: 'common.allImportTicket',\n },\n {\n key: RECEIVER_TYPE.signup,\n name: i18next.t('common.allSignUpTicket'),\n i18key: 'common.allSignUpTicket',\n },\n {\n key: RECEIVER_TYPE.validSignup,\n name: i18next.t('common.validSignup'),\n i18key: 'common.validSignup',\n },\n];\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n userRoles: [],\n isLoggedIn: false,\n isLoadingCheckLogin: false,\n checkLoginMessage: '',\n checkLoginFailed: '',\n\n isLoadingRegister: false,\n registerMessage: '',\n registerFailed: '',\n\n isLoadingCheckRepeatAccount: false,\n checkRepeatAccountMessage: {},\n checkRepeatAccountFailed: '',\n\n isLoadingEmailAuthenticated: false,\n isEmailAuthenticatedMessage: {},\n isEmailAuthenticatedFailed: '',\n\n isLoadingReSendRegisterAuthenticated: false,\n reSendRegisterAuthenticatedMessage: {},\n reSendRegisterAuthenticatedFailed: '',\n\n isLoadingSendForgotPasswordEmail: false,\n sendForgotPasswordEmailMessage: {},\n sendForgotPasswordEmailFailed: '',\n\n isLoadingResetNewPassword: false,\n resetNewPasswordMessage: {},\n resetNewPasswordFailed: '',\n\n isLoadingCheckTokenExpired: false,\n checkTokenExpiredMessage: '',\n checkTokenExpiredFailed: '',\n};\n\nconst initializeStates = JSON.parse(JSON.stringify(state));\n\nfunction authReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initializeStates,\n userRoles: globalState.userRoles,\n };\n // 設定 roles\n case actionTypes.SET_USER_ROLES:\n return {\n ...globalState,\n userRoles: action.roles,\n };\n case actionTypes.SET_IS_LOGGED_IN:\n return {\n ...globalState,\n isLoggedIn: action.isLoggedIn,\n };\n case actionTypes.SET_IS_LOGIN:\n return {\n ...globalState,\n };\n case actionTypes.SET_USER_AUTHENTICATED:\n return {\n ...globalState,\n };\n case actionTypes.LOGOUT:\n return {\n ...globalState,\n };\n // 登入\n case actionTypes.CHECK_LOGIN_PENDING:\n return {\n ...globalState,\n isLoadingCheckLogin: true,\n };\n case actionTypes.CHECK_LOGIN_FULFILLED:\n return {\n ...globalState,\n isLoadingCheckLogin: false,\n checkLoginMessage: action.data,\n checkLoginFailed: '',\n };\n case actionTypes.CHECK_LOGIN_FAILURE:\n return {\n ...globalState,\n isLoadingCheckLogin: false,\n checkLoginMessage: '',\n checkLoginFailed: action.error,\n };\n // 信箱驗證\n case actionTypes.POST_REGISTER_AUTHENTICATED_PENDING:\n return {\n ...globalState,\n isLoadingEmailAuthenticated: true,\n };\n case actionTypes.POST_REGISTER_AUTHENTICATED_FULFILLED:\n return {\n ...globalState,\n isLoadingEmailAuthenticated: false,\n isEmailAuthenticatedMessage: action.data,\n };\n case actionTypes.POST_REGISTER_AUTHENTICATED_FAILURE:\n return {\n ...globalState,\n isLoadingEmailAuthenticated: false,\n isEmailAuthenticatedFailed: action.error,\n };\n // 重發驗證信\n case actionTypes.RESEND_REGISTER_AUTHENTICATED_PENDING:\n return {\n ...globalState,\n isLoadingReSendRegisterAuthenticated: true,\n };\n case actionTypes.RESEND_REGISTER_AUTHENTICATED_FULFILLED:\n return {\n ...globalState,\n isLoadingReSendRegisterAuthenticated: false,\n reSendRegisterAuthenticatedMessage: action.data,\n };\n case actionTypes.RESEND_REGISTER_AUTHENTICATED_FAILURE:\n return {\n ...globalState,\n isLoadingReSendRegisterAuthenticated: false,\n reSendRegisterAuthenticatedFailed: action.error,\n };\n // 註冊\n case actionTypes.POST_REGISTER_PENDING:\n return {\n ...globalState,\n isLoadingRegister: true,\n };\n case actionTypes.POST_REGISTER_FULFILLED:\n return {\n ...globalState,\n isLoadingRegister: false,\n registerMessage: action.data,\n registerFailed: '',\n };\n case actionTypes.POST_REGISTER_FAILURE:\n return {\n ...globalState,\n isLoadingRegister: false,\n registerMessage: '',\n registerFailed: action.error,\n };\n\n // 註冊時檢查重複帳號\n case actionTypes.CHECK_REPEAT_ACCOUNT_PENDING:\n return {\n ...globalState,\n isLoadingCheckRepeatAccount: true,\n };\n case actionTypes.CHECK_REPEAT_ACCOUNT_FULFILLED:\n return {\n ...globalState,\n isLoadingCheckRepeatAccount: false,\n checkRepeatAccountMessage: action.data,\n };\n case actionTypes.CHECK_REPEAT_ACCOUNT_FAILURE:\n return {\n ...globalState,\n isLoadingCheckRepeatAccount: false,\n checkRepeatAccountFailed: action.error,\n };\n // 忘記密碼發送密碼重設信\n case actionTypes.SEND_FORGOT_PASSWORD_EMAIL_PENDING:\n return {\n ...globalState,\n isLoadingSendForgotPasswordEmail: true,\n };\n case actionTypes.SEND_FORGOT_PASSWORD_EMAIL_FULFILLED:\n return {\n ...globalState,\n isLoadingSendForgotPasswordEmail: false,\n sendForgotPasswordEmailMessage: action.data,\n sendForgotPasswordEmailFailed: '',\n };\n case actionTypes.SEND_FORGOT_PASSWORD_EMAIL_FAILURE:\n return {\n ...globalState,\n isLoadingSendForgotPasswordEmail: false,\n sendForgotPasswordEmailMessage: '',\n sendForgotPasswordEmailFailed: action.error,\n };\n // 重設密碼\n case actionTypes.RESET_NEW_PASSWORD_PENDING:\n return {\n ...globalState,\n isLoadingResetNewPassword: true,\n };\n case actionTypes.RESET_NEW_PASSWORD_FULFILLED:\n return {\n ...globalState,\n isLoadingResetNewPassword: false,\n resetNewPasswordMessage: action.data,\n };\n case actionTypes.RESET_NEW_PASSWORD_FAILURE:\n return {\n ...globalState,\n isLoadingResetNewPassword: false,\n resetNewPasswordFailed: action.error,\n };\n // 檢查 token 是否過期\n case actionTypes.CHECK_TOKEN_EXPIRED_PENDING:\n return {\n ...globalState,\n isLoadingCheckTokenExpired: true,\n };\n case actionTypes.CHECK_TOKEN_EXPIRED_FULFILLED:\n return {\n ...globalState,\n isLoadingCheckTokenExpired: false,\n checkTokenExpiredMessage: action.data,\n checkTokenExpiredFailed: '',\n };\n case actionTypes.CHECK_TOKEN_EXPIRED_FAILURE:\n return {\n ...globalState,\n isLoadingCheckTokenExpired: false,\n checkTokenExpiredMessage: '',\n checkTokenExpiredFailed: action.error,\n };\n default:\n return globalState;\n }\n}\nexport { authReducer as default };\n","// TODO: 待全部轉移到 event reducer, 移除此 reducer\n\nimport * as actionTypes from '../actionTypes';\n\nconst state = {\n eventKey: '',\n eventName: '',\n eventProjectId: '',\n eventStartDateTime: '',\n eventEndDateTime: '',\n eventTimeZone: '',\n eventLocation: '',\n eventHealthyFormIsActive: false,\n eventSendMode: '',\n eventCheckinIdPrefix: '',\n eventFounder: '',\n eventBeginAt: null,\n eventEndAt: null,\n eventBannerUri: '',\n eventDescription: '',\n isEventActive: false,\n isEventSignUpEnabled: false,\n eventSignUpBannerUri: '',\n eventHomePageUuid: '',\n eventLanguages: [],\n eventDefaultLang: '',\n};\n\nfunction routingReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.SWITCH_EVENT: {\n const eventInfo = action.data;\n\n if (!eventInfo) return state;\n if (Object.keys(eventInfo)?.length === 0) return state;\n\n return {\n ...globalState,\n ...eventInfo,\n isEventActive: eventInfo.isActive,\n isEventSignUpEnabled: eventInfo.isSignUpEnabled,\n eventSignUpBannerUri: eventInfo.signUpBannerUri,\n eventBannerUri: eventInfo.bannerUri,\n eventHomePageUuid: eventInfo.uuid,\n eventDescription: eventInfo.description,\n eventKey: eventInfo.key,\n eventName: eventInfo.name,\n eventFounder: eventInfo.founder,\n eventProjectId: eventInfo.projectId,\n eventStartDateTime: eventInfo.beginAt,\n eventEndDateTime: eventInfo.endAt,\n eventBeginAt: eventInfo.beginAt,\n eventEndAt: eventInfo.endAt,\n eventTimeZone: eventInfo.timeZone,\n eventLocation: eventInfo.location,\n eventHealthyFormIsActive: eventInfo.healthyFormIsActive,\n eventSendMode: eventInfo.sendMode,\n eventCheckinIdPrefix: eventInfo.checkinIdPrefix,\n eventLanguages: eventInfo.language,\n eventDefaultLang: eventInfo.defaultLang,\n eventRoles: eventInfo.roles,\n };\n }\n default:\n return globalState;\n }\n}\n\nexport { routingReducer as default };\n","// after logining getting data\n\nimport * as actionTypes from '../actionTypes';\n\nconst state = {\n userAuth: '',\n};\n\nfunction loginReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.SET_USER_AUTHENTICATED:\n return {\n ...globalState,\n userAuth: action.token,\n };\n case actionTypes.LOGOUT:\n return {\n ...globalState,\n userAuth: '',\n };\n default:\n return globalState;\n }\n}\nexport { loginReducer as default };\n","// in localStorage data\n\nimport * as actionTypes from '../actionTypes';\n\nconst state = {\n userLanguage: '',\n isShowPriorSettingBlock: true,\n isOpenedSmsEditInstructionPanel: true,\n listNoticeShow: ['1'],\n isHiddenRightBottomHint: false,\n isHiddenEmailTemplateHint: false,\n isHiddenHealthFormHint: false,\n isHiddenTutorialTabHint: false, // 隱藏步驟流程 Tab\n isEmailFormatChecked: true,\n isCellPhoneFormatChecked: true,\n isVisitFirstTime: true, // 第一次造訪平台\n isNotBadgeLabelMachineRentInformationShown: false, // 不顯示標籤機租用資訊 toast\n};\n\nfunction envSettingReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.SET_USER_LANGUAGE:\n return {\n ...globalState,\n userLanguage: action.data,\n };\n case actionTypes.SET_IS_SHOW_PRIOR_SETTING_BLOCK:\n return {\n ...globalState,\n isShowPriorSettingBlock: !globalState.isShowPriorSettingBlock,\n };\n case actionTypes.SET_LIST_NOTICE_SHOW:\n return {\n ...globalState,\n listNoticeShow: action.key,\n };\n case actionTypes.SET_IS_OPENED_SMS_EDIT_INSTRUCTION_PANEL:\n return {\n ...globalState,\n isOpenedSmsEditInstructionPanel: action.isOpened,\n };\n case actionTypes.SET_IS_HIDDEN_RIGHT_BOTTOM_HINT:\n return {\n ...globalState,\n isHiddenRightBottomHint: action.isHidden,\n };\n case actionTypes.SET_IS_HIDDEN_EMAIL_TEMPLATE_HINT:\n return {\n ...globalState,\n isHiddenEmailTemplateHint: action.isHidden,\n };\n case actionTypes.SET_IS_HIDDEN_HEALTH_FORM_HINT:\n return {\n ...globalState,\n isHiddenHealthFormHint: action.isHidden,\n };\n case actionTypes.SET_IS_HIDDEN_TUTORIAL_TAB_HINT:\n return {\n ...globalState,\n isHiddenTutorialTabHint: action.isHidden,\n };\n case actionTypes.SET_IS_EMAIL_FORMAT_CHECKED:\n return {\n ...globalState,\n isEmailFormatChecked: action.isChecked,\n };\n case actionTypes.SET_IS_CELL_PHONE_FORMAT_CHECKED:\n return {\n ...globalState,\n isCellPhoneFormatChecked: action.isChecked,\n };\n case actionTypes.SET_IS_VISIT_FIRST_TIME:\n return {\n ...globalState,\n isVisitFirstTime: action.isFirstTime,\n };\n case actionTypes.SET_IS_NOT_BADGE_LABEL_MACHINE_RENT_INFORMATION_SHOWN:\n return {\n ...globalState,\n isNotBadgeLabelMachineRentInformationShown: action.isChecked,\n };\n default:\n return globalState;\n }\n}\n\nexport { envSettingReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n eventKey: '',\n eventName: '',\n eventProjectId: '',\n eventStartDateTime: '',\n eventEndDateTime: '',\n eventTimeZone: '',\n eventLocation: '',\n eventHealthyFormIsActive: false,\n eventSendMode: '',\n eventCheckinIdPrefix: '',\n eventFounder: '',\n eventBeginAt: null,\n eventEndAt: null,\n eventBannerUri: '',\n eventDescription: '',\n isEventActive: false,\n isEventSignUpEnabled: false,\n eventSignUpBannerUri: '',\n eventHomePageUuid: '',\n};\n\nfunction eventReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.SWITCH_EVENT: {\n const eventInfo = action.data;\n\n if (!eventInfo) return state;\n if (Object.keys(eventInfo)?.length === 0) return state;\n\n return {\n ...globalState,\n ...eventInfo,\n isEventActive: eventInfo.isActive,\n isEventSignUpEnabled: eventInfo.isSignUpEnabled,\n eventSignUpBannerUri: eventInfo.signUpBannerUri,\n eventBannerUri: eventInfo.bannerUri,\n eventHomePageUuid: eventInfo.uuid,\n eventDescription: eventInfo.description,\n eventKey: eventInfo.key,\n eventName: eventInfo.name,\n eventFounder: eventInfo.founder,\n eventProjectId: eventInfo.projectId,\n eventStartDateTime: eventInfo.beginAt,\n eventEndDateTime: eventInfo.endAt,\n eventBeginAt: eventInfo.beginAt,\n eventEndAt: eventInfo.endAt,\n eventTimeZone: eventInfo.timeZone,\n eventLocation: eventInfo.location,\n eventHealthyFormIsActive: eventInfo.healthyFormIsActive,\n eventSendMode: eventInfo.sendMode,\n eventCheckinIdPrefix: eventInfo.checkinIdPrefix,\n };\n }\n default:\n return globalState;\n }\n}\n\nexport { eventReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetDeviceCodeList: false,\n getDeviceCodeListMessage: '',\n getDeviceCodeListFailed: '',\n\n isLoadingGetDisuseDeviceCode: false,\n getDisuseDeviceCodeMessage: '',\n getDisuseDeviceCodeFailed: '',\n\n isLoadingPostCreateDeviceCode: false,\n postCreateDeviceCodeMessage: '',\n postCreateDeviceCodeFailed: '',\n\n isLoadingDeleteDeviceCode: false,\n deleteDeviceCodeMessage: '',\n deleteDeviceCodeFailed: '',\n};\n\nconst initialState = JSON.parse(JSON.stringify(state));\n\nfunction deviceCodeReducer(globalstate = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initialState,\n };\n case actionTypes.GET_DEVICE_CODE_LIST_PENDING:\n return {\n ...globalstate,\n isLoadingGetDeviceCodeList: true,\n };\n case actionTypes.GET_DEVICE_CODE_LIST_FULFILLED:\n return {\n ...globalstate,\n isLoadingGetDeviceCodeList: false,\n getDeviceCodeListMessage: action.data,\n getDeviceCodeListFailed: '',\n };\n case actionTypes.GET_DEVICE_CODE_LIST_FAILURE:\n return {\n ...globalstate,\n isLoadingGetDeviceCodeList: false,\n getDeviceCodeListMessage: '',\n getDeviceCodeListFailed: action.error,\n };\n case actionTypes.GET_DISUSE_DEVICE_CODE_PENDING:\n return {\n ...globalstate,\n isLoadingGetDisuseDeviceCode: true,\n };\n case actionTypes.GET_DISUSE_DEVICE_CODE_FULFILLED:\n return {\n ...globalstate,\n isLoadingGetDisuseDeviceCode: false,\n getDisuseDeviceCodeMessage: action.data,\n getDisuseDeviceCodeFailed: '',\n };\n case actionTypes.GET_DISUSE_DEVICE_CODE_FAILURE:\n return {\n ...globalstate,\n isLoadingGetDisuseDeviceCode: false,\n getDisuseDeviceCodeMessage: '',\n getDisuseDeviceCodeFailed: action.error,\n };\n case actionTypes.POST_CREATE_DEVICE_CODE_PENDING:\n return {\n ...globalstate,\n isLoadingPostCreateDeviceCode: true,\n };\n case actionTypes.POST_CREATE_DEVICE_CODE_FULFILLED:\n return {\n ...globalstate,\n isLoadingPostCreateDeviceCode: false,\n postCreateDeviceCodeMessage: action.data,\n postCreateDeviceCodeFailed: '',\n };\n case actionTypes.POST_CREATE_DEVICE_CODE_FAILURE:\n return {\n ...globalstate,\n isLoadingPostCreateDeviceCode: false,\n postCreateDeviceCodeMessage: '',\n postCreateDeviceCodeFailed: action.error,\n };\n case actionTypes.DELETE_DEVICE_CODE_PENDING:\n return {\n ...globalstate,\n isLoadingDeleteDeviceCode: true,\n };\n case actionTypes.DELETE_DEVICE_CODE_FULFILLED:\n return {\n ...globalstate,\n isLoadingDeleteDeviceCode: false,\n deleteDeviceCodeMessage: action.data,\n deleteDeviceCodeFailed: '',\n };\n case actionTypes.DELETE_DEVICE_CODE_FAILURE:\n return {\n ...globalstate,\n isLoadingDeleteDeviceCode: false,\n deleteDeviceCodeMessage: '',\n deleteDeviceCodeFailed: action.error,\n };\n default:\n return globalstate;\n }\n}\n\nexport { deviceCodeReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetBoothDeviceCodeList: false,\n getBoothDeviceCodeListMessage: '',\n getBoothDeviceCodeListFailed: '',\n\n isLoadingGetDisuseBoothDeviceCode: false,\n getDisuseBoothDeviceCodeMessage: '',\n getDisuseBoothDeviceCodeFailed: '',\n\n isLoadingPostCreateBoothDeviceCode: false,\n postCreateBoothDeviceCodeMessage: '',\n postCreateBoothDeviceCodeFailed: '',\n\n isLoadingDeleteBoothDeviceCode: false,\n deleteBoothDeviceCodeMessage: '',\n deleteBoothDeviceCodeFailed: '',\n};\n\nconst initialState = JSON.parse(JSON.stringify(state));\n\nfunction boothDeviceCodeReducer(globalstate = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initialState,\n };\n case actionTypes.GET_BOOTH_DEVICE_CODE_LIST_PENDING:\n return {\n ...globalstate,\n isLoadingGetBoothDeviceCodeList: true,\n };\n case actionTypes.GET_BOOTH_DEVICE_CODE_LIST_FULFILLED:\n return {\n ...globalstate,\n isLoadingGetBoothDeviceCodeList: false,\n getBoothDeviceCodeListMessage: action.data,\n getBoothDeviceCodeListFailed: '',\n };\n case actionTypes.GET_BOOTH_DEVICE_CODE_LIST_FAILURE:\n return {\n ...globalstate,\n isLoadingGetBoothDeviceCodeList: false,\n getBoothDeviceCodeListMessage: '',\n getBoothDeviceCodeListFailed: action.error,\n };\n case actionTypes.GET_DISUSE_BOOTH_DEVICE_CODE_PENDING:\n return {\n ...globalstate,\n isLoadingGetDisuseBoothDeviceCode: true,\n };\n case actionTypes.GET_DISUSE_BOOTH_DEVICE_CODE_FULFILLED:\n return {\n ...globalstate,\n isLoadingGetDisuseBoothDeviceCode: false,\n getDisuseBoothDeviceCodeMessage: action.data,\n getDisuseBoothDeviceCodeFailed: '',\n };\n case actionTypes.GET_DISUSE_BOOTH_DEVICE_CODE_FAILURE:\n return {\n ...globalstate,\n isLoadingGetDisuseBoothDeviceCode: false,\n getDisuseBoothDeviceCodeMessage: '',\n getDisuseBoothDeviceCodeFailed: action.error,\n };\n case actionTypes.POST_CREATE_BOOTH_DEVICE_CODE_PENDING:\n return {\n ...globalstate,\n isLoadingPostCreateBoothDeviceCode: true,\n };\n case actionTypes.POST_CREATE_BOOTH_DEVICE_CODE_FULFILLED:\n return {\n ...globalstate,\n isLoadingPostCreateBoothDeviceCode: false,\n postCreateBoothDeviceCodeMessage: action.data,\n postCreateBoothDeviceCodeFailed: '',\n };\n case actionTypes.POST_CREATE_BOOTH_DEVICE_CODE_FAILURE:\n return {\n ...globalstate,\n isLoadingPostCreateBoothDeviceCode: false,\n postCreateBoothDeviceCodeMessage: '',\n postCreateBoothDeviceCodeFailed: action.error,\n };\n case actionTypes.DELETE_BOOTH_DEVICE_CODE_PENDING:\n return {\n ...globalstate,\n isLoadingDeleteBoothDeviceCode: true,\n };\n case actionTypes.DELETE_BOOTH_DEVICE_CODE_FULFILLED:\n return {\n ...globalstate,\n isLoadingDeleteBoothDeviceCode: false,\n deleteBoothDeviceCodeMessage: action.data,\n deleteBoothDeviceCodeFailed: '',\n };\n case actionTypes.DELETE_BOOTH_DEVICE_CODE_FAILURE:\n return {\n ...globalstate,\n isLoadingDeleteBoothDeviceCode: false,\n deleteBoothDeviceCodeMessage: '',\n deleteBoothDeviceCodeFailed: action.error,\n };\n default:\n return globalstate;\n }\n}\n\nexport { boothDeviceCodeReducer as default };\n","import * as R from 'ramda';\nimport * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetProfile: false,\n getProfileMessage: '',\n getProfileFailed: '',\n\n isLoadingUpdateProfile: false,\n updateProfileMessage: '',\n updateProfileFailed: '',\n};\n\nconst initialState = R.clone(state);\n\nfunction profileReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initialState,\n };\n case actionTypes.GET_PROFILE_PENDING:\n return {\n ...globalState,\n isLoadingGetProfile: true,\n };\n case actionTypes.GET_PROFILE_FULFILLED:\n return {\n ...globalState,\n isLoadingGetProfile: false,\n getProfileMessage: action.data,\n getProfileFailed: '',\n };\n case actionTypes.GET_PROFILE_FAILURE:\n return {\n ...globalState,\n isLoadingGetProfile: false,\n getProfileFailed: action.error,\n getProfileMessage: '',\n };\n case actionTypes.UPDATE_PROFILE_PENDING:\n return {\n ...globalState,\n isLoadingUpdateProfile: true,\n };\n case actionTypes.UPDATE_PROFILE_FULFILLED:\n return {\n ...globalState,\n isLoadingUpdateProfile: false,\n updateProfileMessage: action.data,\n updateProfileFailed: '',\n };\n case actionTypes.UPDATE_PROFILE_FAILURE:\n return {\n ...globalState,\n isLoadingUpdateProfile: false,\n updateProfileMessage: '',\n updateProfileFailed: action.error,\n };\n default:\n return globalState;\n }\n}\n\nexport { profileReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetEmailTemplates: false,\n getEmailTemplatesMessage: '',\n getEmailTemplatesFailed: '',\n\n isLoadingPostEmailTemplate: false,\n postEmailTemplateMessage: '',\n postEmailTemplateFailed: '',\n\n isLoadingPatchEmailTemplate: false,\n patchEmailTemplateMessage: '',\n patchEmailTemplateFailed: '',\n\n isLoadingDeleteEmailTemplate: false,\n deleteEmailTemplateMessage: '',\n deleteEmailTemplateFailed: '',\n};\n\nconst initializeStates = JSON.parse(JSON.stringify(state));\n\nfunction emailTemplateReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initializeStates,\n };\n case actionTypes.GET_EMAIL_TEMPLATES_PENDING:\n return {\n ...globalState,\n isLoadingGetEmailTemplates: true,\n };\n case actionTypes.GET_EMAIL_TEMPLATES_FULFILLED:\n return {\n ...globalState,\n isLoadingGetEmailTemplates: false,\n getEmailTemplatesMessage: action.data,\n getEmailTemplatesFailed: '',\n };\n case actionTypes.GET_EMAIL_TEMPLATES_FAILURE:\n return {\n ...globalState,\n isLoadingGetEmailTemplates: false,\n getEmailTemplatesFailed: action.error,\n getEmailTemplatesMessage: '',\n };\n case actionTypes.POST_EMAIL_TEMPLATE_PENDING:\n return {\n ...globalState,\n isLoadingPostEmailTemplate: true,\n };\n case actionTypes.POST_EMAIL_TEMPLATE_FULFILLED:\n return {\n ...globalState,\n isLoadingPostEmailTemplate: false,\n postEmailTemplateMessage: action.data,\n postEmailTemplateFailed: '',\n };\n case actionTypes.POST_EMAIL_TEMPLATE_FAILURE:\n return {\n ...globalState,\n isLoadingPostEmailTemplate: false,\n postEmailTemplateMessage: '',\n postEmailTemplateFailed: action.error,\n };\n case actionTypes.PATCH_EMAIL_TEMPLATE_PENDING:\n return {\n ...globalState,\n isLoadingPatchEmailTemplate: true,\n };\n case actionTypes.PATCH_EMAIL_TEMPLATE_FULFILLED:\n return {\n ...globalState,\n isLoadingPatchEmailTemplate: false,\n patchEmailTemplateMessage: action.data,\n patchEmailTemplateFailed: '',\n };\n case actionTypes.PATCH_EMAIL_TEMPLATE_FAILURE:\n return {\n ...globalState,\n isLoadingPatchEmailTemplate: false,\n patchEmailTemplateMessage: '',\n patchEmailTemplateFailed: action.error,\n };\n case actionTypes.DELETE_EMAIL_TEMPLATE_PENDING:\n return {\n ...globalState,\n isLoadingDeleteEmailTemplate: true,\n };\n case actionTypes.DELETE_EMAIL_TEMPLATE_FULFILLED:\n return {\n ...globalState,\n isLoadingDeleteEmailTemplate: false,\n deleteEmailTemplateMessage: action.data,\n deleteEmailTemplateFailed: '',\n };\n case actionTypes.DELETE_EMAIL_TEMPLATE_FAILURE:\n return {\n ...globalState,\n isLoadingDeleteEmailTemplate: false,\n deleteEmailTemplateMessage: '',\n deleteEmailTemplateFailed: action.error,\n };\n default:\n return globalState;\n }\n}\n\nexport { emailTemplateReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetEmailList: false,\n getEmailListMessage: '',\n getEmailListFailed: '',\n\n isLoadingGetEmailDraft: false,\n getEmailDraftMessage: '',\n getEmailDraftFailed: '',\n\n isLoadingPostEmailList: false,\n postEmailListMessage: '',\n postEmailListFailed: '',\n\n isLoadingDeleteEmailList: false,\n deleteEmailListMessage: '',\n deleteEmailListFailed: '',\n\n isLoadingPatchEmailList: false,\n patchEmailListMessage: '',\n patchEmailListFailed: '',\n\n isLoadingPostCopyEmailList: false,\n postCopyEmailListMessage: '',\n postCopyEmailListFailed: '',\n\n isLoadingGetParticularAttendeeNumber: false,\n getParticularAttendeeNumberMessage: '',\n getParticularAttendeeNumberFailed: '',\n\n isLoadingGetEmailPreview: false,\n getEmailPreviewMessage: '',\n getEmailPreviewFailed: '',\n};\n\nconst initialState = JSON.parse(JSON.stringify(state));\n\nfunction emailListReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initialState,\n };\n case actionTypes.GET_EMAIL_LIST_PENDING:\n return {\n ...globalState,\n isLoadingGetEmailList: true,\n };\n case actionTypes.GET_EMAIL_LIST_FULFILLED:\n return {\n ...globalState,\n isLoadingGetEmailList: false,\n getEmailListMessage: action.data,\n getEmailListFailed: '',\n };\n case actionTypes.GET_EMAIL_LIST_FAILURE:\n return {\n ...globalState,\n isLoadingGetEmailList: false,\n getEmailListMessage: '',\n getEmailListFailed: action.error,\n };\n case actionTypes.GET_EMAIL_DRAFT_PEDNING:\n return {\n ...globalState,\n isLoadingGetEmailDraft: true,\n };\n case actionTypes.GET_EMAIL_DRAFT_FULFILLED:\n return {\n ...globalState,\n isLoadingGetEmailDraft: false,\n getEmailDraftMessage: action.data,\n getEmailDraftFailed: '',\n };\n case actionTypes.GET_EMAIL_DRAFT_FAILURE:\n return {\n ...globalState,\n isLoadingGetEmailDraft: false,\n getEmailDraftMessage: '',\n getEmailDraftFailed: action.error,\n };\n case actionTypes.POST_EMAIL_LIST_PENDING:\n return {\n ...globalState,\n isLoadingPostEmailList: true,\n };\n case actionTypes.POST_EMAIL_LIST_FULFILLED:\n return {\n ...globalState,\n isLoadingPostEmailList: false,\n postEmailListMessage: action.data,\n postEmailListFailed: '',\n };\n case actionTypes.POST_EMAIL_LIST_FAILURE:\n return {\n ...globalState,\n isLoadingPostEmailList: false,\n postEmailListMessage: '',\n postEmailListFailed: action.error,\n };\n case actionTypes.DELETE_EMAIL_LIST_PENDING:\n return {\n ...globalState,\n isLoadingDeleteEmailList: true,\n };\n case actionTypes.DELETE_EMAIL_LIST_FULFILLED:\n return {\n ...globalState,\n isLoadingDeleteEmailList: false,\n deleteEmailListMessage: action.data,\n deleteEmailListFailed: '',\n };\n case actionTypes.DELETE_EMAIL_LIST_FAILURE:\n return {\n ...globalState,\n isLoadingDeleteEmailList: false,\n deleteEmailListMessage: '',\n deleteEmailListFailed: action.error,\n };\n case actionTypes.PATCH_EMAIL_LIST_PENDING:\n return {\n ...globalState,\n isLoadingPatchEmailList: true,\n };\n case actionTypes.PATCH_EMAIL_LIST_FULFILLED:\n return {\n ...globalState,\n isLoadingPatchEmailList: false,\n patchEmailListMessage: action.data,\n patchEmailListFailed: '',\n };\n case actionTypes.PATCH_EMAIL_LIST_FAILURE:\n return {\n ...globalState,\n isLoadingPatchEmailList: false,\n patchEmailListMessage: '',\n patchEmailListFailed: action.error,\n };\n case actionTypes.POST_COPY_EMAIL_LIST_PENDING:\n return {\n ...globalState,\n isLoadingPostCopyEmailList: true,\n };\n case actionTypes.POST_COPY_EMAIL_LIST_FULFILLED:\n return {\n ...globalState,\n isLoadingPostCopyEmailList: false,\n postCopyEmailListMessage: action.data,\n postCopyEmailListFailed: '',\n };\n case actionTypes.POST_COPY_EMAIL_LIST_FAILURE:\n return {\n ...globalState,\n isLoadingPostCopyEmailList: false,\n postCopyEmailListMessage: '',\n postCopyEmailListFailed: action.error,\n };\n case actionTypes.GET_PARTICULAR_ATTENDEE_NUMBER_PENDING:\n return {\n ...globalState,\n isLoadingGetParticularAttendeeNumber: true,\n };\n case actionTypes.GET_PARTICULAR_ATTENDEE_NUMBER_FULFILLED:\n return {\n ...globalState,\n isLoadingGetParticularAttendeeNumber: false,\n getParticularAttendeeNumberMessage: action.data,\n getParticularAttendeeNumberFailed: '',\n };\n case actionTypes.GET_PARTICULAR_ATTENDEE_NUMBER_FAILURE:\n return {\n ...globalState,\n isLoadingGetParticularAttendeeNumber: false,\n getParticularAttendeeNumberMessage: '',\n getParticularAttendeeNumberFailed: action.error,\n };\n case actionTypes.GET_EMAIL_PREVIEW_PENDING:\n return {\n ...globalState,\n isLoadingGetEmailPreview: true,\n };\n case actionTypes.GET_EMAIL_PREVIEW_FULFILLED:\n return {\n ...globalState,\n isLoadingGetEmailPreview: false,\n getEmailPreviewMessage: action.data,\n getEmailPreviewFailed: '',\n };\n case actionTypes.GET_EMAIL_PREVIEW_FAILURE:\n return {\n ...globalState,\n isLoadingGetEmailPreview: false,\n getEmailPreviewMessage: '',\n getEmailPreviewFailed: action.error,\n };\n default:\n return globalState;\n }\n}\n\nexport { emailListReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetSingleEmailRecord: false,\n getSingleEmailRecordMessage: '',\n getSingleEmailRecordFailed: '',\n};\n\nconst initializeStates = JSON.parse(JSON.stringify(state));\n\nfunction emailRecordReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initializeStates,\n };\n case actionTypes.GET_SINGLE_EMAIL_RECORD_PENDING:\n return {\n ...globalState,\n isLoadingGetSingleEmailRecord: true,\n };\n case actionTypes.GET_SINGLE_EMAIL_RECORD_FULFILLED:\n return {\n ...globalState,\n isLoadingGetSingleEmailRecord: false,\n getSingleEmailRecordMessage: action.data,\n getSingleEmailRecordFailed: '',\n };\n case actionTypes.GET_SINGLE_EMAIL_RECORD_FAILURE:\n return {\n ...globalState,\n isLoadingGetSingleEmailRecord: false,\n getSingleEmailRecordMessage: '',\n getSingleEmailRecordFailed: action.error,\n };\n default:\n return globalState;\n }\n}\nexport { emailRecordReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetSmsList: false,\n getSmsListMessage: '',\n getSmsListFailed: '',\n\n isLoadingGetSmsDraft: false,\n getSmsDraftMessage: '',\n getSmsDraftFailed: '',\n\n isLoadingPostSmsDraft: false,\n postSmsDraftMessage: '',\n postSmsDraftFailed: '',\n\n isLoadingPatchSmsDraft: false,\n patchSmsDraftMessage: '',\n patchSmsDraftFailed: '',\n\n isLoadingDeleteSmsDraft: false,\n deleteSmsDraftMessage: '',\n deleteSmsDraftFailed: '',\n\n isLoadingPostCopySmsDraft: false,\n postCopySmsDraftMessage: '',\n postCopySmsDraftFailed: '',\n\n isLoadingGetSmsPreview: false,\n getSmsPreviewMessage: '',\n getSmsPreviewFailed: '',\n};\n\nconst initializeStates = JSON.parse(JSON.stringify(state));\n\nfunction smsDraftReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initializeStates,\n };\n case actionTypes.GET_SMS_LIST_PENDING:\n return {\n ...globalState,\n isLoadingGetSmsList: true,\n };\n case actionTypes.GET_SMS_LIST_FULFILLED:\n return {\n ...globalState,\n isLoadingGetSmsList: false,\n getSmsListMessage: action.data,\n getSmsListFailed: '',\n };\n case actionTypes.GET_SMS_LIST_FAILURE:\n return {\n ...globalState,\n isLoadingGetSmsList: false,\n getSmsListMessage: '',\n getSmsListFailed: action.error,\n };\n case actionTypes.GET_SMS_DRAFT_PENDING:\n return {\n ...globalState,\n isLoadingGetSmsDraft: true,\n };\n case actionTypes.GET_SMS_DRAFT_FULFILLED:\n return {\n ...globalState,\n isLoadingGetSmsDraft: false,\n getSmsDraftMessage: action.data,\n getSmsDraftFailed: '',\n };\n case actionTypes.GET_SMS_DRAFT_FAILURE:\n return {\n ...globalState,\n isLoadingGetSmsDraft: false,\n getSmsDraftMessage: '',\n getSmsDraftFailed: action.error,\n };\n case actionTypes.POST_SMS_DRAFT_PENDING:\n return {\n ...globalState,\n isLoadingPostSmsDraft: true,\n };\n case actionTypes.POST_SMS_DRAFT_FULFILLED:\n return {\n ...globalState,\n isLoadingPostSmsDraft: false,\n postSmsDraftMessage: action.data,\n postSmsDraftFailed: '',\n };\n case actionTypes.POST_SMS_DRAFT_FAILURE:\n return {\n ...globalState,\n isLoadingPostSmsDraft: false,\n postSmsDraftMessage: '',\n postSmsDraftFailed: action.error,\n };\n case actionTypes.PATCH_SMS_DRAFT_PENDING:\n return {\n ...globalState,\n isLoadingPatchSmsDraft: true,\n };\n case actionTypes.PATCH_SMS_DRAFT_FULFILLED:\n return {\n ...globalState,\n isLoadingPatchSmsDraft: false,\n patchSmsDraftMessage: action.data,\n patchSmsDraftFailed: '',\n };\n case actionTypes.PATCH_SMS_DRAFT_FAILURE:\n return {\n ...globalState,\n isLoadingPatchSmsDraft: false,\n patchSmsDraftMessage: '',\n patchSmsDraftFailed: action.error,\n };\n case actionTypes.DELETE_SMS_DRAFT_PEDNING:\n return {\n ...globalState,\n isLoadingDeleteSmsDraft: true,\n };\n case actionTypes.DELETE_SMS_DRAFT_FULFILLED:\n return {\n ...globalState,\n isLoadingDeleteSmsDraft: false,\n deleteSmsDraftMessage: action.data,\n deleteSmsDraftFailed: '',\n };\n case actionTypes.DELETE_SMS_DRAFT_FAILURE:\n return {\n ...globalState,\n isLoadingDeleteSmsDraft: false,\n deleteSmsDraftMessage: '',\n deleteSmsDraftFailed: action.error,\n };\n case actionTypes.POST_COPY_SMS_DRAFT_PENDING:\n return {\n ...globalState,\n isLoadingPostCopySmsDraft: true,\n };\n case actionTypes.POST_COPY_SMS_DRAFT_FULFILLED:\n return {\n ...globalState,\n isLoadingPostCopySmsDraft: false,\n postCopySmsDraftMessage: action.data,\n postCopySmsDraftFailed: '',\n };\n case actionTypes.POST_COPY_SMS_DRAFT_FAILURE:\n return {\n ...globalState,\n isLoadingPostCopySmsDraft: false,\n postCopySmsDraftMessage: '',\n postCopySmsDraftFailed: action.error,\n };\n case actionTypes.GET_SMS_PREVIEW_PENDING:\n return {\n ...globalState,\n isLoadingGetSmsPreview: true,\n };\n case actionTypes.GET_SMS_PREVIEW_FULFILLED:\n return {\n ...globalState,\n isLoadingGetSmsPreview: false,\n getSmsPreviewMessage: action.data,\n getSmsPreviewFailed: '',\n };\n case actionTypes.GET_SMS_PREVIEW_FAILURE:\n return {\n ...globalState,\n isLoadingGetSmsPreview: false,\n getSmsPreviewMessage: '',\n getSmsPreviewFailed: action.error,\n };\n default:\n return {\n ...globalState,\n };\n }\n}\n\nexport { smsDraftReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetSingleSmsRecord: false,\n getSingleSmsRecordMessage: '',\n getSingleSmsRecordFailed: '',\n};\n\nconst initializeStates = JSON.parse(JSON.stringify(state));\n\nfunction SmsRecordReducer(globalstate = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initializeStates,\n };\n case actionTypes.GET_SINGLE_SMS_RECORD_PENDING:\n return {\n ...globalstate,\n isLoadingGetSingleSmsRecord: true,\n };\n case actionTypes.GET_SINGLE_SMS_RECORD_FULFILLED:\n return {\n ...globalstate,\n isLoadingGetSingleSmsRecord: false,\n getSingleSmsRecordMessage: action.data,\n getSingleSmsRecordFailed: '',\n };\n case actionTypes.GET_SINGLE_SMS_RECORD_FAILURE:\n return {\n ...globalstate,\n isLoadingGetSingleSmsRecord: false,\n getSingleSmsRecordMessage: '',\n getSingleSmsRecordFailed: action.error,\n };\n default:\n return globalstate;\n }\n}\n\nexport { SmsRecordReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n windowInnerWidth: window.innerWidth,\n isOnline: true,\n // 第一次操作已完成(目前藉由啟動碼已經有最後使用的時間來判定)\n isDoneFirstTime: false,\n tutorialsActiveKey: '',\n};\n\nfunction parameterReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.SET_WINDOW_INNER_WIDTH:\n return {\n ...globalState,\n windowInnerWidth: action.width,\n };\n case actionTypes.IS_DONE_FIRST_TIME:\n return {\n ...globalState,\n isDoneFirstTime: action.isDone,\n };\n case actionTypes.POST_TUTORIALS_ACTIVE_KEY:\n return {\n ...globalState,\n tutorialsActiveKey: action.key,\n };\n case actionTypes.SET_IS_ONLINE:\n return {\n ...globalState,\n isOnline: action.isOnline,\n };\n default:\n return globalState;\n }\n}\n\nexport { parameterReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n totalPoint: null,\n checkInQuota: null,\n isLoadingPostContentToGetRealCost: false,\n postContentToGetRealCostMessage: '',\n postContentToGetRealCostFailed: '',\n};\n\nconst initializeStates = JSON.parse(JSON.stringify(state));\n\nfunction pointReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initializeStates,\n totalPoint: globalState.totalPoint,\n };\n case actionTypes.SET_TOTAL_POINT:\n return {\n ...globalState,\n totalPoint: action.data,\n };\n case actionTypes.SET_CHECKIN_QUOTA:\n return {\n ...globalState,\n checkInQuota: action.data,\n };\n case actionTypes.POST_CONTENT_TO_GET_REAL_COST_PENDING:\n return {\n ...globalState,\n isLoadingPostContentToGetRealCost: true,\n };\n case actionTypes.POST_CONTENT_TO_GET_REAL_COST_FULFILLED:\n return {\n ...globalState,\n isLoadingPostContentToGetRealCost: false,\n postContentToGetRealCostMessage: action.data,\n postContentToGetRealCostFailed: '',\n };\n case actionTypes.POST_CONTENT_TO_GET_REAL_COST_FAILURE:\n return {\n ...globalState,\n isLoadingPostContentToGetRealCost: false,\n postContentToGetRealCostMessage: '',\n postContentToGetRealCostFailed: action.error,\n };\n default:\n return globalState;\n }\n}\n\nexport { pointReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetAttendeeCheckinSituation: false,\n getAttendeeCheckinSituationMessage: '',\n getAttendeeCheckinSituationFailed: '',\n\n isLoadingPostExportStatisticCheckinReport: false,\n postExportStatisticCheckinReportMessage: '',\n postExportStatisticCheckinReportFailed: '',\n\n isLoadingGetCustomizeChartList: false,\n getCustomizeChartListMessage: '',\n getCustomizeChartListFailed: '',\n\n isLoadingPostSingleCustomizeChart: false,\n postSingleCustomizeChartMessage: '',\n postSingleCustomizeChartFailed: '',\n\n isLoadingDeleteSingleCustomizeChart: false,\n deleteSingleCustomizeChartMessage: '',\n deleteSingleCustomizeChartFailed: '',\n};\n\nconst initialState = JSON.parse(JSON.stringify(state));\n\nfunction statisticReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initialState,\n };\n case actionTypes.GET_ATTENDEE_CHECKIN_SITUATION_PENDING:\n return {\n ...globalState,\n isLoadingGetAttendeeCheckinSituation: true,\n };\n case actionTypes.GET_ATTENDEE_CHECKIN_SITUATION_FULFILLED:\n return {\n ...globalState,\n isLoadingGetAttendeeCheckinSituation: false,\n getAttendeeCheckinSituationMessage: action.data,\n getAttendeeCheckinSituationFailed: '',\n };\n case actionTypes.GET_ATTENDEE_CHECKIN_SITUATION_FAILURE:\n return {\n ...globalState,\n isLoadingGetAttendeeCheckinSituation: false,\n getAttendeeCheckinSituationMessage: '',\n getAttendeeCheckinSituationFailed: action.error,\n };\n case actionTypes.POST_EXPORT_STATISTIC_CHECKIN_REPORT_PENDING:\n return {\n ...globalState,\n isLoadingPostExportStatisticCheckinReport: true,\n };\n case actionTypes.POST_EXPORT_STATISTIC_CHECKIN_REPORT_FULFILLED:\n return {\n ...globalState,\n isLoadingPostExportStatisticCheckinReport: false,\n postExportStatisticCheckinReportMessage: action.data,\n postExportStatisticCheckinReportFailed: '',\n };\n case actionTypes.POST_EXPORT_STATISTIC_CHECKIN_REPORT_FAILURE:\n return {\n ...globalState,\n isLoadingPostExportStatisticCheckinReport: false,\n postExportStatisticCheckinReportMessage: '',\n postExportStatisticCheckinReportFailed: action.error,\n };\n case actionTypes.GET_CUSTOMIZE_CHART_LIST_PENDING:\n return {\n ...globalState,\n isLoadingGetCustomizeChartList: true,\n };\n case actionTypes.GET_CUSTOMIZE_CHART_LIST_FULFILLED:\n return {\n ...globalState,\n isLoadingGetCustomizeChartList: false,\n getCustomizeChartListMessage: action.data,\n getCustomizeChartListFailed: '',\n };\n case actionTypes.GET_CUSTOMIZE_CHART_LIST_FAILURE:\n return {\n ...globalState,\n isLoadingGetCustomizeChartList: false,\n getCustomizeChartListMessage: '',\n getCustomizeChartListFailed: action.error,\n };\n case actionTypes.POST_SINGLE_CUSTOMIZE_CHART_PENDING:\n return {\n ...globalState,\n isLoadingPostSingleCustomizeChart: true,\n };\n case actionTypes.POST_SINGLE_CUSTOMIZE_CHART_FULFILLED:\n return {\n ...globalState,\n isLoadingPostSingleCustomizeChart: false,\n postSingleCustomizeChartMessage: action.data,\n postSingleCustomizeChartFailed: '',\n };\n case actionTypes.POST_SINGLE_CUSTOMIZE_CHART_FAILURE:\n return {\n ...globalState,\n isLoadingPostSingleCustomizeChart: false,\n postSingleCustomizeChartMessage: '',\n postSingleCustomizeChartFailed: action.error,\n };\n case actionTypes.DELETE_SINGLE_CUSTOMIZE_CHART_PENDING:\n return {\n ...globalState,\n isLoadingDeleteSingleCustomizeChart: true,\n };\n case actionTypes.DELETE_SINGLE_CUSTOMIZE_CHART_FULFILLED:\n return {\n ...globalState,\n isLoadingDeleteSingleCustomizeChart: false,\n deleteSingleCustomizeChartMessage: action.data,\n deleteSingleCustomizeChartFailed: '',\n };\n case actionTypes.DELETE_SINGLE_CUSTOMIZE_CHART_FAILURE:\n return {\n ...globalState,\n isLoadingDeleteSingleCustomizeChart: false,\n deleteSingleCustomizeChartMessage: '',\n deleteSingleCustomizeChartFailed: action.error,\n };\n default:\n return globalState;\n }\n}\n\nexport { statisticReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingPostFileUpload: false,\n postFileUploadMessage: '',\n postFileUploadFailed: '',\n};\n\nconst initializeStates = JSON.parse(JSON.stringify(state));\n\nfunction fileReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initializeStates,\n };\n case actionTypes.POST_FILE_UPLOAD_PENDING:\n return {\n ...globalState,\n isLoadingPostFileUpload: true,\n };\n case actionTypes.POST_FILE_UPLOAD_FULFILLED:\n return {\n ...globalState,\n isLoadingPostFileUpload: false,\n postFileUploadMessage: action.data,\n postFileUploadFailed: '',\n };\n case actionTypes.POST_FILE_UPLOAD_FAILURE:\n return {\n ...globalState,\n isLoadingPostFileUpload: false,\n postFileUploadMessage: '',\n postFileUploadFailed: action.error,\n };\n default:\n return globalState;\n }\n}\n\nexport { fileReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetHealthFormTemplates: false,\n getHealthFormTemplatesMessage: '',\n getHealthFormTemplatesFailed: '',\n\n isLoadingGetHealthFormSetting: false,\n getHealthFormSettingMessage: '',\n getHealthFormSettingFailed: '',\n\n isLoadingPatchHealthFormSetting: false,\n patchHealthFormSettingMessage: '',\n patchHealthFormSettingFailed: '',\n};\n\nconst initializeStates = JSON.parse(JSON.stringify(state));\n\nfunction healthFormReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initializeStates,\n };\n case actionTypes.GET_HEALTH_FORM_TEMPLATES_PENDING:\n return {\n ...globalState,\n isLoadingGetHealthFormTemplates: true,\n };\n case actionTypes.GET_HEALTH_FORM_TEMPLATES_FULFILLED:\n return {\n ...globalState,\n isLoadingGetHealthFormTemplates: false,\n getHealthFormTemplatesMessage: action.data,\n getHealthFormTemplatesFailed: '',\n };\n case actionTypes.GET_HEALTH_FORM_TEMPLATES_FAILURE:\n return {\n ...globalState,\n isLoadingGetHealthFormTemplates: false,\n getHealthFormTemplatesFulfilled: '',\n getHealthFormTemplatesFailed: action.error,\n };\n case actionTypes.GET_HEALTH_FORM_SETTING_PENDING:\n return {\n ...globalState,\n isLoadingGetHealthFormSetting: true,\n };\n case actionTypes.GET_HEALTH_FORM_SETTING_FULFILLED:\n return {\n ...globalState,\n isLoadingGetHealthFormSetting: false,\n getHealthFormSettingMessage: action.data,\n getHealthFormSettingFailed: '',\n };\n case actionTypes.GET_HEALTH_FORM_SETTING_FAILURE:\n return {\n ...globalState,\n isLoadingGetHealthFormSetting: false,\n getHealthFormTemplatesMessage: '',\n getHealthFormSettingFailed: action.error,\n };\n case actionTypes.PATCH_HEALTH_FORM_SETTING_PENDING:\n return {\n ...globalState,\n isLoadingPatchHealthFormSetting: true,\n };\n case actionTypes.PATCH_HEALTH_FORM_SETTING_FULFILLED:\n return {\n ...globalState,\n isLoadingPatchHealthFormSetting: false,\n patchHealthFormSettingMessage: action.data,\n patchHealthFormSettingFailed: '',\n };\n case actionTypes.PATCH_HEALTH_FORM_SETTING_FAILURE:\n return {\n ...globalState,\n isLoadingPatchHealthFormSetting: false,\n patchHealthFormSettingMessage: '',\n patchHealthFormSettingFailed: action.error,\n };\n default:\n return globalState;\n }\n}\n\nexport { healthFormReducer as default };\n","import * as actionTypes from '../actionTypes';\nimport { systemPresentVersion } from '../utils/commonParameters';\n\nconst state = {\n systemVersion: systemPresentVersion,\n systemTimestamp: null,\n isMaintenance: false,\n};\n\nfunction systemSettingReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.SET_SYSTEM_TIMESTAMP:\n return {\n ...globalState,\n systemTimestamp: action.timestamp,\n };\n case actionTypes.SET_IS_MAINTENANCE:\n return {\n ...globalState,\n isMaintenance: action.data,\n };\n default:\n return globalState;\n }\n}\n\nexport default systemSettingReducer;\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetIsDoneFirstTime: false,\n getIsDoneFirstTimeMessage: '',\n getIsDoneFirstTimeFailed: '',\n};\n\nconst initialState = JSON.parse(JSON.stringify(state));\n\nfunction commonActionReducer(globalstate = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initialState,\n };\n case actionTypes.GET_IS_DONE_FIRST_TIME_PENDING:\n return {\n ...globalstate,\n isLoadingGetIsDoneFirstTime: true,\n };\n case actionTypes.GET_IS_DONE_FIRST_TIME_FULFILLED:\n return {\n ...globalstate,\n isLoadingGetIsDoneFirstTime: false,\n getIsDoneFirstTimeMessage: action.data,\n getIsDoneFirstTimeFailed: '',\n };\n case actionTypes.GET_IS_DONE_FIRST_TIME_FAILURE:\n return {\n ...globalstate,\n isLoadingGetIsDoneFirstTime: false,\n getIsDoneFirstTimeMessage: '',\n getIsDoneFirstTimeFailed: action.error,\n };\n default:\n return globalstate;\n }\n}\n\nexport { commonActionReducer as default };\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n account: '',\n userPlan: '',\n userRoles: [],\n userExpirationDate: null,\n userActiveDate: null,\n startupCodeMaximumCount: null,\n participantsMaximumCount: null,\n expirationDateReminder: null,\n isAnnual: false,\n};\n\nfunction accountFeatureReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.GET_PROFILE_FULFILLED: {\n const actionData = action.data.data;\n let actionDataState = state;\n\n if (actionData) {\n actionDataState = {\n account: actionData.account ?? '',\n userPlan: actionData.versionName ?? '',\n userRoles: actionData.roles ?? [],\n userExpirationDate: actionData.endTime ?? null,\n userActiveDate: actionData.startTime ?? null,\n startupCodeMaximumCount: actionData.maxStartupCode ?? null,\n participantsMaximumCount: actionData.maxUser ?? null,\n expirationDateReminder: actionData.days ?? null,\n isAnnual: actionData.isAnnaul ?? false,\n };\n }\n\n return {\n ...globalState,\n ...actionDataState,\n };\n }\n default:\n return globalState;\n }\n}\n\nexport { accountFeatureReducer as default };\n","import * as R from 'ramda';\nimport * as actionTypes from '../actionTypes';\n\nconst state = {\n isLoadingGetIndexPageEdit: false,\n getIndexPageEditMessage: '',\n getIndexPageEditFailed: '',\n\n isLoadingPostIndexPage: false,\n postIndexPageMessage: '',\n postIndexPageFailed: '',\n\n isLoadingPatchIndexPageEdit: false,\n patchIndexPageEditMessage: '',\n patchIndexPageEditFailed: '',\n\n isLoadingGetGuestIndexPage: false,\n getGuestIndexPageMessage: '',\n getGuestIndexPageFailed: '',\n\n isLoadingGetIndexPagePreview: false,\n getIndexPagePreviewMessage: '',\n getIndexPagePreviewFailed: '',\n};\n\nconst initialState = R.clone(state);\n\nfunction indexPageReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initialState,\n };\n case actionTypes.GET_INDEX_PAGE_EDIT_PENDING:\n return {\n ...globalState,\n isLoadingGetIndexPageEdit: true,\n };\n case actionTypes.GET_INDEX_PAGE_EDIT_FULFILLED:\n return {\n ...globalState,\n isLoadingGetIndexPageEdit: false,\n getIndexPageEditMessage: action.data,\n getIndexPageEditFailed: '',\n };\n case actionTypes.GET_INDEX_PAGE_EDIT_FAILURE:\n return {\n ...globalState,\n isLoadingGetIndexPageEdit: false,\n getIndexPageEditMessage: '',\n getIndexPageEditFailed: action.error,\n };\n case actionTypes.PATCH_INDEX_PAGE_EDIT_PENDING:\n return {\n ...globalState,\n isLoadingPatchIndexPageEdit: true,\n };\n case actionTypes.PATCH_INDEX_PAGE_EDIT_FULFILLED:\n return {\n ...globalState,\n isLoadingPatchIndexPageEdit: false,\n patchIndexPageEditMessage: action.data,\n patchIndexPageEditFailed: '',\n };\n case actionTypes.PATCH_INDEX_PAGE_EDIT_FAILURE:\n return {\n ...globalState,\n isLoadingPatchIndexPageEdit: false,\n patchIndexPageEditMessage: '',\n patchIndexPageEditFailed: action.error,\n };\n case actionTypes.GET_GUEST_INDEX_PAGE_PENDING:\n return {\n ...globalState,\n isLoadingGetGuestIndexPage: true,\n };\n case actionTypes.GET_GUEST_INDEX_PAGE_FULFILLED:\n return {\n ...globalState,\n isLoadingGetGuestIndexPage: false,\n getGuestIndexPageMessage: action.data,\n getGuestIndexPageFailed: '',\n };\n case actionTypes.GET_GUEST_INDEX_PAGE_FAILURE:\n return {\n ...globalState,\n isLoadingGetGuestIndexPage: false,\n getGuestIndexPageMessage: '',\n getGuestIndexPageFailed: action.error,\n };\n case actionTypes.POST_INDEX_PAGE_PENDING:\n return {\n ...globalState,\n isLoadingPostIndexPage: true,\n };\n case actionTypes.POST_INDEX_PAGE_FULFILLED:\n return {\n ...globalState,\n isLoadingPostIndexPage: false,\n postIndexPageMessage: action.data,\n postIndexPageFailed: '',\n };\n case actionTypes.POST_INDEX_PAGE_FAILURE:\n return {\n ...globalState,\n isLoadingPostIndexPage: false,\n postIndexPageMessage: '',\n postIndexPageFailed: action.error,\n };\n case actionTypes.GET_INDEX_PAGE_PREVIEW_PENDING:\n return {\n ...globalState,\n isLoadingGetIndexPagePreview: true,\n };\n case actionTypes.GET_INDEX_PAGE_PREVIEW_FULFILLED:\n return {\n ...globalState,\n isLoadingGetIndexPagePreview: false,\n getIndexPagePreviewMessage: action.data,\n getIndexPagePreviewFailed: '',\n };\n case actionTypes.GET_INDEX_PAGE_PREVIEW_FAILURE:\n return {\n ...globalState,\n isLoadingGetIndexPagePreview: false,\n getIndexPagePreviewMessage: '',\n getIndexPagePreviewFailed: action.error,\n };\n default:\n return globalState;\n }\n}\n\nexport default indexPageReducer;\n","import * as actionTypes from '../actionTypes';\n\nconst state = {\n isSurveyFormEditSavedNotYet: false,\n isIndexPageEditSavedNotYet: false,\n isBadgeEditSavedNotYet: false,\n};\n\nfunction IsSavedNotYetReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.SET_IS_SURVEY_FORM_EDIT_SAVED_NOT_YET:\n return {\n ...globalState,\n isSurveyFormEditSavedNotYet: action.toggle,\n };\n case actionTypes.SET_IS_INDEX_PAGE_EDIT_SAVED_NOT_YET:\n return {\n ...globalState,\n isIndexPageEditSavedNotYet: action.toggle,\n };\n case actionTypes.SET_IS_BADGE_EDIT_SAVED_NOT_YET:\n return {\n ...globalState,\n isBadgeEditSavedNotYet: action.toggle,\n };\n default:\n return globalState;\n }\n}\nexport { IsSavedNotYetReducer as default };\n","import * as R from 'ramda';\nimport * as actionTypes from '../actionTypes';\n\nconst badgeState = {\n isLoadingGetBadgeSetting: false,\n getBadgeSettingMessage: '',\n getBadgeSettingFailed: '',\n\n isLoadingPostBadgeSetting: false,\n postBadgeSettingMessage: '',\n postBadgeSettingFailed: '',\n\n isLoadingDeleteBadgeSetting: false,\n deleteBadgeSettingMessage: '',\n deleteBadgeSettingFailed: '',\n\n isLoadingPutBadgeSetting: false,\n putBadgeSettingMessage: '',\n putBadgeSettingFailed: '',\n};\n\nconst initialBadgeState = R.clone(badgeState);\n\nfunction badgeReducer(state = badgeState, action) {\n switch (action.type) {\n case actionTypes.INITIALIZE_STATES_FULFILLED:\n return {\n ...initialBadgeState,\n };\n case actionTypes.GET_BADGE_SETTING_PENDING:\n return {\n ...state,\n isLoadingGetBadgeSetting: true,\n };\n case actionTypes.GET_BADGE_SETTING_FULFILLED:\n return {\n ...state,\n isLoadingGetBadgeSetting: false,\n getBadgeSettingMessage: action.data,\n getBadgeSettingFailed: '',\n };\n case actionTypes.GET_BADGE_SETTING_FAILURE:\n return {\n ...state,\n isLoadingGetBadgeSetting: false,\n getBadgeSettingMessage: '',\n getBadgeSettingFailed: action.error,\n };\n case actionTypes.POST_BADGE_SETTING_PENDGING:\n return {\n ...state,\n isLoadingPostBadgeSetting: true,\n };\n case actionTypes.POST_BADGE_SETTING_FULFILLED:\n return {\n ...state,\n isLoadingPostBadgeSetting: false,\n postBadgeSettingMessage: action.data,\n postBadgeSettingFailed: '',\n };\n case actionTypes.POST_BADGE_SETTING_FAILURE:\n return {\n ...state,\n isLoadingPostBadgeSetting: false,\n postBadgeSettingMessage: '',\n postBadgeSettingFailed: action.error,\n };\n case actionTypes.DELETE_BADGE_SETTING_PENDING:\n return {\n ...state,\n isLoadingDeleteBadgeSetting: true,\n };\n case actionTypes.DELETE_BADGE_SETTING_FULFILLED:\n return {\n ...state,\n isLoadingDeleteBadgeSetting: false,\n deleteBadgeSettingMessage: action.data,\n deleteBadgeSettingFailed: '',\n };\n case actionTypes.DELETE_BADGE_SETTING_FAILURE:\n return {\n ...state,\n isLoadingDeleteBadgeSetting: false,\n deleteBadgeSettingMessage: '',\n deleteBadgeSettingFailed: action.error,\n };\n case actionTypes.PATCH_BADGE_SETTING_PENDING:\n return {\n ...state,\n isLoadingPutBadgeSetting: true,\n };\n case actionTypes.PATCH_BADGE_SETTING_FULFILLED:\n return {\n ...state,\n isLoadingPutBadgeSetting: false,\n putBadgeSettingMessage: action.data,\n putBadgeSettingFailed: '',\n };\n case actionTypes.PATCH_BADGE_SETTING_FAILURE:\n return {\n ...state,\n isLoadingPutBadgeSetting: false,\n putBadgeSettingMessage: '',\n putBadgeSettingFailed: action.error,\n };\n default:\n return state;\n }\n}\n\nexport default badgeReducer;\n","import * as actionTypes from '../actionTypes';\n\nconst modalVisibleState = {\n isCreatingEventModalVisible: false,\n};\n\nexport default function modalVisibleReducer(state = modalVisibleState, action) {\n switch (action.type) {\n case actionTypes.SET_CREATING_EVENT_MODAL_VISIBLE:\n return {\n ...state,\n isCreatingEventModalVisible: action.visible,\n };\n default:\n return state;\n }\n}\n","/**\n * 來賓預定票券相關的資訊\n */\n\nimport * as actionTypes from '@/actionTypes';\n\nconst state = {\n /**\n * {\n * ticketTypes: {\n * \"[ticketTypeUuid]\": {\n * sessions: [],\n * quantity: 1,\n * }\n * }\n * }\n */\n signingUpTicketInfo: {\n ticketTypes: {},\n },\n guestSelectSessionUuids: [],\n};\n\nfunction clientOrderReducer(globalState = state, action) {\n switch (action.type) {\n case actionTypes.SET_GUEST_SIGN_UP_INFO:\n return {\n ...globalState,\n signingUpTicketInfo: action.data,\n };\n case actionTypes.SET_GUEST_SELECT_SESSIONS:\n return {\n ...globalState,\n guestSelectSessionUuids: action.data,\n };\n default:\n return globalState;\n }\n}\n\nexport { clientOrderReducer as default };\n","import { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\nimport sessionStorage from 'redux-persist/lib/storage/session';\nimport auth from './auth';\nimport routing from './routing';\nimport login from './login';\nimport envSetting from './envSetting';\nimport event from './event';\nimport deviceCode from './deviceCode';\nimport boothDeviceCode from './boothDeviceCode';\nimport profile from './profile';\nimport emailTemplate from './emailTemplate';\nimport emailList from './emailList';\nimport emailRecord from './emailRecord';\nimport smsDraft from './smsDraft';\nimport smsRecord from './smsRecord';\nimport parameter from './parameter';\nimport point from './point';\nimport statistic from './statistic';\nimport file from './file';\nimport healthForm from './healthForm';\nimport systemSetting from './systemSetting';\nimport commonAction from './commonAction';\nimport accountFeature from './accountFeature';\nimport indexPage from './indexPage';\nimport isSavedNotYet from './isSavedNotYet';\nimport badge from './badge';\nimport modalVisible from './modalVisible';\n\n// ------------------ client ------------------\nimport clientOrder from './clientOrder';\n\nimport * as actionTypes from '../actionTypes';\nimport * as variable from '../utils/commonVariable';\n\nconst envSettingConfig = {\n key: 'env',\n storage,\n debug: true,\n};\n\nconst clientOrderConfig = {\n key: 'clientOrder',\n storage: sessionStorage,\n debug: true,\n};\n\nconst appReducers = combineReducers({\n envSetting: persistReducer(envSettingConfig, envSetting), // 需要儲存在 localStorage 的參數\n clientOrder: persistReducer(clientOrderConfig, clientOrder), // 來賓預訂票券相關參數\n auth, // 登入前的 API 狀態和 token 資訊\n accountFeature, // account feature\n login, // 存 token id\n routing, // 存當前 event 相關的值(待所有變數轉移到 event 就移除)\n event, // 存當前 event 相關的值\n deviceCode, // 活動啟動碼的 API 狀態\n boothDeviceCode, // 攤位啟動碼的 API 狀態\n profile, // profile API 狀態\n parameter, // 存一些共用、常用的參數,如視窗寬度(windowInnerWidth)\n emailTemplate, // email template 的 API 狀態\n emailList, // email 草稿、發送 List 與詳細草稿的 API 狀態\n emailRecord, // email 發送記錄的 API 狀態\n point, // 點數相關的 API狀態與存點數值\n file, // 檔案上傳的 API 狀態\n smsDraft, // SMS 草稿、發送 List 與詳細草稿的 API 狀態\n smsRecord, // sms 發送記錄的 API 狀態\n healthForm, // 健康聲明表單設定\n statistic, // 報到統計頁面的 API 狀態\n indexPage, // index page API 狀態\n badge, // badge API 狀態\n isSavedNotYet, // 頁面尚未儲存的阻擋提示 狀態\n systemSetting, // 系統相關設定的 API 狀態\n commonAction, // 共用的 API 狀態,如第一次使用的 API 狀態\n modalVisible, // Modal component 可視狀態\n});\n\nconst reducers = (state, action) => {\n let initialState = { ...state };\n if (action.type === actionTypes.INITIALIZE_ALL_STATES) {\n storage.removeItem(variable.localStoargePersistRoot);\n // 清空後要設定 state 的值,不然會 error\n initialState = {\n envSetting: { ...state.envSetting },\n };\n }\n return appReducers(initialState, action);\n};\n\nexport default reducers;\n","import { createStore, applyMiddleware } from 'redux';\nimport thunk from 'redux-thunk';\nimport { persistStore, persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage';\nimport reducers from './reducers';\n\nconst persistConfig = {\n key: 'root',\n storage,\n debug: true,\n whitelist: ['login'],\n};\n\nconst persistedReducer = persistReducer(persistConfig, reducers);\n\nlet middleware = [thunk];\nif (!process.env.NODE_ENV.includes('production')) {\n /* eslint-disable global-require */\n const reduxLogger = require('redux-logger').default;\n /* eslint-enable global-require */\n middleware = [...middleware, reduxLogger];\n}\n\nconst store = createStore(persistedReducer, applyMiddleware(...middleware));\n\nexport { store };\nexport const persistor = persistStore(store);\n","import { useDispatch } from 'react-redux';\nimport { useQueryClient } from 'react-query';\nimport * as actions from '@/actions';\n\n// initialize all client side states and clear all server side query cache data\nexport const useClearAllStates = () => {\n const queryClient = useQueryClient();\n const dispatch = useDispatch();\n\n function clearAllStates() {\n // The sort of 12 line and 13 line can't be reversed.\n // Otherwise, it will call APIs before logouted, and show unnecessary alert message\n dispatch(actions.initializeAllStates());\n queryClient.getQueryCache().clear();\n }\n\n return { clearAllStates };\n};\n","import { useHistory } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\n\nimport { useToast } from '@chakra-ui/react';\n\nimport * as actions from '@/actions';\nimport { POINTS_CANNOT_BE_NEGATIVE_403 } from '@/utils/commonParameters';\nimport { ApiMessagesConstants } from '@/constants/apiMessagesConstants';\nimport { API_RETURN_CODE } from '@Constants/apiReturnCode';\nimport { parseBlobData, errorNotification } from '@Utils/commonFunction';\nimport { useClearAllStates } from '@Hooks/useClearAllStates';\n\nimport { useErrorHandlerContext } from '@Components/errorHandler';\nimport { RenderedToast } from '@Components/toast';\nimport { popupToast } from '@Utils/toast';\n\nexport const useApiResponseHandler = () => {\n const { t } = useTranslation();\n const toast = useToast();\n const history = useHistory();\n const dispatch = useDispatch();\n const { setErrorStatusCode, setMsg } = useErrorHandlerContext();\n const { clearAllStates } = useClearAllStates();\n\n function getErrorToast(id, title, duration = 10 * 1000) {\n return toast({\n id,\n status: 'error',\n position: 'top',\n duration,\n isClosable: true,\n render: ({ id, onClose }) => (\n \n ),\n });\n }\n\n function handle400ErrorHandler() {\n popupToast({\n toast,\n title: 'Bad Request 格式錯誤',\n status: 'error',\n });\n }\n\n function handle403ErrorHandler(data) {\n const { msg, returnCode } = data;\n\n if (\n returnCode === API_RETURN_CODE.admin.tokenExpired ||\n returnCode === API_RETURN_CODE.module.notFound\n ) {\n clearAllStates();\n errorNotification();\n return;\n }\n\n if (msg === ApiMessagesConstants.UNAUTHORIZED) {\n dispatch(actions.getProfileAction.getProfile());\n return;\n }\n\n if (msg === POINTS_CANNOT_BE_NEGATIVE_403) {\n if (!toast.isActive(POINTS_CANNOT_BE_NEGATIVE_403)) {\n getErrorToast(\n POINTS_CANNOT_BE_NEGATIVE_403,\n t('common.pointsCannotBeNegative403ErrorMessage'),\n );\n }\n }\n\n if (msg === ApiMessagesConstants.PLAN_EXPIRED) {\n dispatch(actions.getProfileAction.getProfile());\n\n if (!toast.isActive(ApiMessagesConstants.PLAN_EXPIRED)) {\n getErrorToast(ApiMessagesConstants.PLAN_EXPIRED, t('common.expirationMessage'), 100 * 1000);\n }\n }\n }\n\n function handle404ErrorHandler(data) {\n const { msg } = data;\n\n if (msg === ApiMessagesConstants.ADMIN_NOT_FOUND) {\n if (!toast.isActive(ApiMessagesConstants.ADMIN_NOT_FOUND)) {\n getErrorToast(ApiMessagesConstants.ADMIN_NOT_FOUND, t('common.adminNotFoun'));\n }\n\n dispatch(actions.logout());\n }\n }\n\n const handler = async (promise) => {\n setErrorStatusCode(200);\n try {\n const { status, data, config } = await promise;\n\n if (!status || status >= 500 || !config) {\n setErrorStatusCode(500);\n return;\n }\n\n const { systemTimestamp, msg, timestamp } = data;\n\n setErrorStatusCode(status);\n setMsg(msg);\n\n // TODO: 待確認 parseBlobData can return value\n const responseData = config?.responseType === 'blob' ? parseBlobData(data) : data;\n\n if (systemTimestamp || timestamp) {\n dispatch(actions.setSystemTimestamp(systemTimestamp || timestamp || null));\n }\n\n // 維護中\n if (responseData?.returnCode === API_RETURN_CODE.module.maintenance) {\n history.push('/maintenance');\n }\n\n if (\n msg === 'Event not found' ||\n msg === ApiMessagesConstants.PROJECT_NOT_FOUND ||\n msg === ApiMessagesConstants.ADMIN_PROJECT_NOT_FOUND\n ) {\n if (!toast.isActive(ApiMessagesConstants.PROJECT_NOT_FOUND)) {\n getErrorToast(\n ApiMessagesConstants.PROJECT_NOT_FOUND,\n t('common.eventNotFound'),\n 3 * 1000,\n );\n }\n\n history.push('/');\n }\n\n if (status === 400) {\n handle400ErrorHandler();\n }\n\n if (status === 401) {\n clearAllStates();\n errorNotification();\n }\n\n if (status === 403) {\n handle403ErrorHandler(responseData);\n }\n\n if (status === 404) {\n handle404ErrorHandler(responseData);\n }\n\n return data;\n } catch {\n setErrorStatusCode(500);\n }\n };\n\n return handler;\n};\n"],"sourceRoot":""}